第一步
如果您有作为Web开发人员的经验,那么您已经知道的很多知识都适用于区块链开发。本指南的目的是向您介绍不同之处,以便您可以开始探索和构建.
这里不足为奇:最大的区别是区块链的使用,在本指南中,我们将主要参考以太坊区块链,因为它拥有最大的开发者社区。您为什么要将区块链开发整合到您的堆栈中?区块链让您做很多有趣的事情,这确实挑战了我们关于个人如何在互联网上以及如何与互联网交互的假设.
您可以使用区块链做什么(之前从未有过)
用户拥有的可交易数字商品
借助区块链,您可以(轻松)创建令牌化资产,用户可以保留并在您的网站外进行交易。例如,《 Gods Unchained》是一款具有魔术收藏风格的可收藏纸牌游戏,用户可以实际拥有他们的卡并在平台外进行交易。对此感兴趣的是,各个卡都具有身份,可以在其他地方使用或在第三方市场上交易。例如,您可以将冠军赛中使用的卡作为收藏品出售,就像美国职业棒球大联盟冠军本垒打球可能.
付款和价值转移
由于加密货币的基本集成,简化了接受付款和便利价值交易的过程:银行转账,信用卡,贝宝都需要开发人员进行大量整合工作。这些好处对于无法获得银行和信贷服务的社区尤其如此:我们进行了一个案例研究,即以太坊的使用,以促进约旦难民营中的价值转移和援助支付.
用户身份和数据隐私
用户通过区块链网络建立身份的方式具有独特之处。使用Metamask之类的软件,用户可以单次登录整个Internet。您可能不需要处理密码或在网站上登录,这意味着丢失的密码请求更少。通过使用户可以控制谁可以访问他们的信息,并为他们提供签署交易的机会,可以增强数据隐私。当用户离开站点时,站点操作员不再可以直接访问其数据.
互联网的全球持续状态
当今的互联网由许多技术构成,但是对于真正的事物没有中央权威。诸如Facebook之类的互联网巨头可能会通过庞大的网络和数据库来掌握各自王国的密钥,而这些网络和数据库的功能有点像持久性国家,但是它们是私人拥有的,其范围通常限于自己的组织。区块链作为一个随时间包含不变数据的网络,具有高度安全性和抗篡改性,并且没有单一所有者,可以作为社区参与者的真相来源.
数字稀缺
可交易的代币和加密货币依靠区块链为稀缺的数字资产提供基础设施。在过去的数字资产可以无限复制或受复杂的DRM方案保护的情况下,像区块链这样的持久状态单一真相源可以创建可以拥有但不能复制的独特数字资产,这意味着这些东西可以拥有真正的价值.
Web2与Web3区块链堆栈
有不同的区块链,每个区块链都有自己的网络,自己的规则和自己的参与者社区。给定的区块链平台(例如以太坊)可以具有各种不同的网络,您可以使用各自的数据将它们连接到每个网络。您可以建立自己的网络,我们将在本指南的后面部分进行操作。.
每个网络由单独的节点组成,这些节点是区块链节点软件的运行实例。区块链不是标准的服务器-客户端模型,而是使用分散的点对点协议相互通信并就网络状态达成共识.
在典型的Web开发堆栈中,您可以使用html,CSS,javascript和诸如react的框架来构建前端。该前端与包含文件存储,执行环境和数据库的后端进行通信。存储,执行和数据库组件可以驻留在单个服务器上,也可以是云系统或内容交付网络的一部分.
创建区块链应用程序(通常称为分布式应用程序或dapp)时的唯一区别是,应用程序功能的某些部分是由区块链或其他分布式机制提供的。连接到以太坊等区块链通常是通过将JavaScript库(例如web3.js或ethers.js)与节点软件或区块链API结合在一起来完成的。 Web3库支持多种语言.
文件存储,数据库功能和执行都可以在区块链上进行,尽管当前区块链尚未针对大量数据或复杂执行进行优化.
例如,您可以构建一个使用典型网络堆栈的应用程序,但创建一个驻留在区块链上的智能合约,以执行分布式计算并与令牌或加密货币进行交互。稍后我们将详细讨论智能合约.
您还可能会构建一个本来就很典型的应用程序,但用户验证是通过Metamask之类的软件完成的,Metamask是数字钱包和身份管理器等.
发送您的第一笔交易
让我们以用户身份在区块链上发送您的第一笔交易。为此,您需要一个钱包.
安装MetaMask
MetaMask 是ConsenSys产品,包括一个钱包,并提供了一套强大的工具来与以太坊区块链进行交互。开发人员感兴趣的是,它将全局API注入到任何可访问的网站中,可通过window.ethereum上的javascript访问这些网站。有关所有详细信息,请在其站点上查看MetaMask的完整开发人员文档。首先,请安装MetaMask chrome浏览器扩展程序或使用Apple App Store或Google Play商店中提供的MetaMask Mobile应用程序.
安装完成后,请完成帐户创建过程。您可能会注意到几件事:一是您不必输入任何电子邮件地址或任何其他个人信息。第二件事是在编写或存储“种子短语”方面做了大量工作。这很重要,因为这是访问或恢复帐户的唯一方法。稍后详细介绍.
Metamask运行之后,您将看到您的帐户余额(0 ETH),并且在右上角,您将看到当前连接到的网络。展开网络选择菜单以显示网络列表。选择Ropsten测试网络.
主网和测试网
这些网络中的每一个都由运行节点软件的计算机集组成。大多数节点位于Mainnet上,Mainnet是以太坊的主要价值持有网络。撰写本文时,主要的以太坊网络构成了8000多个节点。您可以在Ethernodes或Etherscan上浏览网络节点.
测试网络包含的节点要少得多(Ropsten网络有3个节点),而在这些节点上没有任何价值。这些网络主要供开发人员在主网上启动之前测试其dapp和智能合约。您还会注意到,MetaMask提供了连接到本地主机或自定义RPC的选项。开发以太坊应用程序时,您可以使用元掩码连接到在您自己的系统或任何其他网络上运行的节点软件并与之交互.
获取测试以太
在MetaMask中,通过单击您的帐户名将您的公共地址复制到剪贴板:
您的公开地址可以识别您的帐户并可以共享:他人会使用它来向您发送令牌。就像银行帐号或电子邮件地址一样,您拥有并控制与该地址相关联的内容。您可以通过使用私钥(可以从种子短语生成)签名交易来证明自己拥有此地址,这就是为什么必须保持私密性的原因。从区块链的角度来看,任何知道给定私钥的人都是分配给私钥相关联的公共地址的任何资产的所有者。您的公开地址将如下所示:
0xDa4A488d8c58D57F4046CAbAc73DA0DB778DC930
您可以使用水龙头将测试以太币发送到您的帐户。尝试使用 罗普森水龙头:将您的公共地址粘贴到帐户字段中,然后单击“向我发送测试以太币”。很快,您会看到您的帐户已填充1 ETH.
这里发生了什么?您已将您的公共地址发送到以太坊水龙头。水龙头执行了一笔交易,将其自己的智能合约拥有的1 ETH发送到您提供的地址。您可以提供任何地址,交易就会执行。网络上的节点提取了交易并将其包含在一个开采的区块中,该区块记录在区块链中并在整个网络中传播。然后,MetaMask从区块链上的一个节点读取并报告交易和您的当前余额。水龙头和MetaMask之间没有直接通信.
您还可以通过另一种方式来测试Ether。转到MetaMask水龙头;请注意,如果您未安装MetaMask(或其他Web3界面),则不会加载该网站。此过程演示了不同的用户流.
在这里,您可以看到用户属性未定义。借助此实施,您无需从MetaMask复制并粘贴您的地址。当您单击“ request 1 ether”按钮时,MetaMask将询问您是否要连接到该站点。接受此连接将与该站点共享您的公共地址,在页面上显示您的余额,然后交易将发生:
以这种方式进行连接类似于登录站点。但是,不需要注册过程。通过MetaMask登录可以进行单点登录,因为站点可以根据连接的帐户自定义自己。在这种情况下,下面的JavaScript用于通过MetaMask注入的以太坊对象连接到用户的帐户:
ethereum.request({方法:’eth_requestAccounts’});
交易完成后,您在Ropsten网络上的钱包中应该有2 ETH.
发送测试以太
现在,回到“ MetaMask醚水龙头用户”框中,单击橙色的1醚按钮将1 ETH捐赠回水龙头。将会出现一个新的通知:
MetaMask要求您批准此交易;当您确认时,MetaMask将使用您的私钥对交易进行签名,这是区块链节点进行验证所必需的。请注意,还有其他一些交易选项:单击左上方的“编辑”按钮以查看更多详细信息。煤气费补偿节点和矿工与执行交易相关的成本。以太坊上的每笔交易都有与保持网络运行相关的计算相关的费用。在这种情况下,0.000021 ETH.
因为任何交易都必须经过竞争性的过程才能被节点处理并包含在区块链中,然后才被包含在区块链中,所以您可以通过增加给予矿工的汽油奖励来确保您的交易更快地进行,以确保矿工将交易包括在区块链中。下一块.
单击下一步并确认。您的交易将被列为待处理,几分钟后,您的交易将成为区块链的一部分,您将在MetaMask中看到更新后的帐户余额.
下一步
在此介绍性步骤中,我们主要从使用MetaMask的用户角度向您介绍了与区块链进行交易和交互的一些基础知识。在本指南的第2步中,您将创建自己的区块链网络,在本地与之交互,并在Remix上探索合同。在第3步中,您将更加熟悉本地开发,使用Infura,将所有内容与React绑定在一起,并连接到以太坊测试网.
- 开发人员入职:步骤2
开发人员入职:步骤2
开发人员入职:步骤3
开发人员入职:步骤3
10分钟以太坊定向