Running Chainlink nodes

Anyone else running a chainlink node? I set one up yesterday, and got it working today. I have a heavy IT background (net/sys architect), but don't do that much coding.
So far, I can get the node to fetch the current btc price from bitstamp (as per Steve's tutorial), as well as fetch current weather values from around the world.

Here's the basic run down:
- install CL on a linux box (I used AWS RH). note: they fixed the read me last night, so installing should be a lot easier now. Just follow the readme on github.
- install eth on that same box (I used geth)
- start eth (I was using syncmode light due to HDD space constratits)
- start CL
- create a job with web trigger (1)
- manually run job (2)
- display job results (3)

EXAMPLE 1) getting the current BTC price from bitstamp
(1) For creating the job --
> curl -u chainlink -X POST -H 'Content-Type: application/json' -d '{"initiators": [{ "type": "web" }],"tasks": [{ "type": "HttpGet", "url": "bitstamp.net/api/ticker/" },{ "type": "JsonParse", "path": ["last"] }]}' localhost:6688/v2/jobs

(2) run a job --
//get jobID with "./chainlink jobs"
> curl -u chainlink -X POST localhost:6688/v2/jobs/eb16fa5dfdc7420cb1c045914036d96d/runs

(3) show results of job run --
> curl -u chainlink -X GET localhost:6688/v2/jobs/eb16fa5dfdc7420cb1c045914036d96d/runs

we can expand this to any REST API that returns its result in a JSON formatted set

EXAMPLE 2) Get current weather in london
> curl -u chainlink -X POST -H 'Content-Type: application/json' -d '{"initiators": [{ "type": "web" }],"tasks": [{ "type": "HttpGet", "url": "metaweather.com/api/location/44418/" },{ "type": "JsonParse", "path": ["consolidated_weather"] }]}' localhost:6688/v2/jobs
//steps (2) and (3) same as above

note: for the above, (1), (2), and (3) are run directly on the CL node

Other urls found in this thread:

golangbot.com/hello-world/
github.com/smartcontractkit/chainlink/blob/master/README.md
youtube.com/watch?v=kK3VByPuGDc
reddit.com/r/LINKTrader/comments/75gvf3/confido_escrow_payments_using_smart_contracts/
twitter.com/SFWRedditImages

is there a repository of available chainlink nodes that developers can refer to?

for example: my smart contract needs the current btc price, >>> import btc-chainlink-node or whatever

--- SO AS IT STANDS NOW --- things are looking promising, but the real test is yet to come. I'm yet to interact with any blockchain. The next part involves printing out the weather (or btc price) from an Ethereum SmartContract, as opposed to just printing it from the oracle (node) itself.
I'm interested to know if anyone else has been playing with the code. I'll also be here for a while to anwser any questions I can.

>install a CL in a Linux box
explain bc I have a Mac laptop and I’m poor

At this point, not that I am aware of. The way the oracle network will route requests is still a bit fuzzy to me. Between the API docs that have been out for months, and what was released on Sunday, a few key things have changed (mostly, I can't find any old docs on bridge types). I'll hopefully get more of this sorted when i start writing my own SC soon.

While I haven't tried, I'd imagine you can get it running on OSX. It would mean installing golang, and probably installing homebrew for pkg mgmt. To get started, figure out how to install golang on your mac.

last bump. No one on biz even tested if the code ran?

Thanks for this thread and sharing your experience and insight =)

It's been up 30 minutes senpai. I literally can only decipher 25% of what you're talking about.

Old Veeky Forums is dead sadly

Ah, sorry. Just excited. As it stands now, it looks like I'll be able to create a simple smart contract that lets people bet on the weather (basic over/under). Stupid, I know, but if we had access to premium data feeds (moodys, NYSE, CME), we could actually do some of the stuff sergey always mentions in his talks.

Was busy getting wagecucked until now. I started looking at it just now when I saw your thread. I'd wager that 90% of people holding LINK right now have no fucking idea about technical implementation. But whatever, not my problem.

Close your eyes, make a wish, try to clear any thoughts you are having
Take long, slow, deep breathes and put all your focus and attention onto your breathing
iiiiiiiinnnn.................... ooooooooooooouuuut

good. Do this for a few minutes, then -
VISUALIZE yourself becoming rich through your LINK investment
ANTICIPATE the things you will buy with your new found abundance of wealth
IMAGINE as though it is all fappening now in the present moment, for the present moment is all that truly exists
MOST IMPORTANTLY
FEEL the way you will FEEL when that moment comes and you make it!
FEELING THE EMOTION IS MORE IMPORTANT THAN JUST VISUALIZING THE IMAGES!

