10: dapp

dapp是一种服务,可以使最终用户和提供商之间进行直接交互(例如,将某些市场中的买卖双方,文件存储中的所有者和存储商连接起来)。以太坊dapps通常通过使用JavaScript API的HTML / Javascript Web应用程序与区块链进行通信来接口用户。Dapps通常会在区块链上拥有自己的一套关联合约,用于编码业务逻辑并允许持续存储其共识临界状态。请记住,由于以太坊网络计算的冗余特性,执行的天然气成本总是高于私有执行离线。这激励了dapp开发人员限制他们执行的代码量以及他们存储在区块链上的数据量。

dapp目录

使用以太坊的Dapps被编译到以下列表中。他们被列入不同的发展阶段(概念,工作原型,现场/部署)。如果您正在开发dapp,请考虑为这些列表添加一个条目:

Ethercasts State of the Ðapps

所提供的去中心化服务涵盖了金融,保险,预测市场,社交网络,分布式计算和存储,赌博,市场,物联网,管理,协作,开发和游戏等广泛领域。

最终的dapp形态是怎样的

将来,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

Smart contracts ELI5

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

Example Ethereum contracts

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 -

ELI5

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]()

ethersphere on twitter

swarm gitter room

swarm subreddit


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注册

要发布特定合同的源代码,其地址必须映射到它。合同注册表存储此映射。然后用户可以查找该映射并验证合约字节码。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容

  • 如果你是一个以太坊或区块链开发者新手,那么很可能你正有点不知所措地(至少我是)试图去了解以太坊生态中的所有工具与技...
    Ashton阅读 485评论 1 1
  • 昨天是轩轩的生日,花了好久在想选什么礼物好,因为总想着选一个吊炸天亮瞎眼的礼物,所以始终没有选到一个如意的,最后都...
    罗兄阅读 284评论 0 0
  • 这本书在字面上来看会以为是心理类书籍,从作者一贯的写作方式会觉得是越推理小说。 但是都不是,此书带有令人匪夷所思的...
    猫小姐的午后阅读 410评论 0 1
  • 今天早上5点半起床,就开始我们准备小组会议,开始给每个人发微信,结果还是没有准时的开始,到6点10分我们小...
    杜书晓阅读 102评论 1 0
  • “做一个精致的利己主义者,难道我错了吗?” 我看着面前的女孩,妆容精致,锋芒毕露,一时间不知道要怎么回答。 一 我...
    车前草JYJ阅读 1,228评论 3 1