从全栈开发者迈向Web3弄潮儿

live41 怎么买eth 2022-05-12 08:15:03 Deploy 以太坊

  然当,的关键在于上述应用,格、或音乐版权等)都被掌控在用户的手中数字货币的所有权(如:DAO 会员资。任何地方在世界上,联网连接只要有互,易、销售和构建这些物品任何人都可以自由地交,司或政府的规则控制而完全脱离了某个公。eb3 理想主义对于这样的 W,不做评判我在此,者的角度和您探讨只是单纯从开发,备 Web3 的技术能力一个全栈开发者将如何具。

  图所示如下,Etherscan 站点通过 Ropsten ,是否能够成功完成我们可以验证交易:

  会导致未定义的响应上述两条命令虽然也,终会显示如下运行结果但是钱包的控制台最:

  个软件工程师可以为任何级别的软件技术栈做出贡献源于 2015 年的“全栈开发者”一词是指:一。如例,相关的功能性缺陷面对某个与服务层,关任务的同一开发者刚刚完成了客户端相,“接单”可以无缝,抓 bug去高效地。链接 --您可以通过,全栈开发的概念了解更多有关。

   UI/UX 设计现有的业务规则和,Web3 特性和功能上的要求将继续满足产品所有者对于 。

  序与传统数据存储的交互方式类似于 Web2 应用程,aMask 库也允许应用程序与数据进行交互Web3 的 Truffle 和 Met。

  fle-config。js 文件最后一项准备步骤是更新 truf。的顶部添加如下三行我们首先需要在文件:

  》虚构了一种被称为 GenCoin 的数字货币近年来大热的美剧《创业公司(StartUp),的金融交易场景中可用于各种创新式。我看来而在, 核心属性的区块链分布式设计产品它可以被理解为一种具有 Web3。3 还不甚了解的话如果您对 Web,eb 的三个主要时代让我们先回顾一下 W:

  着接,如下命令我通过,装到 React 应用中将 Web3 的依赖项安:

  an Chen)陈峻 (Juli, 社区编辑51CTO,T 项目实施经验具有十多年的 I,源与风险实施管控善于对内外部资,息安全知识与经验专注传播网络与信;题和译文等形式持续以博文、专,技术与新知分享前沿;、线下等方式经常以线上,类培训与授课开展信息安全。搜狐返回,看更查多

  见可,b3 的学习曲线并不陡峭从全栈开发者迈向 We,工具、框架和库的帮助而且我们可以寻求各种。及到的源代码感兴趣的话如果您对上述项目所涉,如下链接可以通过,Lab 上两个存储库访问到它在 Git:

  即将举办定期选举假设有一个居委会,系列的决议进行投票附近的居民将对一。么那,成为一个以太坊 Dapp我们就可以将该选举构建。在公开的区块链上由于数据被存储,的私有服务器上而不是单个公司,过与智能合约的交互因此任何人都可以通,可的方式以无需许,票结果检索投。此据,被篡改或伪造的情况投票结果就不存在,争议的发生进而避免了。

  的如下响应信息根据 CLI ,在本地主机的 8545 端口上运行我们可以看到 Ganache 已:

  中其,meowners-ballot 项目时给定的项目 IDINFURA_API_KEY 是在创建 jvc-ho。含在。gitignore 文件中注意:请确保。env 文件被包,访问该存储库的人以避免其他有权,此机密信息擅自使用。

  着接,一个。env 的新文件请在项目的根目录下创建,含如下两行并在其中包:

  zed applicationDapp(decentrali,来自网页或应用)与智能合约交互的方式去中心化应用)是我们通过 UI(通常。利用智能合约的开放性Dapp 会在后端,netary File Storage采用诸如 IPFS(InterPla,储)的方式星际文件存,的分散存储实现文件,出现停机且不会。法攻击负责存储的每个节点毕竟 DDoS 攻击无。然当,部署之前在考虑,对其安全性我们需要针,面测试开展全,的潜在缺陷与漏洞并处置好代码中。

  着接,le 的钱包 provider我用如下命令为基于 Truff,应的依赖项添加了对:

  t 应用一旦就绪核心的 Reac,cation binary interface我们就需要建立合约应用的二进制接口(appli,I)AB,态系统上的各种合约进行通信以便 Dapp 与以太坊生。

  的 Dapps在区块链上构建,各个信息消费者的请求都采用同一个事实源向,靠的数据提供可。

  b2 时代在 We,歌、苹果和亚马逊等少数技术提供商的手里Web 服务主要集中和被控制在诸如:谷。2 的替代方案(而作为 Web,无需准入的数据存储方式Web3 创建了一个。公司控制或拥有着数据其中不存在任何个人或,也得到了充分保证而且数据的真实性。类账本(public ledger)上这些数据会被存储在区块链网络中的公共分。此因,实体拥有数据不再是由一个,区块链的计算机)存储着数据而是由多个节点(即:运行着,有效达成了共识并就数据是否。

  所述综上,了智能合约一旦建立,的角度来看从客户端,的如下方面到 Web3 上我们将能够沿用 Web2 :

  布式的特性由于其分,返回给了消费者因此控制权被,少数人的手中而非停留在。

  先首,、Ganache、以及 Solidity 等 Web3 技术栈组件我们需要利用前文提到的:Infura、NPM、Truffle 框架,用协同的智能合约来创建一个能与应。程如下图所示其创建的流:

  e-config。js 文件项目文件夹中的 truffl,新如下代码行会被激活并更:

  JavaScript 客户端框架目前在 Web2 项目中常用的 ,继续使用可以被。

  在现,-truffle console我们可以在新的终端中通过命令 -,ffle 控制台来启动 Tru,如下提示能显示:

  ruffle、以及测试资金后准备好了 Infura、T,设置智能合约让我们开始。委会选举示例针对前面的居, JvcHomeownerBallot。sol 合约我们将使用位于本项目 contracts 文件夹中的:

  目录 src的新建子文件夹 abi 内该文件应当被放置在 React 应用。

  eact 开发之前在开始标准的 R,p。js 文件 (如下所示)让我们先来看看完整的 Ap:

  pp 获取一些测试资金现在我们需要为 Da,加到现有的、由ConsenSys(创建的MetaMask(钱包中并使用 Ropsten Ethereum Faucet(将资金添。然当,致的真实资金损失的风险为了降低意外情况所导,ask 中创建多个帐户您可以在 MetaM,可专用于开发和测试其中至少有一个帐户。任何人分享您的助记词请记住:永远不要与,方上传您的私钥也不要在任何地!

  究 Web3为了深入研,一个智能合约我依次创建了,p 与之进行交互以及一个 Dap。中其,

  太坊等协议的应用从比特币(到以,数据存储协议为基础Web3 以此类,全新的用例开启了各种。如例:

  段代码(我下面会以以太坊(为例)智能合约(是部署在区块链上的一。部署到区块链上该合约一旦被,ermissionless)就不可改变、也无需许可(p,可以检索到它但是任何人都。

  合约有了,部署合约的方法我们就需要建立。grations 文件夹下面让我们转移到 mi,loy_contracts。js 文件中将如下内容添加到该文件夹下的 2_dep:

  能合约中的信息(哪怕是别的 Dapp 去访问存储的数据)我们不再需要知道“谁”参与了交易、或查询存储在区块链智。是固定不变的由于结果总,关注应用程序的业务规则因此 Dapp 只需。举的简单示例那样正如上述居委会选,查询多少次无论选票被,个 Dapp即便是有另一,完全相同的其结果总是。

  的代码所示正如上面,非常简单该合同将,选择是或否即可参选居民只需。ts 文件夹结构如下图所示其对应的 contrac:

分享: