当前位置:首页 > 物联网 > 区块链
[导读] 本文我会给大家介绍,如何从零开始,在一个全新的Ubuntu系统上,搭建起Chainlink测试节点的过程。本文内容非常的基础,如果你已经非常熟悉Chainlink,或者的开发运维高手,无需阅读本

本文我会给大家介绍,如何从零开始,在一个全新的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来访问节点管理界面了。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