本文我会给大家介绍,如何从零开始,在一个全新的ubuntu系统上,搭建起chainlink测试节点的过程。本文内容非常的基础,如果你已经非常熟悉chainlink,或者的开发运维高手,无需阅读本文。本文所说的内容仅适用于测试环境,正式环境的部署请参考官方文档,或咨询chainlink官方技术人员。
我们使用docker来建立ethereum client节点和chainlink节点。使用docker的好处就是省去了编译工作,编译需要建立相对复杂的开发环境,可能还需要解决一些编译错误,比较费时费力。好在无论是ethereum还是chainlink,官方都会及时提供最新的release版本的镜像,我们直接拿来用就可以了。
安装docker
首先需要安装docker,大家可以在这个页面根据自己操作系统的情况来按照文档完成安装。下面我写一下ubuntu1804环境下的安装步骤。(参考)
依次执行下面的命令
安装必要的包
sudo apt update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
安装docker官方提供的gpg key
curl -fssl https://download.docker.com/linux/ubuntu/gpg》 | sudo apt-key add -
此时可以验证一下可以的正确性,输入下面的命令,如果出现的是这一串字符 9dc8 5822 9fc7 dd38 854a e2d8 8d81 803c 0ebf cd88,说明正确。
sudo apt-key fingerprint 0ebfcd88
pub rsa4096 2017-02-22 [scea]
9dc8 5822 9fc7 dd38 854a e2d8 8d81 803c 0ebf cd88 uid [ unknown] docker release (ce deb)《docker@docker.com》
sub rsa4096 2017-02-22 [s]
将稳定版本的docker添加到apt库中
sudo add-apt-repository \
“deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable”
开始安装
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
这个过程可能会花费一些时间。完成后我们就完成了docker的安装了,你可以输入docker -v,如果有正确的输出,就说明安装成功。
建立ethereum client(geth)节点
我们使用docker来运行起一个同步模式为light的geth节点,网络选择测试网络ropsten。parity节点参考文档
https://docs.chain.link/docs/run-an-ethereum-client#section-parity
获取最新版本的geth docker镜像
docker pull ethereum/client-go:latest
注:如果遇到权限问题,可以通过下面的命令,将当前用户添加到docker用户组
sudo usermod -a -g docker $user
或者直接在拉取镜像的命令前加sudo。
创建ethereum数据目录
mkdir ~/.geth-ropsten
运行ethereum容器
docker run --name eth -p 8546:8546 -v ~/.geth-ropsten:/geth -it \
ethereum/client-go --syncmode light --testnet --ws --ipcdisable \
--wsaddr 0.0.0.0 --wsorigins=“*” --datadir /geth
启动之后可以通过ctrl+p 和 ctrl+q 来与docker的环境分离(detach)。
再次启动的话直接输入docker start eth就可以了。其中eth是刚刚启动命令中—-name中指定的容器名。
运行chainlink节点
创建chainlink测试目录
mkdir ~/.chainlink-ropsten
创建环境变量文件
echo “root=/chainlink
log_level=debug eth_chain_id=3 min_outgoing_confirmations=2 min_incoming_confirmations=0 link_contract_address=0x20fe562d797a42dcb3399062ae9546cd06f63280
chainlink_tls_port=0
secure_cookies=false
allow_origins=*” 》 ~/.chainlink-ropsten/.env
其中
eth_chain_id=3表示chainlink需要接入ethereum的ropsten测试网络。
link_contract_address填入的是ropsten测试网络上的link token合约地址,这个地址在不同的网络上是不同的。如果您使用的不是ropsten测试网络,需要前往chainlink官方文档查询对应的合约地址。
由于chainlink需要监听以太坊网络上的状态变化,所以需要充以太坊节点获取最新的区块信息。chainlink与以太坊节点通过websocket进行通信。所以接下来需要获取ethereum节点的地址。
如果以太的客户端节点容易与chainlink的节点运行在同一台主机上,可以通过下面的命令获取到以太坊节点地址。
eth_container_ip=$(docker inspect --format ‘{{ .networksettings.ipaddress }}’ $(docker ps -f name=eth -q))`
然后将以太坊的地址写入到chainlink的环境变量文件中:
echo “eth_url=ws://$eth_container_ip:8546” 》》 ~/.chainlink-ropsten/.env`
其中8546是以太坊节点默认的websocket监听端口,确保不要连接成rest或其他端口。
如果以太坊节点和chainlink节点不再同一台机器上,请获取到以太坊所在机器的ip地址,并确保以太坊所监听的websocket端口开放。
运行chainlink容器
cd ~/.chainlink-ropsten && docker run --name chainlink -p 6688:6688 -v ~/.chainlink-ropsten:/chainlink -it --env-file=.env smartcontract/chainlink local n
首次启动的时候会要求两个密码,第一个输入的是节点钱包的密码,可以用来解锁节点自动生成的keystore。输入之后还需确认一次。第二个密码是一个账户和密码对,是gui界面的登录密码和api的调用密码。
这两个密码和账号请务必牢记,如果丢失可能需要重新建节点。
你还可以把账号和密码写到环境变量的配置文件里,防止在终端输入时的拼写错误。
同样,启动之后可以通过ctrl+p 和 ctrl+q 来与docker的环境分离(detach),再次启动时输入docker start chainlink 即可。此时建议您将节点密码配置到文件中以方便使用。
不出意外的话你的第一个chainlink节点就搭建完成啦。你可以通过在浏览器中输入节点ip:6688来访问节点管理界面了。
东莞华为扩展坞ODM厂家让连接更精彩
OPPO R15X跑分曝光,骁龙660加持,实力藐视华为Mate 20
射频硅基氮化镓:两个世界的最佳选择
加尔发半导体推出智慧型无线迷你收发器AM8900
电机绕组的浸漆工艺详解(目的/工序/方法/守则/注意事项)
如何在Ubuntu系统上搭建一个Chainlink测试节点
英特尔正式推出高端服务器双内核Xeon处理器
联想打造智慧教育数字化样本 推动教育数字化进程
汽车电力载波总线系统的应用设计
西数将携手希捷合作研发10碟片新型硬盘
mini led直显和背光区别解答
挥发性盐基氮检测仪有什么用途,它有哪些特点
LinkSwitch—TN系列开关电源专用IC的性能特点及典型应用
Arbor Networks推出Pravail可用性保护系统
高山电网上的电线被冰覆盖怎么办?
“从芯到云”,紫光集团正意图在存储产业构建一个千亿美元帝国
瑞萨电子顶级汽车安全芯片RH850/P1x-C系列,使无人驾驶成为可能
高通CEO表示分析机构看好华为5G手机明年出货量将是全球第一
通用将量产新燃料电池(成本低自重小)
物联网时代,ARM缘何成为龙头的最爱?