以太坊 - 如何设置Chainlink节点 - Quicknode

  • QuickNode
  • 发布于 2025-01-30 21:15
  • 阅读 18

本文详细介绍了如何在以太坊主网上设置和运行Chainlink节点,涵盖了所需的先决条件、创建Ethereum端点、配置PostgreSQL数据库以及运行Docker容器的步骤。文章提供了清晰的指导,有助于希望与链上合约交互的开发者理解和应用Chainlink技术。

概述

智能合约是以太坊区块链上所有开发的核心,随着越来越多的人在以太坊上开发,智能合约变得越来越复杂。

有时,智能合约需要获得与现实世界相关的信息,比如以太坊的价格或篮球比赛的得分。当这种需求存在时,这些智能合约需要处理外部数据,这被称为链外数据,它并不已经存在于区块链上,这些数据需要与链上数据保持相同的格式。将这些外部数据连接到区块链,以便链上和链外来源都能理解的语言所面临的困难,限制了智能合约的广泛可用性。因此,Oracles 被引入区块链生态系统,以将链外数据带入链上。Oracles 通过网络 API 检索并提供外部数据到区块链和智能合约。但是,中心化的 oracles 可能会削弱区块链的优势,因为它们可能出现故障并且可被更改。这就是 Chainlink 进入视野的地方。Chainlink 旨在为复杂的智能合约提供不可篡改的输入和输出,并将其连接到现实世界事件和数据。Chainlink 在区块链社区中获得了相当的知名度。Chainlink 网络建立在独立的节点操作员上,使其成为去中心化的 Oracle 技术,不同于依赖于集中实体作为网关的其他 Oracle 设计。节点操作员通过提供高质量和诚实的工作获得 LINK 代币作为奖励。Chainlink 节点为每个节点注册作业规范,以执行由链上 Oracle 合同协调的作业。

运行 Chainlink 节点使你可以将外部数据直接提供给智能合约。在本指南中,我们将配置我们的 Chainlink 节点,并成为以太坊主网的节点操作员。

先决条件

设置你的 QuickNode 以太坊端点

为了实现我们的目标,今天我们可以使用几乎任何以太坊客户端,比如 Geth 或 OpenEthereum(前称 Parity)。由于这对于让我们的 Chainlink 节点运行来说有点复杂,我们将只需在 这里 设置一个免费的 QuickNode 账户,并轻松创建一个以太坊端点。在你创建以太坊端点后,复制你的 WebSocket 端点:

Quicknode 以太坊端点的截图

你稍后需要这一点,所以请复制并保存它。

启动你的 PostgreSQL 实例

要运行 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

到现在为止,你应该已经安装了 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 即可运行。

运行我们的 Chainlink 节点

接下来,既然我们已经安装了 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 行)。

启动我们的 Chainlink 节点

我们现在可以通过运行节点的 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 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。