当前位置:首页 > 物联网 > 区块链
[导读] 如果您已经注册了一个不错的ENS名称,并希望通过IPFS和以太坊名称服务使您的站点/dapp可用。要使其成为部署脚本的无缝部分,需要执行几个步骤。 在我们开始之前。.. 在本指南

如果您已经注册了一个不错的ENS名称,并希望通过IPFS和以太坊名称服务使您的站点/dapp可用。要使其成为部署脚本的无缝部分,需要执行几个步骤。

在我们开始之前。..

在本指南中,我假设您已经了解如何使用IPFS和ENS托管网站的基础知识。重点在于部署自动化和调整CI工作流程。 如果您不熟悉ENS和IPFS,可能会出现一些问号:)

Node.js版本:在编写本文时,不能将ens-updater安装在12.x或更高版本的节点上,因为某些依赖项需要脚本模块,该脚本模块无法构建。 在https://github.com/TripleSpeeder/ens-updater/issues/44中跟踪了此问题。 在问题解决之前,请使用节点版本10或更低版本。

要完成的任务

部署分布式的站点需要两个步骤:

1. 将内容发布到IPFS,获取新的CID。

2. 将ENS名称的IPFS记录设置为指向新的CID。

对于这两个步骤,都可以使用命令行工具。 首先我们将详细研究每个步骤,然后创建一个Travis配置,该配置将完全自动化部署。

第1步-发布到IPFS

对于此任务,我们将使用CLI工具ipfs-deploy。 通过npm全局安装:

》 npm install -g ipfs-deploy

这个工具真的很简单。 您只需要提供要部署的构建文件夹,然后选择要使用的IPFS固定服务即可。

假设应用的生产版本位于文件夹版本中,则可以运行以下命令以通过公用的infura ipfs节点进行部署:

》 ipfs-deploy build -p infura

注意ipfs-deploy提供的CID字符串Qm…。 这是构建的唯一标识符,需要将其添加到ENS名称中。

Ipfs部署支持许多不同的IPFSpinning服务,其中一些需要身份验证。

这就是第一步的全部内容-您的构建现已发布!

步骤2 —设置您的ENS名称的contenthash记录

对于此步骤,我们将使用cli工具ens-updater。通过npm全局安装:

》 npm install -g @triplespeeder/ens-updater

ens-updater支持许多不同的命令来管理您的ENS名称。对于本教程,我们只希望设置名称的contenthash条目,使其指向您在步骤1中获得的CID。请检查ens-updater --help的输出,以获取受支持命令的概述以及github页面的内容。

由于我们需要与ENS智能合约进行交互以更新contenthash条目,因此我们需要做两件事:

1. 访问以太坊节点以与智能合约进行交互。

2. 控制ENS名称的帐户的私钥。

您可以直接或通过助记符字符串(和可选的帐户索引)间接提供私钥。对于这两个选项,您都需要将信息放入.env文件中或设置环境变量。

对于本教程,我们将私钥保存在.env文件中。 打开您选择的文本编辑器,并在工作目录中创建文件.env:

PRIVATE_KEY=《private key here, without leading 0x》

为确保所有设置均正确,请使用--dry-run选项调用ens-updater。 设置此选项后,将不会执行任何实际交易,但将报告潜在的配置或设置问题。

示例:在空运行模式下,将ENS名称mysite.eth的内容哈希记录设置为ipfs CID Qmd2yEHMTswLppDkWNjEMH4WwAgeuFXYeMHSn4VcJMcvKy的完整命令:

》 ens-updater setContenthash mysite.eth ipfs-ns

Qmd2yEHMTswLppDkWNjEMH4WwAgeuFXYeMHSn4VcJMcvKy --web3

http://localhost:8545 --verbose --dry-run

检查结果输出以查看是否报告了任何错误。否则,您最好不用— dry-run继续!

现在将浏览器指向http://mysite.eth。假设您的系统设置正确,可以与.eth域一起使用,那么您应该会看到您的网站正在运行!

这就是第2步的全部操作-现在可以通过您的ENS名称访问您的网站!继续阅读以设置Travis进行自动部署。

将它们放在一起进行全自动部署

要使用Travis自动执行上述步骤,我们需要:

1. 创建一个结合了ipfs-deploy和ens-updater的部署脚本,由Travis在部署阶段执行。

2. 设置Travis以执行部署脚本。

3. 为Travis设置环境变量,以便ens-updater可以访问私钥。

部署脚本

由于ipfs-deploy通过stdout提供了CID,并且可以将ens-updater设置为从stdin中读取CID,因此我们可以将这两个命令用pipe连接在一个小型shell脚本中,如下所示:

#!/bin/bash

ipfs-deploy build -p $1 -C -O |

ens-updater setContenthash mysite.eth ipfs-ns stdin -v --web3 $2

该脚本希望将pinner服务用于部署作为第一个参数,并将web3连接字符串用作第二个参数。 另外,请注意,通过将特殊字符串“ stdin”指定为ens-updater的CID,它知道从stdin中读取CID。

