http://www.7klian.com

如何利用IPFS和以太坊ENS自动宣布去中心化网站

就是这样!每当您将更新推送到主分支时,所做的变动都将陈设到IPFS,而且ENS名称的contenthash记录也将更新。

node_js: 10
对付本教程,我们将私钥生存在.env文件中。 打开您选择的文本编辑器,并在事情目次中建设文件.env:
> npm install -g ipfs-deploy
陈设漫衍式的站点需要两个步调:
      install:
这个东西真的很简朴。 您只需要提供要陈设的构建文件夹,然后选择要利用的IPFS牢靠处事即可。
对付此步调,我们将利用cli东西ens-updater。通过npm全局安装:
        – npm install -g @triplespeeder/ens-updater
        script: bash scripts/deploy_ipfs.sh pinata https://mainnet.infura.io/v3/$INFURA_ID
要完成的任务
  include:
2. 将ENS名称的IPFS记录配置为指向新的CID。
        provider: script
由于ipfs-deploy通过stdout提供了CID,而且可以将ens-updater配置为从stdin中读取CID,因此我们可以将这两个呼吁用pipe毗连在一个小型shell剧本中,如下所示:
Travis设置
ens-updater setContenthash mysite.eth ipfs-ns stdin -v –web3 $2
示例:在空运行模式下,将ENS名称mysite.eth的内容哈希记录配置为ipfs CID Qmd2yEHMTswLppDkWNjEMH4WwAgeuFXYeMHSn4VcJMcvKy的完整呼吁:
        – npm install -g ipfs-deploy
      deploy:
查抄功效输出以查察是否陈诉了任何错误。不然,您最好不消— dry-run继承!
您可以直接或通过助记符字符串(和可选的帐户索引)间接提供私钥。对付这两个选项,您都需要将信息放入.env文件中或配置情况变量。
2. 配置Travis以执行陈设剧本。
> ipfs-deploy build -p infura
    – name: “IPFS”
3. 转到“Environment Variables”部门
步调2 —配置您的ENS名称的contenthash记录
假设应用的出产版本位于文件夹版本中,则可以运行以下呼吁以通过公用的infura ipfs节点举办陈设:
#!/bin/bash
Qmd2yEHMTswLppDkWNjEMH4WwAgeuFXYeMHSn4VcJMcvKy –web3 
这就是第2步的全部操纵-此刻可以通过您的ENS名称会见您的网站!继承阅读以配置Travis举办自动陈设。
1. 将内容
宣布到IPFS,获取新的CID。
1. 会见
以太坊节点以与智能合约举办交互。
2. 节制ENS名称的帐户的私钥。
language: node_js
        – npm ci
在本指南中,我假设您已经相识
如何利用IPFS和ENS托管网站的基本常识。重点在于陈设自动化和调解CI事情流程。 假如您不熟悉ENS和IPFS,,大概会呈现一些问号:)
最后缺少的部门是提供ENS名称节制器帐户的私钥。让我们举办配置!

就我而言,我还为pinata IPFS处事和Infura web3处事添加了情况变量,并为可选陈设到Github页面添加了GitHub令牌。 这是完整配置的屏幕截图:

这就是第一步的全部内容-您的构建现已
宣布!
将此剧本添加到您的项目中,使其成为存储库的一部门并可供Travis利用。
安装阶段包括用于安装东西ipfs-deploy和ens-updater的其他呼吁。
2. 打开配置页面

        skip_cleanup: true
jobs:
> npm install -g @triplespeeder/ens-updater
添加一个名称为“ PRIVATE_KEY”的新情况变量,并将您的私钥粘贴到VALUE字段中。将BRANCH字段配置为您的master分支,因为陈设将仅从master分支运行。确保不要选中“DISPLAY VALUE IN BUILD LOG”-不然任何人都可以在构建日志中看到您的私钥。

Ipfs陈设支持很多差异的IPFSpinning处事,个中一些需要身份验证。
ens-updater支持很多差异的呼吁来打点您的ENS名称。对付本教程,我们只但愿配置名称的contenthash条目,使其指向您在步调1中得到的CID。请查抄ens-updater –help的输出,以获取受支持呼吁的概述以及github页面的内容。
要利用Travis自动执行上述步调,我们需要:
由于我们需要与ENS智能合约举办交互以更新contenthash条目,因此我们需要做两件事:
1. 建设一个团结了ipfs-deploy和ens-updater的陈设剧本,由Travis在陈设阶段执行。
第1步-宣布到IPFS
此刻编辑travis.yaml以在陈设阶段执行剧本。这是一个真实项目中的(精简后的)样本设置,个中强调了重要的部门:
为确保所有配置均正确,请利用–dry-run选项挪用ens-updater。 配置此选项后,将不会执行任何实际生意业务,但将陈诉潜在的设置或配置问题。
http://localhost:8545 –verbose –dry-run
PRIVATE_KEY=<private key here, without leading 0x>
将它们放在一起举办全自动陈设
os: linux
> ens-updater setContenthash mysite.eth ipfs-ns 
对付此任务,我们将利用CLI东西ipfs-deploy。 通过npm全局安装:
此刻将欣赏器指向http://mysite.eth。假设您的系统配置正确,可以与.eth域一起利用,那么您应该会看到您的网站正在运行!
      script: npm run build
陈设剧本
3. 为Travis配置情况变量,以便ens-updater可以会见私钥。
该剧本但愿将pinner处事用于陈设作为第一个参数,并将web3毗连字符串用作第二个参数。 别的,请留意,通过将非凡字符串“ stdin”指定为ens-updater的CID,它知道从stdin中读取CID。

在这些变动就位后,触发新的生成。假如一切顺利,您的构建日志将像这样竣事:

对付这两个步调,都可以利用呼吁行东西。 首先我们将具体研究每个步调,然后建设一个Travis设置,该设置将完全自动化陈设。
留意ipfs-deploy提供的CID字符串Qm…。 这是构建的独一标识符,需要将其添加到ENS名称中。
在我们开始之前…
Node.js版本:在编写本文时,不能将ens-updater安装在12.x或更高版本的节点上,因为某些依赖项需要剧本模块,该剧本模块无法构建。 在https://github.com/TripleSpeeder/ens-updater/issues/44中跟踪了此问题。 在问题办理之前,请利用节点版本10或更低版本。

假如您已经注册了一个不错的ENS名称,并但愿通过IPFS和名称处事使您的站点/dapp可用。要使其成为陈设剧本的无缝部门,需要执行几个步调。
ipfs-deploy build -p $1 -C -O | 
1. 转到Travis中的项目页面
陈设阶段利用ipfs pinner处事“ pinata”和来自infura的web3实例执行我们方才建设的陈设剧本。 不要健忘skip_cleanup选项-不然,Travis将在开始陈设之前排除build文件夹…

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读