dapp是一种服务,可以使最终用户和提供商之间进行直接交互(例如,将某些市场中的买卖双方,文件存储中的所有者和存储商连接起来)。以太坊dapps通常通过使用JavaScript API的HTML / Javascript Web应用程序与区块链进行通信来接口用户。Dapps通常会在区块链上拥有自己的一套关联合约,用于编码业务逻辑并允许持续存储其共识临界状态。请记住,由于以太坊网络计算的冗余特性,执行的天然气成本总是高于私有执行离线。这激励了dapp开发人员限制他们执行的代码量以及他们存储在区块链上的数据量。
dapp目录
使用以太坊的Dapps被编译到以下列表中。他们被列入不同的发展阶段(概念,工作原型,现场/部署)。如果您正在开发dapp,请考虑为这些列表添加一个条目:
* Ethercasts State of the Ðapps
所提供的去中心化服务涵盖了金融,保险,预测市场,社交网络,分布式计算和存储,赌博,市场,物联网,管理,协作,开发和游戏等广泛领域。
将来,dapps很可能会在集成在dapp浏览器中的dappstore中列出和分发。
Dapp browsers
Mist - official GUI dapp browser developed by the foundation, alpha stage. Mist as Wallet dapp is in beta.
Status - Mobile Ethereum browser (alpha)
MetaMask - Aaron Kumavis Davis’s in-browser GUI. Epicenter Bitcoin interview on github - supported by DEVgrants
AlethZero - C++ eth client GUI, (discontinued).
Supernova - (discontinued).
开发工具
Dapp开发需要了解Web3 Javascript API,JSON RPC API和Solidity编程语言。有一些开发工具可以帮助您以自动利用下列资源的方式开发,测试和部署dapp。
Web3 JavaScript API - This is the main JavaScript SDK to use when you want to interact with an Ethereum node.
JSON RPC API - This is the low level JSON RPC 2.0 interface to interface with a node. This API is used by the Web3 JavaScript API.
Solidity Docs - Solidity is the Ethereum developed Smart Contract language, which compiles to EVM (Ethereum Virtual Machine) opcodes.
Solium - A linter for Solidity which strictly follows the rules prescribed by the official Solidity Style Guide.
Test Networks - Test networks help developers develop and test Ethereum code and network interactions without spending their own ether on the main network. Test network options are listed below.
Dapp development resources. This assists you in developing, debugging, and deploying Ethereum applications.
Dapp development resources
https://blog.slock.it/a-primer-to-the-decentralized-autonomous-organization-dao-69fb125bd3cd
A 101 noob’s intro to programming smart contracts
Standardised contract APIs listing
Examples
example use of pricefeed - web3 script printing all account balances
https://dappsforbeginners.wordpress.com/tutorials/your-first-dapp/
https://github.com/ethereum/wiki/wiki/Dapp-Developer-Resources
Tutorials
Dapp tutorials on ethereum.org
Dapps for beginners tutorial series
Eris’ Solidity Tutorial Series
Tutorials on advanced Solidity
http://ethereumj.io/blog/2015/09/09/friendly-ether-bot/
https://github.com/ConsenSys/ether-pudding
Mix-IDE
Mix is the official Ethereum IDE that allows developers to build and deploy contracts and decentralized applications on top of the Ethereum blockchain. It includes a Solidity source code debugger. Mix (discontinued)
IDEs/Frameworks
Below are developer frameworks and IDEs used for writing Ethereum dapps.
Truffle - Truffle is a development environment, testing framework and asset pipeline for Ethereum.
Dapple - Dapple is a tool for Solidity developers to help build and manage complex contract systems on Ethereum-like blockchains.
Populus - Populus is a Smart Contract development framework written in python.
Eris-PM - The Eris Package Manager deploys and tests smart contract systems on private and public chains.
Embark - Embark is a Ðapp development framework written in JavaScript.
EtherScripter (obsolete, discontinued)
Resilience Raw Transaction Broadcaster
Ethereum-console
以太坊节点的命令行控制台。
Ethconsole通过IPC连接到在后台运行的Ethereum节点(通过eth和geth测试),并提供包含带管理员添加的web3对象的交互式JavaScript控制台。
在这里您可以找到可用命令ethereum节点控制命令的列表
要使用此控制台,您需要启用启用了ipc通信套接字的本地以太节点(数据目录中的文件geth.ipc)。默认情况下,启动节点后,ipc套接字应该位于.ethereum的本地主目录中。您还可以设置--test选项以使用特定的节点测试命令。
在控制台中,你可以输入
这里--test模式节点命令的defenition:
有关节点配置文件的更多信息。
Base layer services
Whisper
What is Whisper and what is it used for - stackexchange Q&A
Gavin Wood: Shh! Whisper - DEVCON-1 talk youtube video
Whisper overview and dream API usage -
swarm
Swarm是一个分布式存储平台和内容分发服务,它是Ethereum web 3堆栈的本地基础层服务。Swarm的主要目标是提供一个足够分散和冗余的以太坊公共记录库,特别是存储和分发dapp代码和数据以及块链数据。从经济角度来看,它允许参与者高效地共享他们的存储和带宽资源,以向所有参与者提供上述服务。
从最终用户的角度来看,Swarm与WWW没有什么不同,除了上传不是指向特定的服务器。其目标是通过使用对等会计的内置激励系统,实现对DDOS耐受,零停机时间,容错和审查抵制以及自我维持的点对点存储和服务解决方案并允许交易资源进行支付。Swarm旨在与以太坊的devp2p多协议网络层以及用于域名解析,服务支付和内容可用性保险的以太坊区块链深度集成。
ÐΞVcon talks on swarm
Viktor Trón, Daniel A. Nagy: Swarm - Ethereum ÐΞVcon-1 talk on youtube
Daniel A. Nagy: Keeping the Public Record Safe and Accessible - Ethereum ÐΞVcon-0 talk on youtube
Code and status
[source](https://github.com/ethereum/go-ethereum/tree/swarm)
[issues on github](https://github.com/ethereum/go-ethereum/labels/swarm)
[development roadmap]()
Ethereum Tests
(不翻了, 请看最后的链接)
http://ethdocs.org/en/latest/contracts-and-transactions/ethereum-tests/index.html
web3 层次和服务
除了以太坊区块链之外,还有更多组件正在开发中. 这些组件是应用程序的重要组成部分, 未来都会实现去中心化.
Swarm - 去中心化的数据存储和分配
Swarm是一种点对点数据共享网络,其中文件通过其内容的散列来解决。与Bittorrent类似,可以一次从多个节点获取数据,只要单个节点托管一个数据,它就可以随处访问。这种方法使分发数据成为可能,而无需托管任何类型的服务器 - 数据可访问性与位置无关。
可以激励网络中的其他节点自行复制和存储数据,避免在原始节点未连接到网络时托管服务。
Whisper - 去中心化的消息服务
直接在节点之间进行私密安全通信的协议。
此外,正在创建标准合同,以便更容易地开发和使用分布式应用程序:
名称注册表
因为dapps可以存储在任何地方,包括Swarm网络,名称注册表会将名称映射到其内容或位置。这是域名系统(DNS)的分散替代方案。
请参阅https://github.com/ethereum/EIPs/issues/26
contract注册
要发布特定合同的源代码,其地址必须映射到它。合同注册表存储此映射。然后用户可以查找该映射并验证合约字节码。
网友评论