将此脚本添加到您的项目中,使其成为存储库的一部分并可供Travis使用。

Travis配置

现在编辑travis.yaml以在部署阶段执行脚本。这是一个真实项目中的(精简后的)样本配置,其中强调了重要的部分:

os: linux

language: node_js

node_js: 10

jobs:

include:

- name: “IPFS”

install:

- npm ci

- npm install -g ipfs-deploy

- npm install -g @triplespeeder/ens-updater

script: npm run build

deploy:

provider: script

script: bash scripts/deploy_ipfs.sh pinata https://mainnet.infura.io/v3/$INFURA_ID

skip_cleanup: true

安装阶段包含用于安装工具ipfs-deploy和ens-updater的其他命令。

部署阶段使用ipfs pinner服务“ pinata”和来自infura的web3实例执行我们刚刚创建的部署脚本。 不要忘记skip_cleanup选项-否则,Travis将在开始部署之前清除build文件夹。..

最后缺少的部分是提供ENS名称控制器帐户的私钥。让我们进行设置!

1. 转到Travis中的项目页面

2. 打开设置页面

3. 转到“Environment Variables”部分

添加一个名称为“ PRIVATE_KEY”的新环境变量,并将您的私钥粘贴到VALUE字段中。将BRANCH字段设置为您的master分支,因为部署将仅从master分支运行。确保不要选中“DISPLAY VALUE IN BUILD LOG”-否则任何人都可以在构建日志中看到您的私钥。

就我而言,我还为pinata IPFS服务和Infura web3服务添加了环境变量,并为可选部署到Github页面添加了GitHub令牌。 这是完整设置的屏幕截图:

在这些更改就位后,触发新的生成。如果一切顺利,您的构建日志将像这样结束:

就是这样!每当您将更新推送到主分支时,所做的更改都将部署到IPFS,并且ENS名称的contenthash记录也将更新。

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

加利福尼亚州卡尔弗城, Oct. 16, 2026 (GLOBE NEWSWIRE) -- 全球领先的互动数字娱乐独立开发商和发行商 Snail, Inc. (Nasdaq: SNAL,以下称为“Snail Games...

关键字: LMS IP INTERACTIVE AI

上海2026年10月15日 /美通社/ -- 10月14日,2027 SMG商业价值共创周东方明珠专场推介会在上海广播电视台举行。作为上海广播电视台(上海文广集团)(简称"SMG")旗下统一的产业平台...

关键字: IP 智能体 大屏 大赛

杭州2026年10月12日 /美通社/ -- 10月12日,浙江华感科技有限公司(以下简称"华感科技")正式发布旗下星界一体机系列热成像仪 AH315。作为大华股份(股票代码:002236)旗下创新业...

关键字: 热成像 折叠屏 IP PI

上海2026年9月30日 /美通社/ -- 在人口老龄化加速、肥胖及相关代谢疾病治疗需求持续攀升的背景下,GLP-1受体激动剂(GLP-1RA)类药物正迎来爆发式增长,其中替尔泊肽以2025年度365.07亿美元的销售额...

关键字: ISM IP PC ARMA

上海2026年10月5日 /美通社/ -- 距离第九届中国国际进口博览会开幕还有30天。作为连续九年参展进博会的"全勤生",拜耳即将再次赴约。过去八年,进博会见证了拜耳在中国发展的一个个重要节点:从创...

关键字: 网络 影像 AD IP

美国旧金山和中国苏州2026年9月28日 /美通社/ -- 信达生物制药集团(香港联交所股票代码:01801),一家致力于研发、生产和销售肿瘤、自身免疫、代谢、眼科等重大疾病领域创新药物的生物制药公司,宣布非共价(可逆)...

关键字: UI OV RC LOGIC

携手UICC共同呈现"生命故事:癌症之旅"主题影像展 上海2026年9月24日 /美通社/ -- 2026年9月24日至26日,富士胶片集团作为世界抗癌联盟(Union for Internatio...

关键字: 富士 影像 IC UI

新竹2026年9月24日 /美通社/ -- 全球硅知识产权(IP)领导供应商 M31 円星科技(M31)与超低功耗边缘 AI 半导体解决方案领先厂商 Ambiq 今...

关键字: FOUNDATION SoC 超低功耗 IP

上海2026年9月22日 /美通社/ -- 随着新能源汽车技术快速迭代,高转速、高负荷、高频启停已成电驱系统核心运行特征。不同于传统燃油车单纯的齿轮传动结构,新能源车电驱系统集成电机、减速器、轴承、高压电气等核心系统及部...

关键字: 新能源 EV UI 传动系统

2026年11月19-20日,“2026集成电路发展论坛(北京)暨三十二届集成电路设计业展览会”(ICCAD-Expo 2026)将在北京·亦庄 - 北人亦创国际会展中心隆重举行。

关键字: 集成电路 EDA IP
关闭