资讯专栏INFORMATION COLUMN

以太坊:Dapp及相关开发工具介绍

FleyX / 2620人阅读

摘要:邮件列表以太坊上的开发者邮件列表停止使用。开发的移动以太坊浏览器开发阶段由支持的浏览器内。是以太坊的开发环境,测试框架和资产管道。审查随机数以太坊虚拟机是以太坊智能合约的执行环境。

去中心化应用
去中心化应用是可以使用户和供应商之间直接互动的服务(例如,连接某些市场上的买方和卖方,文件存储里的持有者和储存者)。以太坊去中心化应用典型地通过HTML/Javascript网络应用与用户互动,使用Javascript API与区块链通信。去中心化应用典型地在区块链上有自己的相关合约套件,用来编码商业逻辑,允许持久存储对共识要求严格的状态。记住由于以太坊网络上的运算天生冗余,执行的gas成本会比离链的私人执行成本更高。这就激励着去中心化应用开发者限制执行的代码数量和储存在区块链上的代码数量。

去中心化应用目录
使用以太坊的去中心化应用被编译到以下列表,在开发的不同阶段列出(概念,工作原型,实时/部署的)。如果你在开发去中心化应用, 考虑向这些列表添加入口:

Ðapps 的Ethercasts状态

Dappslist Dappcentral –

去中心化应用的分类页面,带说明,代码验证和网络数据。

Dapps邮件列表 – 以太坊上的开发者邮件列表(停止使用)。

列表中提供的去中心化服务覆盖大范围的领域,包括金融,保险,预测市场,社交网络,运算和存储分配,赌博,市场,物联网,管理,合作,开发和游戏。

我们最终会预期什么应用? https://www.reddit.com/r/ethe...

将来,去中心化应用可能会在去中心化应用浏览器里集成的dappstores中列出和分配。

去中心化应用浏览器

Mist – 由基金会开发的官方GUI去中心化应用浏览器,开发阶段。 Mist as Wallet dapp在试用中。

Syng – Jarrad Hope开发的移动以太坊浏览器(开发阶段) – 由DEVgrants支持

MetaMask – Aaron Kumavis Davis的浏览器内GUI。Github上的Epicenter Bitcoin访谈 –由DEVgrants支持

AlethZero – C++ eth客户端GUI(停止使用)。

Supernova – (停止使用)。

开发者工具
去中心化应用开发需要理解Web3 Javascript API, the JSON RPC API和Solidity编程语言。
注意:有开发者工具帮助你开发、测试和部署去中心化应用,自动使用以下列出的资源。

Web3 JavaScript API – 想要和以太坊节点交互的时候,主要用到的JavaScript SDK。

JSON RPC API – 与节点交互的低级JSON RPC 2.0界面。这个API被Web3 JavaScript API使用。

Solidity Docs – Solidity是以太坊开发的智能合约语言,编译到以太坊虚拟机操作码。

测试网络 – 测试网络帮助开发者开发和测试以太坊代码及网络互动,不需花费主网络上自己的以太币。测试网络选项在下面列出。

去中心化应用开发资源。这会帮助你开发,排错和部署以太坊应用。

去中心化应用开发资源

智能合约 ELI5
•https://blog.slock.it/a-prime...

向101小白介绍编程智能合约

标准化合约API列表

示例

pricefeed使用实例 – web3脚本打印所有的账户余额

以太坊合约实例

https://dappsforbeginners.wor... https://github.com/ethereum/wiki/wiki/Dapp-Developer-Resources

教程

ethereum.org上的去中心化应用教程

去中心化应用初学者教程系列

Eris的Solidity教程系列

高级Solidity教程

http://ethereumj.io/blog/2015...

https://github.com/ConsenSys/...

Mix-IDE
Mix是官方以太坊IDE,它允许开发者在以太坊区块链创建和部署合约及去中心化应用。它包含一个Solidity源代码排错器。Mix

IDEs/Frameworks
下面是用于写以太坊去中心化应用的开发者框架和IDE。

Truffle – Truffle是以太坊的开发环境,测试框架和资产管道。 Dapple –

Dapple是Solidity开发者工具以帮助建立和管理以太坊类似的区块链上复杂的合约体系。 Populus –

Populus是用Python语言写的智能合约开发框架。 Eris-PM – Eris Package

Manager部署并测试私有和公共链上的智能合约体系。 Embark – Embark是用JavaScript写的去中心化应用开发框架。

EtherScripter (已淘汰,停用) 韧性原始交易广播

以太坊控制台
以太坊节点的命令行控制台。

以太坊控制台通过IPC连接到在背景运行的以太坊节点(用eth和geth测试)并提供一个交互的javascript控制台,包括web3对象和管理员附件。

这里可以找到可用管理列表 以太坊节点控制指令

要使用这个控制台,你需要启动一个本地以太坊节点和可用的ipc沟通插口(数据目录中的geth.ipc文件)。开启一个节点后,ipc插口默认位于你的以太坊本地主目录。你也可以设置—test选项来使用特定节点测试指令。

然后你可以在控制台输入

这是—test模式节点指令的释义:

关于节点配置文件的更多信息。

底层服务

