本文详细介绍了如何在以太坊主网上设置和运行Chainlink节点,涵盖了所需的先决条件、创建Ethereum端点、配置PostgreSQL数据库以及运行Docker容器的步骤。文章提供了清晰的指导,有助于希望与链上合约交互的开发者理解和应用Chainlink技术。
智能合约是以太坊区块链上所有开发的核心,随着越来越多的人在以太坊上开发,智能合约变得越来越复杂。
有时,智能合约需要获得与现实世界相关的信息,比如以太坊的价格或篮球比赛的得分。当这种需求存在时,这些智能合约需要处理外部数据,这被称为链外数据,它并不已经存在于区块链上,这些数据需要与链上数据保持相同的格式。将这些外部数据连接到区块链,以便链上和链外来源都能理解的语言所面临的困难,限制了智能合约的广泛可用性。因此,Oracles 被引入区块链生态系统,以将链外数据带入链上。Oracles 通过网络 API 检索并提供外部数据到区块链和智能合约。但是,中心化的 oracles 可能会削弱区块链的优势,因为它们可能出现故障并且可被更改。这就是 Chainlink 进入视野的地方。Chainlink 旨在为复杂的智能合约提供不可篡改的输入和输出,并将其连接到现实世界事件和数据。Chainlink 在区块链社区中获得了相当的知名度。Chainlink 网络建立在独立的节点操作员上,使其成为去中心化的 Oracle 技术,不同于依赖于集中实体作为网关的其他 Oracle 设计。节点操作员通过提供高质量和诚实的工作获得 LINK 代币作为奖励。Chainlink 节点为每个节点注册作业规范,以执行由链上 Oracle 合同协调的作业。
运行 Chainlink 节点使你可以将外部数据直接提供给智能合约。在本指南中,我们将配置我们的 Chainlink 节点,并成为以太坊主网的节点操作员。
先决条件
为了实现我们的目标,今天我们可以使用几乎任何以太坊客户端,比如 Geth 或 OpenEthereum(前称 Parity)。由于这对于让我们的 Chainlink 节点运行来说有点复杂,我们将只需在 这里 设置一个免费的 QuickNode 账户,并轻松创建一个以太坊端点。在你创建以太坊端点后,复制你的 WebSocket 端点:
你稍后需要这一点,所以请复制并保存它。
要运行 Chainlink 节点,我们还需要一个 PostgreSQL 数据库实例,PostgreSQL 是一个开源的、对象关系型数据库,创建时考虑了可扩展性、数据完整性和速度。它的并发支持使其与 ACID 事务兼容,并且支持动态加载。
如果你已经设置了 PostgreSQL 数据库,请获取以下格式的连接字符串 - postgresql://$USERNAME:$PASSWORD@$SERVER:$PORT/$DATABASE
,然后可以转到下一部分。
现在,让我们看看如何设置我们自己的 PostgreSQL 实例,我们将在这里使用 DigitalOcean 。
第 1 步: 如果你还没有,请创建一个 DigitalOcean 账户 并登录。
第 2 步: 在你的 DigitalOcean 控制面板上单击“创建”,然后选择数据库,这将带你进入一个配置数据库的页面。
第 3 步: 在“选择数据库引擎”部分选择 PostgreSQL 作为你的数据库引擎,在“选择集群配置”部分选择具有 1GB RAM 和 1 vCPU 的最小节点,因为你可以在以后扩大节点,但不能降级,你还可以在更高级的节点计划中选择一个备用节点,以便提高可靠性。
第 4 步: 在“选择数据中心”部分选择数据库的区域,始终选择你的应用服务器所在或最近的区域。
第 5 步: 在“最终确认和创建”部分,你将看到自动生成的数据库名称,你也可以输入自定义名称,选择你希望此数据库所属的 DigitalOcean 项目,甚至可以添加标签。
第 6 步: 现在你将看到数据库控制面板,在右上角的下拉菜单中选择 "连接字符串",将显示一个字符串,我们将在本指南的后面部分使用。你还可以在 登录到你的 DigitalOcean 账户 后找到你的数据库控制面板,转到 数据库页面,然后选择你的数据库集群名称。
到现在为止,你应该已经安装了 Docker-CE,如果没有,请在你的终端或命令行中输入以下内容(适用于 Ubuntu):
对于 Ubuntu:
$ curl -sSL https://get.docker.com/ |
sudo usermod -aG docker $USER
exit
对于 macOS: Docker-CE 随 Docker Desktop 一起提供,可从 Docker hub 下载,安装 Docker Desktop 并打开 Docker.app,Docker 即可运行。
对于 Windows: Docker-CE 随 Docker Desktop 一起提供,可从 Docker hub 下载,安装 Docker Desktop 并打开 Docker.app,Docker 即可运行。
接下来,既然我们已经安装了 Docker-CE,让我们通过创建一个新目录来开始设置我们的 Chainlink 节点:
$ mkdir .chainlink
之后,请在你的 chainlink 目录中创建一个 .env 文件,并粘贴以下内容:
ROOT=/chainlink
LOG_LEVEL=debug
ETH_CHAIN_ID=1
CHAINLINK_TLS_PORT=0
SECURE_COOKIES=false
ALLOW_ORIGINS=*
ETH_URL=ADD_YOUR_ETHEREUM_NODE_URL
DATABASE_URL=postgresql://$USERNAME:$PASSWORD@$SERVER:$PORT/$DATABASE
现在,请将 ADD_YOUR_ETHEREUM_NODE_URL
替换为“设置你的 QuickNode 以太坊端点”部分中给出的 WebSocket 端点。
最后一步是将 **postgresql://$USERNAME:$PASSWORD@$SERVER:$PORT/$DATABASE**
替换为你从“启动你的 PostgreSQL 实例”部分获取的 PostgreSQL 数据库连接字符串。
对上述代码的简要解释 - ROOT 指定根目录(第 1 行),LOG_LEVEL 描述你希望检索的日志级别(第 2 行),ETH_CHAIN_ID 描述我们使用的以太坊网络的网络 ID,这里为 '1',因为我们使用的是主网(第 3 行),ETH_URL 是存储端点的变量(第 7 行),$USERNAME 是数据库用户名(必须是拥有者),$PASSWORD 是数据库用户的密码,$SERVER 是数据库服务器的名称或 IP 地址,$PORT 是数据库监听的端口,$DATABASE 是你使用的数据库(第 8 行)。
我们现在可以通过运行节点的 Docker 镜像来启动它:
$ cd ~/.chainlink && docker run -p 6688:6688 -v ~/.chainlink:/chainlink -it --env-file=.env smartcontract/chainlink local n
在第一次运行镜像时,它会询问你一个密码和确认。这将是你可以用来解锁生成的密钥存储文件的钱包密码。然后你将需要输入一个 API 邮件和密码,它将用于为 GUI 界面公开 API。
就是这样!你的 Chainlink 节点现在已全部设置完毕,你现在可以与链上链点网络和区块链上的智能合约进行交互。
请订阅我们的 时事通讯 以获取更多以太坊的文章和指南。如果你有任何反馈,请随时通过 Twitter 联系我们,如果你有问题,也可以在我们的社区服务器 Discord 上与我们聊天,谢谢 :)
- 原文链接: quicknode.com/guides/inf...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!