Now open your eyes, look in a mirror, and recite these affirmations (use/add your own that is relevant to the reality you want to create once you make it)
I AM RICH
I AM WEALTHY
I AM A MILLIONAIRE
LINK HAS GIVEN ME INFINITE ABUNDANCE
It's important to do this when you wake up and before you go to bed, but do it as often as possible. Also hold the image and idea of us making it and LINK being worth $1,000 or more in your mind as you fall to sleep and tug it gently.

WHEN WE DO THIS COLLECTIVELY MY LINK BROTHERS, THE UNIVERSE WILL SEE TO IT THAT CERTAIN EVENTS, PEOPLE AND CIRCUMCISIONS WILL ALIGN AND BE ATTRACTED TO US MOMMY - THAT WILL ALLOW OUR DESIRE TO MANIFEST INTO REALITY!
I love you alllll

If you have to do all this by yourself then what the fuck did we pay Sergey for? Why can't they make a nice graphic UI for me to click a few buttons and set up that node? Pathetic, I'm selling LINK for Mobius rn

GROUND FLOOR kid, if it's a one click solution, you will never make earth-shattering money with it.

I'm actually new biz (summer 2017). I just assumed people would wanna know if their retirement plan actually works or not lol

Hey why did you add make a wish to my pasta?

You payed sergey to solve the oracle problem. and unless there are any gotchas related to eth SCs that i havent run into yet, it looks like he did it.

I can't code for shit but I can follow tutorials. Should I even bother setting up a node or do I need fundamentals? And if so what are those fundamentals? I'd love to have a node running from the ground floor, even if it's a baby noob node. It could be a hobby node at first while I stake the majority of my links, and as Link moons I can shift my focus more over to learning the real sauce on my own node. I'm willing to learn but don't know where to start.

I have no idea how to do any of this shit.

I have Golang but having problems properly installing it. I've been using this guide golangbot.com/hello-world/

