以太坊凭借其以太坊虚拟机 (EVM) 和智能合约,在推动区块链技术更广泛采用方面发挥了重要作用。这是一个允许开发人员创建和启动分布式应用程序(DApps) 的平台,到目前为止,开发人员已经构建了超过 1,500 个 DApps!您是对构建 DApp 感兴趣的开发人员吗?这份高层次的 DApp 开发指南可以帮助您入门。
DApps 开发不是一个简单的即插即用项目,它需要认真的编程。本 DApp 开发指南不打算涵盖它的细节,而是提供步骤的高级概述。它还在文章的后面部分提供了一个“资源”部分,指示您可以在哪里了解有关特定步骤的更多信息。
DApp 开发:需要采取的步骤
以下是开发人员创建和启动以太坊 DApp 需要做什么的高级概述:
1. 学习以太坊:
DApp 需要遵循特定的概念框架,而理解它的唯一方法是学习以太坊。
例如,DApp 必须是开源的,并且必须在没有任何实体控制大多数加密代币的情况下自主运行。对 DApp 的更改必须遵循社区的共识。后端代码必须包含智能合约,并且必须在去中心化的区块链上运行。DApp 必须使用使用标准加密算法生成的加密令牌,并且数据必须在遵循加密标准的同时存储在区块链中。
学习基于去中心化共识的以太坊区块链平台是开发人员必须采取的第一个不可协商的步骤。
2. 获取你的区块链:
虽然开发人员可以选择许多客户端,但我们建议新的 DApp 开发人员使用“testrpc”。该工具现在是Truffle工具套件的一部分,它易于使用,并且易于使用命令行界面 (CLI) 开始。
该工具默认不挖块,但出于开发目的,可以使用 CLI 指定块间隔。
3. 与区块链通信:
与区块链通信的最简单和最常用的工具是“web3.js”。安装它很容易,并且有配置必要参数的具体说明,例如:
- 配置 acongig.js 文件;
- 配置 web3 API 函数,用于与区块链通信。
4. 学习 Solidity:
Solidity是以太坊编写智能合约的专有语言。它是一种专为此目的而设计的功能丰富的语言,这种高级编程语言的灵感来自 C++、Java、Python 和 JavaScript。DApp 可以有任何语言的前端代码,但后端代码必须包含智能合约,因此对于新的 DApp 开发人员来说,这种学习也是不可协商的。
5. 编码智能合约:
编码智能合约的开发人员必须遵循以下广泛的有效性准则:
- 将计算逻辑和存储要求保持在最低限度,因为执行智能合约需要“gas”,即计算能力的衡量标准。它不是免费的“gas 价格”,即必须支付一定数量的加密代币。这意味着需要将以太币(ETH),即以太坊的原生加密货币用于执行智能合约。简单的计算逻辑需要更少的gas。
- 代码必须避免复杂,因为代码越复杂,出错的可能性就越高。智能合约的结果是不可逆的,因此编写简单的无错误智能合约势在必行。
6. 部署智能合约:
为此推荐的工具套件是“ Truffle ”。它具有以下优点:
- 一个目录允许开发者维护她所有的智能合约;
- 该工具可以轻松融入测试框架,因为脚本可以在测试环境中部署合约、运行“松露测试”并运行常规测试。
- 使用此工具套件进行部署很容易,并且可以在 config.js 文件中轻松设置所需的参数。Testrpc 必须在单独的窗口中运行部署才能工作。
7. 调用智能合约:
对智能合约的调用必须是十六进制字符串,但是,有以太坊合约“应用程序二进制接口”(ABI)库可以帮助解决这个问题。
8. 设置以太坊账户:
为了执行智能合约,开发人员需要花费以太币,她需要为此创建以太坊账户。推荐使用“eth-lightwallet”,因为使用它可以轻松生成公钥和私钥对并进行管理。开发人员需要使用关键详细信息更新 config.js 文件。开发人员可以回到 truffle 测试并查看 Ether 在帐户之间移动。
重要提示:开发者不得与任何人共享她的私钥,或在任何在线论坛上公开。
9. 使用智能合约进行交易:
在购买一些以太币并将其存储在她的帐户中之后,开发人员需要进行 DApp 开发的最后一步,即使用以太币进行交易。有 3 个选项:
- 作为值转移到另一个地址;
- 调用将更新网络状态的合约函数,并花费以太币向矿工支付费用;
- 涉及更新网络状态并接受以太币作为付款的合约。开发商还需要向矿工支付费用。
10. DApp开发:有用的资源
有关 DApp 开发步骤的概述,开发人员可以阅读这篇全面的 Hackernoon 文章。以下是各个步骤的资源:
- 学习以太坊:以太坊开发教程、以太坊白皮书、以太坊黄皮书。
- Testrpc 的GitHub材料。
- web3.js 的GitHub材料。
- Solidity在线课程。
- Truffle 工具套件的GitHub材料。
- ABI 库的GitHub资料。
- eth-lightwallet 的GitHub材料。
最后的笔记
此外,“初学者 dapps ”是一个很好的网站,可供新开发人员获得指导。如果您还不确定,以下是您应该学习区块链开发的 5 个理由。