freeradiantbunny iconfreeradiantbunny.org

freeradiantbunny.org/blog

Chainlink Node

Here is my understanding of how Chainlink technology is designed. I am just learning, but it seems simple enough.

A blockchain (like Ethereum) has smart contracts and these smart contracts need to get data from the real world (for example, the winner of this season's Superbowl). So, a "Chainlink Node" is a computer server designed to be a host of oracles, programs designed to provide off-chain data.

Here are some work-in-progress instructions for setting up a Chainlink Node, mostly derived from following the Chainlink developer doc's "Running a Chainlink Node".

Setting Up a Chainlink Node

    # this is a work-in-progress (no oracles online yet)
    # requirements: server with website and default homepage

    # start chainlink install...
    
    # on hosting digitalocean.com: set up "database cluster" on digitalocean.com
    # select postgresql
    # use digitialocean.com datbase cluster UI to get postgresql string

    # on the server: configure chainlink to connect to remote database
    # connection_string was placed in ~/connection_string.txt
    # open .env file and add DATBASE_URL=[POSTGRESQL-STRING]

    # set up docker
    cd .chainlink_node
    chmod 700 setup_docker.pl
    ./setup_docker.pl
    # need to logout and log back in for the groups to take effect
    
    # configure Ethereum proxy
    # this is already configured
    # during the install ETH_URL will need to be configured
    # access fiews.io account
    # select ropsten and websocket version
    # get key (which is a URL)

    # on server
    # plaand put URL in .env file
    # set variable ETH_URL=
    # chainlink node will access Ethereum node via key address URL

    # alternative
    # #### access infura account
    # #### select ropsten and websocket version
    # #### get key and put it in .env file
    # #### access Ethereum node

    # alternative
    # #### another way to set up an Ethereum client
    # #### have a personal blockchain for ETH development
    # #### Ganache
    # #### http://localhost:7545
    # #### sudo npm install -g ganache -cli

    # resilient systems
    # set up system so if a Ethernet proxy fails it will fail-over

    # end of chainlink node setup

    # how to operator a chainlink node

    # start the chainlink node
    # tell docker to run the image
    # run a perl script that contains the docker command
    chmod 700 ./run_chainlink_node.pl
    ./run_chainlink_node.pl
    # during first execution: should be prompted for new password
    # CTRL-p CTRL-q to exit the process and return to shell prompt

    # test node operator dashboard
    # this dashboard enables operator to monitor the node
    # the dashboard URL is http://localhost:6688

    # fund the node
    # send LINK to chainlink node
    # open https://mudia.live, login, go to config tab, and get ACCOUNT_ADDRESS
    # get ETH (testnet faucet) to wallet
    # get LINK (testnet faucet) to wallet
    # send LINK from wallet to ACCOUNT_ADDRESS (of chainlink node)
    # send LINK from wallet to ACCOUNT_ADDRESS (of chainlink node)

    # have a disaster recover plan
    # backup and restore
    # what data is needed to retore the system with a new server?

    # docs
    # here begins the iterative programming Smart Contracts
    # the aim is to provide data to customers who have smart contracts
    # (1) manage each step in the process
    # (2) record the execution of each step in the process
    # (3) review the measurements of the process and do improvements
    # (4) keep the books

    # think like an operator
    # extend-kubernetes/operator
    
    # docs
    # each process is a row in a database table
    # moneymaker_measurements
    # eech iteration of the program development life cycle is recorded in a database table
    # moneymaker_measurement_instances

    # perhaps make a node.js script server bot that asks for information
    # the measurement bot tries to figure out the status of all the entities and looks for errors

    # security checklist
    # security triggers
    # test the backups
    # make webserver mirrors

    # IDE #1: remix
    # use remix as an development environment
    # remix

    # switch to dev machine
    # set up solidity develoment environment

    # how to publish an oracles contract on chainlink blockchain
    # add the chainlink node address to the smart contract

    # fulfillment
    # create a smart contract
    # docs: "fulfilling-requests"
    # docs: "Oracles with Chainlink..."
    
    # install chainlink library (for development environment)

    # IDE #2: truffles
    # Truffle
    sudo npm install truffle -g
    mkdir chainlinked-project
    truffle unbox smartcontractkit/box
    # check logs
    npm upate
    npm audit fix
    npm update
    # HTTPS://BLOG.CHAIN.LINK/HOW-TO-USE-CHAINLINK-WITH-TRUFFLE-2/
    # study test/MyContract_test.js
    
    # jobs
    # add jobs and earn LINK
    # add the chainlink node address to the smart contract
    
    # program a smart contract (to test)

    # market my chainlink node
    # post the existence of the node on marketplace websites
    # advertise the chainlink node

    # measure the performance over time of my chainlink node
    # measure the industry standard performance
    # ruputation.link
    
    # interact with the chainlink community
    # set up discord and join chainlink groups

    # learn more
    docs.chain.link/docs/faq and see "Workshop Links" on the menu
    best security practices
    Fulfilling Requests

    # faucets
    faucet.ropsten.be
    ropsten.chain.link

    # block explorers
    ropsten.etherscan.io/address/0xc...
    
    remix
    Chainlink API
    Chainlink Node API (Reference)
    Chainlink Workshop Links
    Wallet Address (Ropsten Testnet Network)
    ATestnetConsumer.sol
    address on robsten
    ChainLink Whitepaper
    Chainlink Market
    
    
    
    
    
    
  

[TOP]