But I'm stuck with the go install command on point 2 of "Running a go program". I've emailed the guy who wrote it for help but he hasnt written back. I'm useless :'(

Alright, meme wig is off. Could you elaborate how you figure the oracle problem may have been solved? I still see an issue where certain data would invariably come from a single source, thus throwing the "multiple sources & nodes" out the window. Even for example the weather stations are unique in that there is only one at a certain location.

Or, feeding in data from NYSE, for example - there is only one NYSE after all.

How do we solve this? What am I missing?

If we setup a node right now, can we stake our LINK already?

Unless you are writing your own adapters (which from what I've seen wont be that common - most APIs deliver data in JSON, which is natively supported) or writing your own smart contracts, do don't need to learn to program.
You will need to learn your way around linux. Curl, package management, etc. If you're good at follow directions, this shouldn't be an issue for you. If all you want to do is set up a node, it isn't super hard.

Thanks for posting this! I don’t know much coding but I want to learn

Thanks OP, unfortunately I'm a brainlet and don't know how to do much in Linux.

brainlet here. Keep bumping this thread. There are plenty of other CS autismos holding LINK on biz

In a link thread you do not need to type that you are a brainlet, we all know.

Does anyone know how the 'promotion' of available APIs on a Node works?
For Instance, If an enduser sets up a SC how would they know which Nodes support which APIs.

Ferret, my man, I'm not a coder so I'm still learning this shit but I followed Thomas Hodges youtube vids and set up a node on the testnet with geth in a linux VM, and I still havent got to the next step. You mentioned Steve's tutorial, where can I find this? Cheers

You have a heavy IT background and it took you a day to follow a fucking tutorial? How dumb are you?

Good question. I'll give my interpretation of the entire thing, and make no claims that I am right. It's just the way I see things.

> Or, feeding in data from NYSE, for example - there is only one NYSE after all.

This is just a limitation of the way the world works at this point in time. Maybe in the future, all exchanges are decentralized, but right now (using NYSE as an example), the information is centralized. If NYSE feeds your oracle bad data on purpose, there is a chance they are feeding bad data to all data consumers.

A better example is the weather. Specifically, how can we (two people who don't trust each other) safely bet on what the temp will be in London at 12:00 UTC on Feb 21, 2018? One of us would write a smart contract that ensures payment to the winner. The other party would look at this contract - they would be especially interested in where we are getting an authoritative answer for the temperature. If I've chosen to use Yahoo weather, and you don't like that, we would both agree on a data source that is considered authoritative BEFORE we lock in the contract. Say we can't agree on one data source? Say you are worried that I have insiders at Yahoo weather? Well you could say "im not making this bet until the 'authoritative source' is designated as the average of 15 different weather feeds". Multiple oracles stake their link, and each pull data from the 15 weather APIs, and then return that data to the smart contract. The Smart contract evals this number, and pays out eth to the winner.

This is the best way I can explain things. AssBlaster does a better job of explaining what the real use cases of CL will be, because he works in that area. I am but a humble packet pusher.

What is the error message you are getting? Don't get discouraged, a lot of these tutorials are really bad.

Well it's supposed to say "Hello world" again like in point 1, but it says "cannot find the package." pic related. I've checked the folders and the files are all there, so I'm not sure why it's saying this

Well, thats the funny part, and I'm glad this will get buried. As of right now, yes, you can stake. BUT, it appears the stake value should be in eth, not link. I deposited 20 link, and it said I had a zero balance. i deposited .02 eth, and it said i had a balance of .02. I'm sure this is something I'm misunderstanding on the backend, and I hope to have it figured out later this week. So far, I haven't worked outside the chainlink node with any blockchains, so i havent needed any stake.

Bump for a real LINK thread. All you Hodling faggots should pay attention. These nodes are what's important.

yep, im making 25 stinkies a day

If all you wanna do is stake (in the future, I don't think its working as intended in alpha), you dont need to code. Hell, you really dont even need to know linux. If you can follow instructions, youll be fine. Steve Ellis has been very responsive on github, and has been updating the readme since yesterday night.

this

bump

...

As far as I gathered from the most recent conference, data source is already assumed to be trusted. Until everything is decentralised this will always be a weakness. Sergey talks about how the smart contract can be trusted, the data sources are already trusted (as much as any centralised data source can be), and CL solves the currently not trusted data delivery portion--the middleware.

If e.g. NYSE provided false data even now then that would adversely affect many business processes. Bloomberg, Reuters, etc. are trusted because they have a history of providing good data. Unfortunately I don't see how the oracle problem can truly be solved until the data source itself reports its own data independent of outside parties using something like SGX. The closer to the source the better.

Bump for technical discussions. These are the kind of threads we should be having more often.
Have you experimented with using payment APIs in your CL node?

Ferret where is Steve's tutorial?

Great question, this is by far my biggest question mark right now. From what I've seen, most native nodes will be able to do a lot of the work (just JSON Parsing) to be done by the Oracle network. But say you've written a custom adapter for Overwatch or something? Something that requires more than just a simple JSON Parser. I dont know *exactly* how the oracle network will route this request, but it has something to do with the oracle network doing a search for bridge type. From CL official docs:
> External adapters are added to the Chainlink node first by creating a bridge type. Bridges define the task type's name and URL of the external adapter which will run that task type. When a task type is received that is not one of the core adapters, the node will search for a bridge type with that name, creating a bridge to your external adapter.

...

I own 30K Link, but am technologically illiterate. Someone give me the idiots guide to setting up a node on Windows.

Steves tutorial is just what im calling his somewhat lacking documentation on github. Expect it to get a lot better very quickly, because the shit is kinda scattered right now. Don't get discouraged if its confusing at first. Fun fact, their code released sunday morning didn't compile with the instructions they gave. Steve was very quick to fix it though.
Desu, if you've got the CL devnet running, hooked into geth, on linux, youre almost to where I am. I would wipe out the dev, install the CL node released on sunday, and start running that. Once you've got that running, you can refer to the curl commands in my original post to start fetching off chain data.

very nicely laid out, thanks for your input. even though many things regarding CL are clear to me, its good to read things in a different formulation.
have some asskissing for reporting your steps on how to run a node as well. i'm an absolute mong with this, so its really good seeing people go forward and actually tell it on Veeky Forums

Would that mean we could keep ((them)) in check since the nodes would have to verify the source info. My thinking is entities that where once hidden will always be transparent because of Chain Link nodes verifying the info.

lol, yup, the original setup took me a few hours yesterday, because their readme omitted a step that prepped the environment. thus, when I was compiling, i was getting typecast errors. I had to finally go into the source code and change some data types. The readme has been updated, and anyone doing it today should be good to go.

But thanks for your kind words user

It's possible your GOPATH / GOROOT is incorrect. Unfortunately, I'd never programmed in go until yesterday, and I'm a Linux guy, not windows. Afraid I'm not gonna be this much help on this. Maybe google "go install cant load package cannot find package in any of" (without the quotes) and see if you can find a good stackoverflow thread.
And hopefully someone in this thread knows go better than my engineer brainlet self.

I believe he meant this readme.
github.com/smartcontractkit/chainlink/blob/master/README.md

For future reference, search "Steve Ellis Github" and I think it's the first link (it should be "SC3000 | Github") and it'll be under smartcontractkit > chainlink repositories.

Correction, his github is "se3000". My apologies.

Can you post the output after you start your node
> ./chainlink node
I'm very interested to see what your node is displaying. im having trouble feeding mine stinkies, it only seems to want eth right now.

Unfortunately I don't think CL solves the lie problem. But maybe in the future everything in the world has a CL node. Gas chamber doors that record footfall.

bumping this.

My pre-chemo brain would understand this. My current brain not so much.

I have an unbuntu pc set to mine. I may have to convert to node ops.

God bless you all anons

See your previous comments. Steve Ellis' github is se3000. Search "Steve Ellis Github" and it should be first link. Afterwards, it'll be under smartcontractkit / chainlink repositories.

This user gets it, and was able to explain it better than me. Right now, if you want data from the NYSE (info that ONLY the NYSE has), and NYSE decides to feed you bad data, you're shit out of luck. Doesn't matter if youre at a bloomberg terminal thats displaying the wrong stock price, or if the wrong stock price feed to an eth SC. This really isn't a limit of blockchain, its a consequence of allowing centralized consolidation of data for the better part of the history of the internet.

God bless you chemo-sir

TY good sir. I am adding your meme to my collective. It is of great quality and will be cherished.

Please accept this one in kind.

No, that'll be later in the week. I am currently wagecucking, so i can't work on this full time. My basic plan is to write an eth SC that is able to just print out the current weather in london. Once that is done, we can add some stuff, such as sending .02 eth to myself if the temp is above 60, or sending .01 eth to myself if the temp is below 60. this will be a PoC that will show SCs can now interact with the outside world.

After that, we can start playing with payment APIs, but i think it'll be a few months until people like Visa/Amex/SWIFT/paypal announce theyve deployed their own ext adapters. hopefully this is what sergey is working on now.

Nice, OP. Very nice. I’ll be saving this thread.

its gonna be a little harder on windows. golang needs gcc, and installing gcc on windows isnt just one click. i found it alot easier to use linux.

So what’s to stop a node from stealing coins?

Mostly: no. In order to prove something is wrong, you need to know the right answer (I think, logicfags correct me if im wrong).
going back to the NYSE - say there is some super secret number the NYSE keeps. it changes once per day. if several oracles ask for this number, and all receive the same answer, its assumed its right, because we don't have a baseline right answer to compare it to.
This is why decentralization is so important, even in data sources. Decentralization prevents a single party from hoarding authoritative info, and potentially misleading data consumers.

from everything i've read, ubuntu might even be a little easier than RH. go get em user.
side note, running an (alpha) CL node is extremely resource friendly, they arent doing that much at this point bc people haven't loaded thousands on jobs onto them

>sending .01 eth to myself if the temp is below 60
Yea, Sergey back in 2015 mentioned that if you want to experiment with smartcontract com you can just send the payment to yourself to test.

for reference, not super relevant to thread though:
youtube.com/watch?v=kK3VByPuGDc

Bump for this. The early-majority doesn't yet realize how valuable secure, tamper-proof, decentralized data inputs are going to be in the future
If data is the new oil, decentralized oracle networks are the refineries and pipelines

Who acts as the escrow of the smart contract?

I did follow Thomas' video on setting up Chainlink Node on AWS free tier. I believe he will be releasing new videos soon.

I am gonna try on ec2 instance AMI.

Try adding your go root path to your environment variables

but can't you pick like several data sources during the creation of the smart contract?
like lets go with the super secret NYSE numbers example here, couldn't you simply add other data that would confirm that these numbers are true?
Like payout only occurs when secret numbers and proof of it matches, that proof could be literally anything, like outgoing payments for example.

Godspeed, Marine. We're here to provide keks, hope and support
>escrow
topkek. Centralized, trusted third parties? That's exactly what's going to be disrupted here. That being said, I wonder if CL nodes would be able to augment a contract utilizing an escrow.

maybe, if customer demand is great enough then probably. If consumers wouldnt accept a SC with external data that isnt decentralized then its definitely a possibility

Fair question. When you set up a node, you are prompted for a new node password. Note, this is not the 'twochains' password from the docs (thats for authorizing the CL HTTP gets/posts).
I haven't looked into the wallet that much, I just threw .02 eth and 20 or 25 stinkies into it and moved on. I would assume that the node password controls access to your private key, but I haven't verified this. This will be something ill look into later in the week


lol and all this assumes sergey didnt install a backdoor within the node webserver code, and thus could steal all our eth / stinkies when mainnet has been running for 12 months

Bro i just buy LINK because it's shilled a lot on here i don't fucking know what it does.

bro im a complete noob with this i have no idea how to do that.

fucking lol. Just so you can laugh, but it's a starting point:
reddit.com/r/LINKTrader/comments/75gvf3/confido_escrow_payments_using_smart_contracts/
>We recently made the switch from Oraclize to Chainlink because of the decentralised aspect of Chainlink. The way we use Chainlink is pretty simple; our smart contracts track packages by using multi-carrier shipping API’s like Easypost and Postmen to view the delivery status of a package. We connect to, and pull data from, these API’s using Chainlink.

>Before we made the switch from Oraclize to Chainlink we relied on one single API to serve us the correct data, which simply wasn’t secure enough when dealing with people’s money. Chainlink allowed us to stay decentralised and improve the security of our platform by allowing us to pull data from several API’s.

>We are bullish on LINK and hope to accelerate the adoption by using it in our own project. There are so many use cases for LINK, our project is just one of them.

Who'd thought the first potential escrow-ChainLink combo was a good JOOSTing

Very well said LT. Sergey wasn't just swinging his gigantic cock on sunday. If we had widespread DLT usage back in 2006-2007, the GFC possibly could have been avoided. Simply, the ratings agencies wouldnt have been able to keep lying for the first part of the crash. tamper-proof and decentralized data would have prevented them from fudging the ratings.

Pls no

This thread is interesting to read.

>AssBlaster
AssBlaster isn't just a LARP?

1) Hit windows key
2) type environment
3) Pick “Edit environment variables” from start menu
4) click Environment Variables button
5) add entry with name GOLANG and path to all your Go packages
That’s on Windows 10 so ymmv