Whisper
whisper是一种信息检索协议,它允许节点间直接以一种安全的形式互发信息,并对第三方组织窥探者隐藏发送者和接收者的信息。
这是不依赖于一个中心服务器的通讯管理。

Swarm
Swarm是分布式存储平台以及内容分发服务,以太坊web 3堆栈自带的基层服务。Swarm的首要目标是提供足够去中心化和冗余的以太坊公共记录储存,尤其是储存和分配去中心化应用代码和数据,以及区块链数据。从经济观点看,它允许参与者有效集中储存和带宽资源,用以为所有参与者提供之前提到的服务。

从终端用户的观点看,Swarm和WWW并没有很大不同,除了上载并不是针对一个特定的服务商。目标是点对点存储,并提供抗DDOS、零故障、容错、抗审查的解决方案以及自我维护,这归功于一个使用点对点记账体系并允许以付款交换资源的内置激励体系。Swarm被设计为与以太坊devp2p多协议网络层次,为了域名解决方案的以太坊区块链,服务支付和内容可用性保险结合。

swarm 上的ÐΞVcon演讲
Viktor Trón, Daniel A. Nagy:Swarm – YouTube上的以太坊 ÐΞVcon-1演讲
Daniel A. Nagy:保持公共记录安全可用 – YouTube上的以太坊ÐΞVcon-0演讲
Code and status

资源
github上的发布
开发路径图
twitter上的ethersphere
swarm gitter room
swarm subreddit

在线和离线存储
https://www.reddit.com/r/ethe...
https://www.reddit.com/r/ethe...
什么是swarm,用途是什么? – stackexchange问答

以太坊定时器
作者: Piper Merriam
网站: alarm_main_website。
文档: alarm_documentation。
促使安排交易稍后发生的市场。提供unix中crontab或javascript 中的setTimeout类似的角色。 •以太坊提案中的去中心化cron服务 – 作者Peter Szilagyi

Ethereum Computation Market
作者: Piper Merriam
网站: computation_market_main_website。
文档: computation_market_main_website。
促使离线运算可验证执行的市场。允许每个昂贵的运算在以太坊虚拟机内使用,不必实际支付在链上执行它们的高额gas成本。
BTCRelay
BTCrelay

更多信息 (关于ETH/BTC双向peg,不需修正比特币代码)。
BTCrelay 审查
RANDAO
随机数: https://www.reddit.com/r/ethe...

The EVM
以太坊虚拟机(EVM)是以太坊智能合约的执行环境。它不仅被沙箱化,而且实际上是完全隔离的,这意味着以太坊虚拟机内部运行的代码不可以访问网络,文件系统或其他进程。智能合约甚至对其他智能合约的访问权限都是有限的。

合约存在于区块链上,区块链是以太坊特定的二进制格式(以太坊虚拟机字节代码)。然而,合约典型地是用以太坊高级语言写成,用以太坊编译器编译成字节代码,最终用以太坊客户端上传到区块链。

参考资料:
文章中的列表对应的链接可以参考《Ethereum Homestead Documentation》第94页1.7.5 Dapps

汪晓明
HPB芯链创始人,巴比特专栏作家。十余年金融大数据、区块链技术开发经验,曾参与创建银联大数据。主创区块链教学视频节目《明说》30多期,编写了《以太坊官网文档中文版》,并作为主要作者编写了《区块链开发指南》,在中国区块链社区以ID“蓝莲花”知名。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24220.html

相关文章

  • 在区块链上编程:DApp 开发简介

    摘要:目前通常指代基于以太坊或者上的智能合约开发的相关应用。引入以太坊通过的交互流程大致如下总结随着区块链近些年的大红大紫,被推上了风口浪尖,本文从技术的角度大致介绍了一下所涉及的技术要点。 当你开始探索区块链开发,需要了解到这些。 showImg(https://segmentfault.com/img/remote/1460000016608233?w=1370&h=389); 一、DA...

    huangjinnan 评论0 收藏0
  • 理解以太DApp开发工具

    摘要:一理解以太坊工具以太坊有很多工具,随着时间的推移有些会过时,但早期的网络文章会有介绍,从而与目前的工具造成时差上的迷惑,有些工具是随着工程化的需要逐渐流行起来的。可视化的以太坊钱包,可以管理账户发布合约。 一、理解以太坊工具 以太坊有很多工具,随着时间的推移有些会过时,但早期的网络文章会有介绍,从而与目前的工具造成时差上的迷惑,有些工具是随着工程化的需要逐渐流行起来的。有必要梳理以下:...

    tinna 评论0 收藏0
  • java使用web3j和spring boot构建以太区块链dapp

    摘要:使用和以太坊客户端的容器镜像,可以快速启动解决方案,实现区块链技术的本地开发。以太坊,主要是针对工程师使用进行区块链以太坊开发的详解。以太坊,主要讲解如何使用开发基于的以太坊应用,包括账户管理状态与交易智能合约开发与交互过滤器和事件等。 区块链最近IT世界的流行语之一。这项有关数字加密货币的技术,并与比特币一起构成了这个热门的流行趋势。它是去中心化的,不可变的分块数据结构,这是可以安全...

    hidogs 评论0 收藏0

发表评论

0条评论

阅读需要支付1元查看
<