ag体育-如何使用IPFS和以太坊ENS自动发布去中心化网站

官方网

如果你已经注册了一个好的域名,并希望通过IPFS和以太网域名服务使你的站点/dapp可用。要使它成为部署脚本的无缝部分,必须继续几个步骤。开始之前.在本指南中,我假设您已经了解了如何在IPFS和ENS托管站点使用它的基本知识。重点是部署自动化和调整配置项工作流。

如果不熟悉ENS和IPFS,可能会经常出现一些问号。)Node.js版本:写这篇文章的时候,ens-updater不能安装在12.x或更高版本的节点上,因为有些依赖项必须是脚本模块,无法构造。

在https://github.com/TripleSpeeder/ens-updater/issues/44.跟踪到了此问题。在问题解决之前,请求的是节点版本10或更早版本。

为已完成的任务部署分布式站点有两个步骤:1 .向IPFS发布内容,并提供新的CID。2.设置IPFS记录的ENS名称指向新的CID。这两个步骤都可以用于命令行工具。

首先,我们将详细研究每一步,然后创建一个Travis设备,它将几乎自动部署。步骤1-发布到IPFS对于此任务,我们将使用命令行工具ipfs-deploy。通过npm进行全局安装:npm install -g ipfs-deploy非常简单。

您只需获取要部署的构造文件夹,然后自由选择要使用的相同IPFS服务。假定应用到的生产版本位于文件夹版本中,可以通过public infura ipfs节点运行以下命令进行部署:ipfs-deploy build -p infura注意ipfs-deploy得到的CID字符串QM。

这是构造的唯一标识符,必须添加到ENS名称中。Ipfs部署反对许多不同的IPFs锁定服务,其中一些必须经过身份验证。这是第一步的全部内容——你的建设现在宣布!步骤2-设置您的ENS名称的内容哈希记录。对于这一步,我们将使用cli工具ens-updater。

通过npm全球安装:NPM install-g @ triple speeder/ENS-updaterens-updater反对许多不同的命令来管理您的ENS名称。对于本教程,我们只希望将名称的contenthash条目设置为指向您在步骤1中获得的CID。请求是检查ens-updater – help的输入,以便提供无可非议的命令的解释和github页面的内容。因为我们必须与ENS智能契约交互来修改contenthash条目,所以我们必须做两件事:1。

采访以太网节点,与智能合同进行交互。2.持有ENS名称的帐户的私钥。

您可以根据需要或通过助记符字符串(以及附加的帐户索引)间接获取私钥。对于这两个选项,您必须将信息放入。环境文件或设置环境变量。

对于本教程,我们将私钥保存在。env文件。关闭您自由选择的文本编辑器,并在工作目录中创建一个文件。env:private _ key=private key这里,不带前导0x以确保所有设置都是准确的,请求调用带有- dry-run选项的ens-updater。

设置此选项后,任何实际交易都将继续,但会报告潜在的设备或设置问题。示例:在null操作模式下,将ENS名称mysite.eth的内容哈希记录设置为IPF cid qmd 2 yehmtswlppdkwnjemmeh4 wwageufxyemhsn 4 vcjmcvky的原始命令:ENS-updater setcontenthash my site . ethipfs-nsqmd 2 yehmtswlppkwn jemmeh4 wwageufxyemhsn 4 vcjmcvky-web :8545-verbose-dry-run检查结果输入,查看是否报告了任何错误。

不然就不用了——经过了预演!现在将您的浏览器指向http://mysite.eth。eth域,您不应该看到您的网站正在运行!这就是第二步的全部操作者——现在你可以通过你的ENS名字来面试你的网站了!之后阅读器通过设置Travis启动自动部署。将它们放在一起进行全自动部署。

为了让特拉维斯自动继续执行上述步骤,我们必须:1。创建一个集成了ipfs-deploy和ens-updater的部署脚本,Travis将在部署阶段继续执行。2.设置Travis继续执行部署脚本。

为Travis设置环境变量,以便ens-updater可以访问私钥。部署脚本由于ipfs-deploy通过stdout获取CID,而ens-updater可以设置为从stdin加载CID,所以我们可以通过管道将这两个命令连接在一个小的shell脚本中,如下图所示:#!/bin/bash PFS-deploy build-p $ 1-c-o | ens-updater setcontenthash my site。这个脚本期望使用pinner服务作为第一个参数的部署,使用web3连接字符串作为第二个参数。此外,请注意,通过注册一个类似的字符串“stdin”作为ens-updater的CID,它告诉从stdin加载CID。

将此脚本添加到您的项目中,使其成为存储库的一部分,并可供Travis使用。Travis现在可以编辑travis.yaml,以便在部署阶段继续执行脚本。这是一个真实项目中的(简化的)样本分配。强调了最重要的部分:OS : Linux语言: Node _ JS Node _ JS : 10 Jobs 3360 Include :-Name : ‘ IPFS ‘ Install 3360-NPMCI-NPM Install-GIPFS-Deply-NPM Install-g @ triple speider/ens-updater script : NPM run build deploy 3360 provider : script : bash scripts/The deploy在部署阶段,ipfs pinner服务“pinata”和来自infura的web3实例继续执行我们刚刚创建的部署脚本。

不要记住skip_cleanup选项——否则,Travis将在开始部署之前清理构建文件夹.最后缺少的部分是获取ENS名称控制器帐户的私钥。让我们扩展设置!1.转到Travis 2中的项目页面。

关闭设置页面3。转到“环境变量”部分,添加一个名为“私有密钥”的新环境变量,并将您的私有密钥粘贴到值字段中。

将BRANCH字段设置为您的主分支,因为部署将只从主分支操作。确保不要“在构建日志中显示值”——否则任何人都可以在构建日志中看到您的私钥。就我而言,我还为pinata IPFS服务和Infura web3服务添加了环境变量,并为GitHub页面的额外部署添加了Github令牌。这是原始设置的屏幕截图:找到这些更改后,新的分解在启动时发生。

【ag体育官方网】。

本文来源:ag体育官方网-www.gaobopharm.com