1.(可选) Docker部署以太坊节点Geth
如果之前部署了Geth等以太坊节点,或者在Infura等平台有访问以太坊节点的入口,这一步可以忽略。当前部署的是Sepolia节点,并且开放它的Websocket端口。
docker run -d --name eth -p 8546:8546 -v ~/.geth-sepolia:/geth -it \
ethereum/client-go --sepolia --ws --ipcdisable \
--ws.addr 0.0.0.0 --ws.origins="*" --datadir /geth
2.(可选)Docker部署Postgres数据库
如果存在可用的Postgres的数据库节点这一步骤可以忽略。
以下是Docker部署Postgres数据库的脚本信息,Postgres主要是用于记录用户的权限信息和操作信息。POSTGRES_PASSWORD的环境变量需要设计的复杂一些,需超过16个字节,不然后面启动Chainlink节点会提示密码不够复杂。
docker run -d --name cl-postgres -e POSTGRES_PASSWORD=your-password -p 5432:5432 -d postgres
3.部署Chainlink节点
1. 创建config.toml文件
Level = Chainlink节点输入日志的级别
AllowOrigins = 跨域的设置
ChainID = 以太坊节点的链ID。我用的是Sepolia
WSURL = 你的以太坊节点的信息,若没有可以在Infura、Alchemy平台进行获取你的以太坊节点的访问通道。
echo "[Log]
Level = 'DEBUG'
[WebServer]
AllowOrigins = '\*'
SecureCookies = false
[WebServer.TLS]
HTTPSPort = 0
[[EVM]]
ChainID = '11155111'
[[EVM.Nodes]]
Name = 'Sepolia'
WSURL = 'wss:YOUR-EHTNODE-URL'
HTTPURL = 'https://YOUR-EHTNODE-URL'
" > ~/.chainlink-sepolia/config.toml
2.创建secrets.toml文件
Keystore=钱包密码,在chainlink运行的时候,他会自动为你创建一个钱包信息。用它可以解锁生成的keystore文件
URL=postgres数据库的连接信息
YOUR-PASSWORD=替换成你的数据库的密码
YOUR-POSTGRES-URL=替换成你数据的Url
echo "[Password]
Keystore = 'your-keystore'
[Database]
URL = 'postgresql://postgres:YOUR-PASSWORD@YOUR-POSTGRES-URL:5432/postgres?sslmode=disable'
" > ~/.chainlink-sepolia/secrets.toml
3.执行Chainlink镜像的启动脚本
需要注意:在第一次执行脚本时,不要采用守护进程,在启动过程中需要输入登录Chainlink的邮箱和密码。此邮箱密码做为登录Chainlink管理端的账号密码。等部署好后,使用 Ctrl + P, Ctrl + Q 组合键进行安全退出。
docker run --platform linux/x86_64/v8 --name chainlink -v ~/.chainlink-sepolia:/chainlink -it -p 6688:6688 --add-host=host.docker.internal:host-gateway smartcontract/chainlink:2.3.0 node -config /chainlink/config.toml -secrets /chainlink/secrets.toml start
4.部署成功
部署成功后,可以访问通过http://localhost:6688 访问chainlink节点的管理页面,如下图
1.输入在运行Chainlink节点时,输入的邮箱账号和密码。
2.顺利进入控制台