什么是以太坊dApp以及如何在以太坊和NEO上构建dApp
dApp入门
Blockchain技术自成立以来,已经彻底改变了数字世界,许多新概念脱颖而出。其中一个概念是以太坊去中心化应用程序或Dapps。Blockchain有多个新兴的实际应用程序–Dapps提供了一种应用技术并充分发挥其潜力的方法。让我们更多地了解它。
什么是dApps?
区块链是一种分布式分类帐技术,可以实现去中心化存储和记录访问。连接到区块链的节点可以与物理属性相关联,因此,以太坊通过提供在区块链上的节点之间建立简单合约的方法,彻底改变了区块链技术。这可以是在履行合约时执行的一段代码。
dApp或去中心化应用程序为用户提供了一种连接区块链并访问或执行操作的方法。例如,以太坊dApps是您的浏览器/ Toshi移动客户端与Blockchain上的智能合约之间的链接。它是一个开源和去中心化的Web应用程序,通过API向后端服务器发出访问请求。发送和接收的数据存储在应用程序本身中,业务逻辑通过区块链上的智能合约进行。
Dapps在2017年具有影响力,未来几年的目标领域是改善数据所有权,物联网整合和增强数字安全。对内容所有者的更大控制权将取决于创建者,一般的互联网用户将能够从他们的想法和产品中赚钱。类似地,这也解决了由于数据点数量增加而产生的物联网数据传输问题。区块链应该是不可变的并且具有增强的安全特性,这在Dapps技术的演变中只会加强。
你如何使用Dapps?
现在我们知道Dapps是什么了,让我们了解如何使用它们。Dapps就像传统的Web应用程序,可以在您的浏览器上运行,同时使用ethereum Smart Contracts等技术与Blockchain进行交互。因此,您需要启用浏览器与以太坊区块链层进行通信。如今,有些钱包作为浏览器扩展程序出现,为您完成此操作。其中一个例子是MetaMask,它不仅可以作为存储货币的钱包,还可以通过公开javascript SDK直接进行交易。
使用dApp的方法之一是通过Toshi浏览器,帖子的后半部分描述了有关Toshi平台的更多信息。
你是如何建立Dapps的?
如果您正在考虑构建Dapps,您可能想要开始使用Truffle Suite。它提供了一个轻松的平台来创建,部署和迁移客户端应用程序。您将需要一个将Dapps集成到以太坊智能合约的客户端应用程序。Truffle Suite提供各种功能,可简化智能合约和客户端应用程序的部署工作。它包括“Truffle盒”等功能,有助于从头开始构建应用程序和自动化合约测试。它还支持本地版本的以太坊区块链技术,可以在将其迁移到实际区块链之前在本地测试您的分布式应用程序。
您可以从官方网站下载Truffle Suite – (http://truffleframework.com/docs/getting_started/installation)
NodeJS 5.0 +,Windows,Linux和Mac OS X都是推荐的操作系统。您还需要运行支持JSON RPC API的以太坊客户端。对于每个操作系统,其官方网站上都有说明。
如果您只是计划编写连接到以太坊区块链的程序,那么以太坊提供了一个非常好的开源库,名为EthereumJ。EthereumJ是一个java客户端库,它是以太坊协议的纯Java实现。
什么是智能合约?
假设我们有两方之间的协议,以完成特定的工作,说的实物商品发货从供应商到零售商,在指定的时间内。现在,该协议通常可在法院强制执行。在这里,第三方即法院作为合约的执行者。这个第三方存在的主要原因是参与交易所的人之间缺乏信任。
通过区块链技术与以太坊智能合约的使用,可以消除这个第三方。在这里,智能合约充当协议的执行者,该协议由其底层区块链技术提供支持。任何经双方批准的协议都会永久存储在区块链中,并且可以立即验证。由于这是公开的,因此合法性可以很容易地得到验证,并且它们也是可追踪的和不可逆转的。
以太坊智能合约由以太坊虚拟机提供支持。任何计算任务都可以通过向网络矿工支付费用轻松地在这台机器上运行。在这种情况下,该成本是以太。以太的实际价值取决于时间的瞬间,但目前,任何交易的实际成本相对较低,整个过程肯定会得到改善。
如何调试智能合约?
面临的挑战之一是在构建Dapps时对智能合约进行故障排除。在测试软件程序时,会记录消息。同样,您可以在运行应用程序时将消息记录到控制台以查看出现了什么问题。对于分布式智能合约,您可以通过创建和记录新事件然后从事务中触发这些事件来解决问题。使用Truffle,您将直接收到响应,或者您可以使用web3客户端将这些事件直接传输到浏览器。通常,事务处理后不会返回任何数据,因此您需要创建此类事件并使用适当的信息触发它们。Geth是一个以太坊节点,它处理来自Web套接字服务器的所有特定事件。
让我们采用一个小实用的dApp,以便您更清楚地实现整个概念。
下载Node.js并将其安装在您的PC上。接下来,安装MetaMask Chrome Extension。
现在,使用命令安装Truffle:命令提示符下的npm install -g truffle
现在,使用以下命令为新项目创建新目录:mkdir smartapp
使用以下命令进入目录:cd smartapp
使用以下方法取消装配react-auth应用程序:truffle unbox react-auth。
现在在本地开发控制台即Ethereum节点上测试您的应用程序,其中可以使用以下命令部署和执行合约:truffle develop。
接下来,使用命令编译和迁移合约以在测试节点上部署它们:
Truffle编译;
Truffle迁移;
要么
truffle migrate -reset -compile-all
现在运行本地服务器来测试前端资源,执行此命令:npm run start,这将打开浏览器并导航到localhost:3000。
您需要将MetaMask配置为本地运行的测试节点。现在您的应用程序已部署并正在运行
通过注册并登录应用程序来测试应用程序的UI。
你去了,你的第一个Dapp正在运行
Dapps的发展仍处于初期阶段,需要进一步推进控制。随着区块链支持的技术(如比特币)的出现,为Dapps等针对特定业务解决方案的新概念开辟了新的途径。例如,4G Capital,一个通过使用智能合约提供财务帮助来为企业,个人和市场提供支持的应用程序。
“Toshi浏览器”
Toshi /来源:Google Play商店
Coinbase正在开发Toshi浏览器是一种开放式协议,由私有和安全的消息传递应用程序,以太坊钱包和以太坊应用程序的浏览器组成。它类似于在您的手机上运行的网络浏览器,但是一个去中心化的平台,您可以从中管理自己的资金。Toshi浏览器使用信号协议加密货币消息,使用以太坊网络进行全球支付。此外,他们的应用程序基于SOFA协议构建,适合与财务应用程序集成。
它也被认为是值得信赖的产品,因为它允许用户根据一段时间内的交易数量对应用和用户进行评级,因此您可以根据他们的声誉确定它们。他们的概念受到微信的启发,微信推动了中国的所有在线金融支付。
由于他们想要影响数字金融系统的世界,他们的长期目标包括为所有可以访问移动设备的人提供金融服务,让他们有能力建立和使用以太坊应用程序,并改变数字货币的形象对支付网络的投资等等。
NEO dApps
NEO成立于2014年是另一个平台,可以在区块链和以太坊上实现智能合约。NEO的核心开发人员位于中国之外,正在积极构建一个功能齐全的平台,使应用程序开发人员可以轻松地在NEO平台上构建dApp。已经在NEO之上构建了一些应用程序,数百个用户使用它们。NEO 根据他们的网站表示,他们相信通过结合数字资产,数字身份和智能合约来建立智能经济。
尽管以太坊在生态系统中拥有更多核心开发人员和应用程序开发人员,但NEO社区正在以更快的速度增长,并且观察哪个平台将在dApp中产生影响将会很有趣。