去中心化应用是可以使用户和供应商之间直接互动的服务(例如,连接某些市场上的买方和卖方,文件存储里的持有者和储存者)。以太坊去中心化应用典型地通过HTML/Javascript网络应用与用户互动,使用Javascript API与区块链通信。去中心化应用典型地在区块链上有自己的相关合约套件,用来编码商业逻辑,允许持久存储对共识要求严格的状态。记住由于以太坊网络上的运算天生冗余,执行的gas成本会比离链的私人执行成本更高。这就激励着去中心化应用开发者限制执行的代码数量和储存在区块链上的代码数量。
使用以太坊的去中心化应用被编译到以下列表,在开发的不同阶段列出(概念,工作原型,实时/部署的)。如果你在开发去中心化应用, 考虑向这些列表添加入口:
列表中提供的去中心化服务覆盖大范围的领域,包括金融,保险,预测市场,社交网络,运算和存储分配,赌博,市场,物联网,管理,合作,开发和游戏。
将来,去中心化应用可能会在去中心化应用浏览器里集成的dappstores中列出和分配。
去中心化应用开发需要理解Web3 Javascript API, the JSON RPC API和Solidity编程语言。
注意:有开发者工具帮助你开发、测试和部署去中心化应用,自动使用以下列出的资源。
示例
https://dappsforbeginners.wordpress.com/tutorials/your-first-dapp/ https://github.com/ethereum/wiki/wiki/Dapp-Developer-Resources
教程
Mix是官方以太坊IDE,它允许开发者在以太坊区块链创建和部署合约及去中心化应用。它包含一个Solidity源代码排错器。
下面是用于写以太坊去中心化应用的开发者框架和IDE。
以太坊节点的命令行控制台。
以太坊控制台通过IPC连接到在背景运行的以太坊节点(用eth和geth测试)并提供一个交互的javascript控制台,包括web3对象和管理员附件。
这里可以找到可用管理列表 以太坊节点控制指令。
要使用这个控制台,你需要启动一个本地以太坊节点和可用的ipc沟通插口(数据目录中的geth.ipc文件)。开启一个节点后,ipc插口默认位于你的以太坊本地主目录。你也可以设置—test选项来使用特定节点测试指令。
然后你可以在控制台输入。
这是—test模式节点指令的释义:关于节点配置文件的更多信息。
Swarm是分布式存储平台以及内容分发服务,以太坊web 3堆栈自带的基层服务。Swarm的首要目标是提供足够去中心化和冗余的以太坊公共记录储存,尤其是储存和分配去中心化应用代码和数据,以及区块链数据。从经济观点看,它允许参与者有效集中储存和带宽资源,用以为所有参与者提供之前提到的服务。
从终端用户的观点看,Swarm和WWW并没有很大不同,除了上载并不是针对一个特定的服务商。目标是点对点存储,并提供抗DDOS、零故障、容错、抗审查的解决方案以及自我维护,这归功于一个使用点对点记账体系并允许以付款交换资源的内置激励体系。Swarm被设计为与以太坊devp2p多协议网络层次,为了域名解决方案的以太坊区块链,服务支付和内容可用性保险结合。
在线和离线存储
促使安排交易稍后发生的市场。提供unix中crontab或javascript 中的setTimeout类似的角色。以太坊提案中的去中心化cron服务 – 作者Peter Szilagyi
促使离线运算可验证执行的市场。允许每个昂贵的运算在以太坊虚拟机内使用,不必实际支付在链上执行它们的高额gas成本。
随机数: https://www.reddit.com/r/ethereum/comments/49yld7/eli5_how_does_a_service_like_szabodice_grab_a/
以太坊虚拟机(EVM)是以太坊智能合约的执行环境。它不仅被沙箱化,而且实际上是完全隔离的,这意味着以太坊虚拟机内部运行的代码不可以访问网络,文件系统或其他进程。智能合约甚至对其他智能合约的访问权限都是有限的。
合约存在于区块链上,区块链是以太坊特定的二进制格式(以太坊虚拟机字节代码)。然而,合约典型地是用以太坊高级语言写成,用以太坊编译器编译成字节代码,最终用以太坊客户端上传到区块链。
文章中的列表对应的链接可以参考《Ethereum Homestead Documentation》第94页1.7.5 Dapps
原文:https://www.cnblogs.com/blockchain/p/9291113.html