cineberisso.com.ar

chainlink 1.0Running a Local Chainlink Node


DNV GL Buys Stake in VeChain and Announces Authority DNV GL, the giant risk management and quality assurance company, recently announced May 15th, 2023 that they have bought a stake in leading public blockchain service provider VeChain as it looks Should You BUY Bitcoin Now? Myles G Invest - YouTube Understanding entry points in trading is important because it helps you identify favorable prices to enter a trade and potentially maximize your profits whil chainlink 1.0 Running a Local Chainlink Node
chainlink 1.0 How To Mine Dogecoin Earn Free... Running a Local Chainlink Node
hello hello welcome to the Stream how is everybody doing GMs in the chat gmgm GM GM hope were all doing well today were learning on how to do some chain link node operation how to run a local chain link node this is a good one its a long one a lot of stuff here being able to do this is going to give you the ability to really customize your smart contract development your protocol as much as you want right running your own chain link a note allows you to kind of test fully Implement uh do things with external data do things with apis do things that you can do other places so excited for you all to be here and um were just going to jump into things because there is a lot to cover in running a chain link node here let me just grab my code base here one second lets do this I think this is about to blank out but you know whatever all right is it blanking out oh yep its blanking out one second sorry there we go boom much better and then well do this boom this stream just started so you were not late youre perfectly on time so were running our own chain link node here um I have my vs code up got a new terminal um a new folder hack 22 lets get into this so we can go over to docusatechain.link go to the node operators Tab and click on set up a chain link node and this will bring us right into running a chain link node and give us all the information we need excuse me now there is um one thing different that Im uh that Im going to do from the chain link node so Im running on a Mac and the Mac uh darker Gateway can be sort of a pain in the butt so Im just going to be doing one thing different um but uh yeah well uh well see it when I get to it but normally you can just follow along with the the docs here and you know literally go end to end and be done um yeah so uh requirements for this are that um uh you dont need any length to start but you do need a minimum of at least two cores and four gigabytes of RAM um if youre going to be running a lot of jobs you really need at least four cores and eight gigabytes of RAM um so this is kind of the minimum requirements of your machine so you can check this out by depending on your machine going to like the about section uh the next is youre going to need a postgres uh database and youre going to need to um have that database have at least two cores four gigs of gigabytes of RAM and 100 gigabytes of storage um for more professional setups youre going to need a lot more now uh postgres you can get postgres a lot of different places um if youre using you know AWS gcp Etc uh they can they have their own instances um thank you but if youre using like a Windows or a Mac or anything um I actually have found the postgres documentation has been kind of tricky to uh to use but this is the psql is postgres what I have for my Mac here is weve got this little postgres app allows me to have some local databases running and it just makes my life a lot easier so um so youll just need some type of postgres SQL database running um like I said I have mine like this but what whatever works for you uh works for you and then finally youll need an ethereum client so for all of us here um we should have a quick node connection um and if you dont uh this is quick note here um you should be able to sign up grab a uh um an API keynote problem and Im actually going to do one for this demo foreign let me just switch to me real quick Im just going to create a quick a quick quick node demo um and then that way I can I can show you guys my uh URL and not be afraid um not be afraid of like if you guys grab it or not because this will be a dummy one I just want to make a quick dummy one though so let me just verify my email address um people are saying in the chat postgres with Docker works too thats great that also works as well Im just verifying my quick note account once my internet decides it wants to be wants to work for me and this is how were going to connect to uh to the blockchain were going to use this to create our own gorilli uh go go early gorelli whatever um connection so lets go back oh to successfully verify my account lets go ahead and create an endpoint well do ethereum go where uh gorelli go early whatever you pronounce it um we dont need any of this stuff uh I dont want any of that I want free create and we should have a free endpoint and boom we do so now we have kind of this this endpoint this will be our connection to the blockchain now you could run um your own Geth node your own other ethereum client this is like more low level type stuff um that were doing here um but yeah so step uh youll at youll need some type of endpoint uh whether its your own whether youre using somebody elses if youre being a professional node operator uh its highly recommended that you run your own uh ethereum client or you know Avalanche client or salon and client or whatever blockchain youre working with but for the purpose of this demo were just going to run it uh bar one from Quick node uh can I run the postgres on the same machine as a node yes you absolutely can all right cool uh okay so uh then the next bit is jumping into using Docker so so sorry now we have um theres no link requirements weve talked about the node requirements we have our postgres database we have an ethereum client with quick node and now we can either run from Source or run from Docker now for most people Im actually going to recommend uh using Docker here however Im going to be running from source and then if youre a professional node operator youre definitely using Docker however Im going to run from source for this demo just because uh because my um Docker Gateway is being really finicky as of recent um so this requires a couple other steps but um once we get it started the rest of these docs are the same so if you want to install Docker you can install Docker and they give you like some commands based off of your uh your UI um but Im going to go ahead and Im going to do my installation uh from source what does from source mean it means just uh words were going to run the chain link software just from GitHub and thats pretty much all that means so over my terminal have uh the chain link code already pulled um uh already cloned and right and if youre unfamiliar you would just do git clone you know this lets stick it in there Ive already done that so Im not going to do it again uh you also need go 1.19 so I can do go version Im on go 1.19 so Im good to go there uh you also need to have your path set my path is set Im not going to do uh Echo path because my path is a horrible monstrosity um and then youre going to need node.json yarn again this is only for the chain link uh local installation and see the current version of I think theres a specific node version well let me just check foreign okay we should be fine wait and we have yarn as well we have postgres awesome we have python3 great chain link awesome and then okay now we just run uh build and install chain link with make install because weve already done this we have python3 um great so now we can just run make and salt and what this is going to do is its going to install chain link um on your machine so uh the reason I like I said the reason Im doing this is just because for some of the docker stuff it makes it a little easier um so whenever um you see in here we run a Docker command Im just going to run like a local install command unless I oh I gotta run yarn first sorry does not tell us to run yarn should tell us to run yarn oh if you get any errors yeah try running your install first okay cool well were running yarn now so so while this is installing everything uh thats common questions whats up everybody how we doing my current version of yarn is out of date well lets run make install now oh I got another error no required module provides package I dont know what that means lets just remove node modules and try again okay no require module provides package interesting so mad about that go get Buffalo packer sorry see what this package is its a a go package hmm might need to add that to the docs all right well I just went ahead and added that turn it off and try try turning it off and on again yeah thats like honestly fix like 80 of my stuff um so now were installing yeah maybe I need to make an issue on the repo um about that foreign if somebody else runs into that uh that same issue when going through this uh go to the chain link GitHub and please make an issue and say hey Im running to this issue um for now you can just run that go get uh whatever it was saying and itll install that package for you um but yeah so now this is installing which is good and we can kind of chill and uh chill while this is uh while this is actually going and remember if you want to just do this with Docker you can do this with Docker as well you would just need to First install docker um the advantage of Docker obviously is you dont need yarn and PM all that stuff you just need Docker because thats how Docker works disadvantages you run into some other weird stuff am I lagging a little bit oh yeah Im lagging a little bit thats fine okay okay so now I should have chain link command line and I do I can do chain link dashes version and now I have the chain link CLI command installed and I can actually run chain link which is good awesome okay now that Ive uh the local install done um yeah I should be able to run chain the caliper chain link version and we should be good to go and I do okay cool so um Ive installed it from Source if youre using docker um you would do just do like Docker pull smart contract kit slash uh chain link uh whatever the package name is I think its like chain link 1.9.0 or something like that uh you just install it with docker all right cool next so uh once we have uh our our thing up our Docker up or our from sourceup we need to create a directory uh were gonna do chain link go early so in our Im going to do mkdr Dot chain link go early if we go in here we now have a new directory chain link go early and were going to need to grab all this put it in a DOT EMV file its a new file dot AV boom like that um youll see that this does like Echo and just kicks it out into that uh chain link gorilli file that we just made I just copy pasted it myself uh question ing nodes run multiple blockchain clients simultaneously uh they are in the works of enabling that but right now for every single different network that you want you need a different chain link node so youll see when we get to the chain link node UI that there is like a feature for this but its not uh production ready all right cool so then we need to set our ethereum client URL um if your ethereum client is on the same machine you can run this command to um uh to get the IP to get the correct IP um and this is again one of these weird like kind of Darker things but for us were just going to be using our quick node so it makes a little bit easier were using the websocket so were going to copy this right here and were going to say eth URL equals in our DOT EMV so were going to do eth URL equals boom just like that since word uh since were using an external provider its just like this ether URL and popped it in like that perfect uh next we need to set the remote database URL so this is connecting our chain link node to its database instead this were going to do and you can see down here theres another little Echo were going to say database URL equals and then add our our database URL but for us our postgres is connected to a local a local postgres node so postgres get our local house were gonna do 1.7.0.0.15432 this is the localhost port excuse me localhost ip and then the uh the port of our postgres and if we go back here we can see kind of the different databases that we have running ours is going to be called hackathon 22. so well do slash hackathon 22 and then we also want to do is SSL mode equals disable because were running our stuff locally typically when you do this you can do the setup like username password server Port database since Im running mine on a local network with weaker permissions I dont have a username I dont have a password um but I do have a server reporting database so this is just server right server IP port and then database and the easy way to check if this is working is you can just grab this line and in your terminal here you can just write psql and then paste it in and if you see like a setup like this it means youre good um so psql this is a command line that Ive installed sorry psql command line install so theres a couple different um yeah theres a couple different ways to install this this psql but its just like a really helpful tool for uh connected connecting to databases and then well go ahead and quit right so we have our URL we have our database now we can actually just run stuff so the command it gives us here is the um this is the command for uh for docker were going to use the uh um the from Source ones and with chain link and I do want to add this actually this allows us to do some funky stuff that I want to do um but then we should just be have to run chain link node start or chain link local n and we should be good to go so were here well do CD dot chain link really we want to be in the same place that our DOT EMB is but now we should just be able to run chain link local and or chain link node n ope foreign around to run into an issue sorry and like node star or chain link level n and Im running into this issue creating a red directory chain link make the ocean like read only system read only file system is it because my DOT AMV is in the wrong place I think it is AV uh sorry give me a second here welcome to coding live if it doesnt go correctly the first time itll itll break the next time creating root directory slash chain link so maybe I do do it with uh favorite directory Ive done this a hundred times yeah c h mob but I dont know who I would be CH modding foreign switch versions maybe if I just Docker sorry about this okay but then I would have to get the Gateway right its the root directory set to somewhere else do I need to do oh heck 2022 yeah that looks good cleaning root directory chain link read-only file system why is it a default says so were actually setting uh like the the um through directory.chain link um uh how do I change the right permissions um maybe thats just what I can do oh wait thats a different one foreign why is it working for that one the only file system what do I need to do I need to change oh is the root so this is just the root um this shouldnt matter or I dont think it should matter foreign yeah thank you thank you Carlos this shouldnt matter why did it um oh Im an idiot no thats what it does for Docker oh sorry guys I was being dumb so root uh root slash chain link in Docker itll set it up so that um uh Dash channel right okay so no so slash chain link is like the root of your chain link node wow its been thank you Carlos wow its been a while since I ran a chain link known locally I guess um but this is like the root of like where all of your chain link node stuff needs to be and I was just being an idiot um and I was like why why is it writing to this weird location okay so were we have our uh a node set up and now its asking for us uh for a store Key password and this is going to be for the chain link nodes address so whenever the chain link node sends data um it needs to send a transaction it actually needs its own private key so this uh key store is going to be the password for that private game so Im going to do a real crappy password um I do its got this like annoying must be 16 characters long okay so Im going to do what Im gonna do p-a-s-s-w-o-r-d one two three four five six one two three four five six seven one two three four five six seven so fourteen seven eight okay thats gonna be my password dont ever use this password this is terrible password lets try this again um oh now its mad about something else now what are you mad about the open TV and now its mad about something else sorry what are you mad about now there you go stop and start the database now its 700 Im connected to my database why is you so mad connect to the database its not connecting to the right database saying connect to users Patrick database equals blank review application name foreign because I have random junk in my okay here we go all right p-a-s-s-w-r-d one two three four five six seven eight happy about that yay p-a-s-s-w-o-r-d three four five six seven eight okay cool our node is now running Im just gonna dont overdo this Im gonna make a DOT password file t-a-s-swrd one two three four five six seven eight just for the purpose of this demo uh enter API or do test at test.com and password well do the same password actually why because I dont care okay cool now stuff is running stuff is up and going what we should be able to do now is go to our Local Host and we can now see our chain link nodes operator UI and we can log in with that username and password now uh we did it okay well we we just got it spun up thank you Carlos again for uh for me pointing out be like hey Patrick youre being really silly right now um but cool so this is our node operator UI so in here we have different jobs um which we have nothing yet we have different rungs we have nothing yet uh we have chains so this is the thing somebody was asking about they were like hey can you run a multiple chains through one node uh the answer is its in beta um so so not yet nodes you can ignore Bridges were going to kind of ignore transactions were going to ignore um theres all just a whole bunch of stuff in here right um but cool so once we have our our node up though then were going to move to um fulfilling requests so what do chain link nodes do well they deliver data on chain right the respond to requests they deliver data so what were going to do here is were going to follow this fulfilling requests section and were gonna do exactly that um yeah were going to deploy our own Oracle contract and start it up so the first thing that were going to do for this now is were going to go were going to click on this little button here which is going to pop us up in a remix its already going to have some good stuff for us in here uh and its going to give this oracle.soul thing so were going to go ahead and compile this contract and then were going to deploy it so the newer versions of this are called operator.soul um uh if you want to use operator.soil youre welcome to do operator.soul2 but this oracle.soll is just going to help facilitate our transactions so lets go to injected provider for metamask foreign I think I have some crappy password for this one too a lot of my testing stuff I just use like really terrible passwords and Im fine with that because theyre testing so um great so now we have were connected with remix uh we have the sword hold on soul and were going to grab the uh gorelli go early link token address and were just going to go ahead and deploy huzzah and you can go check out this orville.soul code at the chain link Ill get up if you want uh heres our contract Im just going to copy this put it into passwords for now Oracle address for now foreign and were going to leave this up for now because were going to need to add something here of Ken 42 yes this is how you can kind of great your own like mock miniature um data feed you obviously theres a few more steps than what were going to cover to like create like a um a professional one because youre gonna need a lot more nodes and a lot more coordination uh but cool so weve deployed weve compiled weve deployed array um uh now what we need to do is in our we need to add our node our nodes key to our to our uh Oracle contract address so the way that this works is whenever a request is made to our chain link node our chain link node is actually going to send the response to this Oracle contract that we just delivered and then this Oracle contract is going to pass it over to um uh to the contract that made the request so we actually need to set the we actually need to tell this contract that its cool if um our node is delivers to data so what were going to do and it says in the docs here theres a set fulfillment permissions and were going to set it to true so set familiar set fulfillment permission were going to grab our chain link nodes address paste it there were going to do true were going to hit OK and were going to confirm so now were basically hooking up our Oracle contract that we just deployed to our chain link node and additionally because uh our chain link node has this evm address when we need to do is we need to send it some Corelli eth were just going to send it one for now confirm thank you and remember I dont have any go or go early gorelli I dont know how to pronounce any of this stuff you can go to faucets.chain.link and youll be good there yes this is correct node to the Oracle contract to the smart contract yes ice queen there should be sound I hope there is sound and cool and thats going through and once that finishes going through well see this updated which is nice Okay cool so thats fulfillment permission to true um awesome now were gonna add our first job okay so were gonna hit copy here and this is what our first job looks like and in our operator UI were gonna hit new job and were gonna paste it in and then lets go ahead and hit create drop oh whoops uh but we have to swap out our Oracle contract address which were going to do or paste that in there and theres usually a second spot paste it in here great job okay cool now weve successfully created job one if we go back to jobs we see we have a job here its name is get un256 and then heres the definition now this is might be a little daunting but lets uh lets kind of talk about this real quick so type is direct request so there are different types of jobs with chain link right so um if you go over to evm chains uh and you look on the left hand side you have data feeds using Randomness connect any API and automate contracts a direct request job um direct request job is going to be this uh this connect to any API right so theres a lot of different types theres a type for uh the chain link automation theres a type for chain link vrf theres a type for um for training data feeds um were kind of were just using direct request schema version one ignore that thats the name thats the job ID the install doesnt really matter this is the contract address so this is the address that um this is the Oracle address that were interacting with interacting with minimum contract payment whenever you take a request you actually get paid in link token were just setting it to zero for now and then heres kind of the more interesting data Parts um this syntax can get a little used to uh getting used to but basically what what its happening is its going to be listening for events right so its listening for events of this contract and its going to decode any Oracle request that comes in so remember how um if youre familiar with like events and solidity this or this this chain link contract is going to emit this Oracle request with all this stuff in it and um were basically going to extract the information off of this event then were going to parse the data that comes from that event and then whatever in that data object were going to set some parameter to a get were going to fetch that were going to make an HTTP get call were gonna and then from that response were going to Jason parse it multiply it and code the data and then resubmit it on chain and then this is just like the order of stuff so this is a little confusing dont worry about it when I show you what it looks like itll make sense um but so this is the job that we just created which is great and then hopefully if we go to Key Management great now we have an eighth bounce of one so we can actually send transactions here thank you cool all right now what do we want to do so weve done that done that a job awesome and now what we can do is we can actually deploy a contract and interact with our node exciting very exciting so here is uh This a test night contract I dont love this one do I want to use the other one whats the other one look like maybe I should just stick to the one that I practiced huh kind of want to do this one though this ones nicer yeah I guess its fine now theres too much stuff here I dont want to use this one if you want to use that one you can use that one Im using Im going to use this single word response one from the docs Im going to copy this go to remix and were going to paste it in here API requests any testing whats this one called AP the consumer foreign I want to use API consumer because thats what I want to use all right cool so in here uh we have some stuff so we set the link uh the chain link token which is great thats what we want we also set a chain link Oracle and we give it a job ID for us our Oracle is different so what were going to do is were going to grab this Oracle address that we deployed that we used before oh its the same one as this one so were gonna get an oracle address um Oracle address were going to need our job ID so if we go to the definition we can see external javity like this to remix and then we just got to get rid of these hyphens okay and then a theme and then were going to call were going to make an HTTP get request to this this URL here and this is the response and what were going to do is were going to say okay we want the volume 24 hour we want raw F USD volume 24 hour so thats raw f raw F USD uh volume 24 hour this is the value that were going to get if we want but as you can see here theres a decimal place here decimal places are no good for um facility so were going to do this times amount were going to multiply it by this massive number to remove the decimals oh uh so yeah we did this rect.ad to like add this to it um we did the times amount we do rec.add init or excuse me add int and then were going to send the chain link request so what were going to do is were going to compile the contract were going to go to injected metamask were going to deploy this foreign and then were going to use this contract that were deploying to connect to our node that we just created which is pretty gosh darn exciting but of course we had to wait like a million years for our transactions to go through because such is okay such as the life of web3 the metamask update I actually thought was pretty cool if you guys if everyones been following along with them um like if you look under your meta mask you can now see like sepolia uh if you go to Networks like said polio and gorelli are now there and like Broxton Cove and rinkier now kind of grayed out which which is kind of sad but its also you know such as like Okay cool so our contract finished deploying and now we have this contract now Im gonna press this button um Im gonna send this request volume data transaction and were going to get an error and Im going to ask you all can you guess why were getting this error why do you think were getting this error gas estimation failed whats going on what do you thinks going on why am I getting that error why why am I getting this what do you think real simple fix what do you think though why are we getting that error what am I doing wrong maybe not set a gas limit close good guess good guess not quite though have to include ethereum Closer Closer not quite though no not quite good guesses though so how do chain link nodes stay incentivized to provide data other chain link nodes stay incentivized to provide data what do we need here what does our contract need give you a hint when we send chain link request we also send something else or we also attempt to send something else well give you all another 60 seconds to guess why are we getting this gas estimation failed hint is we send something approve is is much closer that is really close funds yes yes what kind of funds what kind of funds are we missing foreign yes correct correct what kind of funds are we missing the stream yard uh comments are coming in kind of slow sorry so you might actually already have the answer I just havent heard it yet or I havent seen it pop up on my screen yet pinky linkies you are youre very much correct yes its the link token its the jewels yes so what we need to do is we need to copy this address we need to send it some link token so Im going to do is Im going to send Im going to paste the address were going to grab some link were just going to send it one which is overkill and were going to send it some link so right at the top we have this thing called fee uh and were setting the fee to 0.1 um every time we send a chain link request we have to send some amount of Link token uh with the request so we need to fund our contract with link token in order to oops in order to actually send a a request but what youll see oh no did I lose in is right now volume is zero were going to send a request to our chain link node to make that API call and update the volume and when the tailing nodes responds this volume uh button slash variable will be updated okay great link has been sent now if I hit request volume data metamask will come up like normal so thats something that I think is really good to know too that gas estimation failed is like the most generic and probably frustrating um errors of all time um but usually when you get that it means like some balance is too low to do something whether its eth or a token or something excuse me but now weve sent it and were good to go so well go ahead and confirm now and if were fast enough once this transaction oops once this transaction goes through which it looks like it just finished right looks like you just finished on our operator give it a little refresh go to runs any second now we will see um a request come in unless Im messed it up ah we have our job that came in and it went through all that stuff so our chain link node uh found out and said oh somebody sent a request in and it did everything so I said okay heres the Callback address which is the address of um this contract we just created heres all the data it sent me okay lets call that API um lets call it API heres the massive response uh lets just get that 47 uh 475 000 blah blah whatever um from the API response lets multiply it so that it doesnt have any decimal places now lets encode it into like evm understandable data now lets encode the transaction and then well submit the transaction back and back on our um uh contract we can now see the volume has been updated and weve successfully made an API call from our solidity code which is very exciting so with this you now know at least from the most minimalist example how to have a chain link node get arbitrary data connect your chain link node to a blockchain run it locally um and um yeah and so this is like one of the big uh one of these things that can really like supercharge your smart like I was saying like supercharger smart contract development um experience um and allow you to do way more custom things and customizations with your smart contracts uh if you want to get more advanced you can check out the external adapters which is a way basically for you to make your own HTTP endpoint for your chain link node so you can provide kind of a custom endpoint custom data um for your different applications so um we have about two minutes left here uh thanks for for jumping in um and watching hope you all learned something uh in the in the next 90-ish seconds are there any other questions is there anything people didnt understand any other thoughts oh there are a couple questions here is chain link price feed contract open source yes you can see all the chain link price feed stuff you know both on chain and in the GitHub yes its all open source do we have to include payable in the node for it to be transactionable 2. um what do you mean um I think the answer to that is no but Im not totally sure what you mean is it possible to run a chain link node with hard hat uh yes it should be if its not um if its not you should make a PR and make that uh enabled that might be like a training services I think it should be I think it should work though I havent tested it in a while can node replace open Zeppelin Defender um I mean they they do different things so open Zeppelin Defender is kind of like a a um its a closed-sourced like um or it might be open source opens up a Defender they do different things chain link nodes are for providing data and automation opens that opens upload and Defender as far as Im aware its kind of like a actually you know Im not gonna Im not even gonna uh say something stupid open Simple and Defender something opens upload and defended as data foreign okay so you do automation but so its its centralized though thats the difference so its centralized they have a relayer automate tasks Auto tasks so its a centralized version so but still very different I missed team formation am I able to continue hackathon or I miss it yeah you can keep going so just uh get a team yeah thats fine what are some use cases for needing to run a node uh great question well um maybe we want some custom data Maybe you want um your application to get you know the weather you wanted to get um the temperature of the Earths core you want to get a certain Financial uh price that isnt in a price feed you know theres a whole bunch of reasons to run a node or you or you want a price feed right I mean like price feeds are all exist because theyre backed by chain link nodes so uh good questions well thank you all uh hopefully you all learned something um excuse me I gotta jump off but enjoy the rest of the hackathon and well see you next time In this video, learn how to locally setup and use a Chainlink node, and then use it to make API calls with your externally connected smart contracts.Chainlink is the industry-standard Web3 services platform and has enabled trillions of dollars in transaction volume across DeFi, insurance, gaming, NFTs, and other major industries. As the leading decentralized oracle network, Chainlink enables developers to build feature-rich Web3 applications with seamless access to real-world data and off-chain computation across any blockchain and provides global enterprises with a universal gateway to all blockchains. Learn more about Chainlink: Website: Docs: Twitter: Chainlink ChainlinkFall2022Hackathon,