Ok thanks, i did that and tried again but it didn't work. There is already an entry there under System Variables called GOROOT which points to C:\Go.

Again, this is all abstract, but think about it like this. The NYSE has a number, that changes daily, at 12:00AM. So right at 12:01AM, all the oracles query the NYSE to get the daily number. But, the VP of the secret number division is having a bad day. Caught his roastie wife blowing a few pajeets.
So he decides he wants to alter the secret number that goes out to all the oracles. Wants to create some chaos.
The real secret number is 4, but he makes sure 5 is sent out to all the oracles.
All the oracles receive '5'. They all compare values, and see there are no discrepancies.
Here's where we run into the problem. Say you suspect the VP of secret numbers is being malicious. You saw the pajeet bangbang on Veeky Forums, and know this guy is vindictive. How do you prove the secret number is wrong? The only one that knows the real secret number (5) is the NYSE (specially, the VP of secret numbers). How do you go about proving that the 4 you received isn't correct?

We know user. We all know.

I’m asking who acts as the escrow in a smart contract. Why haven’t you answered it?

Getting this working on windows is going to be a waste of time. You have to install a lot of shit. I would recommend linux.

That doesn't happen. Like you said everyone would be fucked, this isn't a problem with chainlink. Expensive paid APIs will have service level agreements with buyers that guarantee accuracy or else.

Shit. Idk then

Lol. Since you asked...
I think AB is about 50-70% larp. I do believe he works in the industry he says, but there are a few things I'm still not sure about. But at the end of the day, we're both pretty bullish on Link, and that's all that matters to 99% of biz. And I find his insight into the 1% of the 1% very interesting. I also believe he is well read in Nash, which is a good thing.

but why would the smart contract only rely on ONE datasource (the secret numbers)?
what would the smart contract actually accomplish?
the example is faulty I think.

Ugh, but then I need a new fucking computer and to learn LINUX. Effort.

so is it shit or is it good

He answered your question. There is no need for an escrow anymore since that is part of the problem being solved by smart contracts. The nodes act as the "escrow". Chainlink does middleware between smart contracts, blockchains and outside information.

Please correct me if I'm wrong.

Or you just spin up a VM. Or you use AWS like OP.

Can you answer when you send the .01 eth for your smart contract who acts as the escrow?

I think he's asking who acts as the escrow when you're dealing with smart contracts for USD, for example bond payments like swift did.

>spin up a VM
Meaning?

So the nodes act as the escrow?

seems like a lot of work for something ethereum will end up doing itself if it's truly needed for smart contracts.

I made that meme. Here's a few more.