23
回答
高手问答第 194 期 — 以太坊智能合约开发:你应该了解的区块链技术

OSCHINA 本期高手问答(4 月 18 日 - 4 月 24 日)我们请来了旷文杰@Marser_cn 和大家一起探讨关于以太坊智能合约开发的问题。

旷文杰(网名:Marser_cn),资深 PHP 工程师,PhalconCMS 开源项目负责人。曾就职于阿里巴巴旗下美妆电商平台。目前在区块链领域深耕,对以太坊智能合约有较深入的研究。热爱技术交流,常在个人博客上分享自己的技术心得 >>> https://my.oschina.net/KevinJay/blog

无论在科技圈还是金融圈,区块链俨然成了最热的词汇。区块链不仅会重塑货币市场、支付系统、金融服务等,它并不止应用于金融领域,而是会应用于任何领域,例如资产贸易、电子商务、社交通讯等。

面对这项会影响我们未来生活的技术,我们有理由去涉猎一番。本期高手问答的主题是以太坊智能合约开发,以太坊(Ethereum)是一个建立在区块链技术之上的、图灵完备的去中心化应用平台。它允许任何人在平台中通过智能合约技术开发、部署和使用去中心化应用。

以太坊相信大家都会听说过,如果没听过以太坊,那你一定听说过 ICO。但你知道 ICO 其实是借助以太坊的智能合约实现的吗?那什么是智能合约,以太坊为啥这么火?智能合约的特点是什么,我要如何编写智能合约?基于智能合约还有 Dapp,Dapp 又是什么?

面对这些问题,本期高手问答十分有幸邀请到了对以太坊智能合约有较深入研究的@Marser_cn ,他将和大家一起探讨关于以太坊智能合约开发的问题。

本期高手问答主题

  • 智能合约开发
  • Solidity 开发语言
  • Web3.js
  • DApp(Decentralized App,分布式应用)

或有其他相关问题,也欢迎大家积极提问。

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就以太坊智能合约开发的相关问题向@Marser_cn  提问,请直接回帖提问。

举报
局长
发帖于5个月前 23回/3K+阅
共有23个答案 最后回答: 5个月前

@Marser_cn 我想请问下,对于类似比特币的历史不断膨胀的交易记录文件,以太坊是如何处理的?

--- 共有 8 条评论 ---
云舒丶丨我是来看看验证码的... 5个月前 回复
汤文镇开源中国的验证码是我见过的最菜,最垃圾的验证码。哪个傻帽工程师弄的,是人能看的吗 5个月前 回复
Marser_cn 回复 @不由分说 : 数据最终还是以去中心化的方式存储的 5个月前 回复
不由分说 回复 @Marser_cn : 所以又变成了带中心化的系统了。感觉没办法完全去中心化。 5个月前 回复
Marser_cn 回复 @haitaosoft : 而且,目前也有提供全节点服务的企业,只需通过RPC连接,API形式请求数据即可 5个月前 回复

@Marser_cn  js可以实现区块链吗? 有什么前端技术实现区块链,比较方便

--- 共有 2 条评论 ---
不由分说https://github.com/lhartikk/naivechain nodejs写的区块链。公链的话还是不建议用前端代码编写。 5个月前 回复
Marser_cn以太坊社区推荐使用Solidity语言来开发智能合约,推荐使用Truffle开发框架快速进行DAPP应用的开发、编译、部署。而Solidity语言和Javascript是类似的,Truffle框架本身是采用Javascript编写。同时,以太坊社区还提供了web3.js库,可以实现网页与智能合约的交互。所以前端同学学习以太坊智能合约的开发是很有优势的。我的博客里有这块的开发教程,你可以参考 5个月前 回复

@Marser_cn 基于以太坊的成熟应用(不算币类)有哪些?开源可供学习的有吗?

--- 共有 3 条评论 ---
Marser_cn不过,现在各方也都在探讨摸索使用场景、落地应用等等。现阶段比较流行的DAPP都是基于游戏的,比如前阵子非常火的以太猫cryptokitties(代码:https://ethfiddle.com/09YbyJRfiI)。国内根据此游戏衍出了以太三国,以太水浒等类似游戏。 5个月前 回复
Marser_cn目前并没有非常成熟,并大规模商用的应用。一是因为以太坊每秒能处理的transaction数不高,二是所有的DAPP都是共用主链,容易引发堵塞的情况。打个不恰当的比喻,现在的以太坊就相当于windows初期的dos。不过,以太坊是目前生态做的最好的公链,其未来值得期待。 5个月前 回复
沙发迪暂时没有 5个月前 回复

@Marser_cn 请问区块链有什么好的使用场景?

--- 共有 3 条评论 ---
Marser_cn 回复 @开源中国首席技术专家 : 可以借鉴前阵子非常火的以太猫cryptokitties游戏。同时,也可以参考国内团队做的游戏,比如百度的莱茨狗,网易的招财猫,小米的加密免等等 5个月前 回复
开源中国首席罗纳尔多@Marser_cn 回复@Marser_cn : 请问游戏领域怎么做? 5个月前 回复
Marser_cn现阶段比较流行的DAPP是在游戏领域。更多的使用场景,业内也都在探讨摸索。 5个月前 回复

@Marser_cn 对国内的NEO公链怎么看,能否追赶上以太?

--- 共有 3 条评论 ---
Marser_cn 回复 @不由分说 : 不过多的分析币种哈。 5个月前 回复
不由分说 回复 @Marser_cn : Qtum和EOS呢? 5个月前 回复
Marser_cnNEO是国内做的最好的公链。不过NEO现阶段的缺点很明显:1、它是基于.NET开发语言的,提供的SDK目前也只有.NET的版本。可能其定位是为政府项目服务(纯属个人推测) 2、围绕NEO的生态不够完善,DAPP应用没有ETH丰富 至于能否超越ETH,这个就见仁见智了 :) 5个月前 回复

@Marser_cn 能不能通俗易懂地讲讲Solidity assembly 语法?

--- 共有 1 条评论 ---
Marser_cn通俗的说,inline assembly是以更接近EVM虚拟机的语言形式来增加Solidity的功能。 solidity文档中对assembly这块的语法已经讲解的很详细,可以多读读:http://solidity.readthedocs.io/en/v0.4.22/assembly.html 5个月前 回复

@Marser_cn
如果一个对区块链底层不是很懂的技术人员,想要基于区块链技术开发内容资讯分享型的应用,有什么简单易学的第三方区块链开放平台可以使用吗?

--- 共有 1 条评论 ---
Marser_cn以太坊对底层区块链技术进行了封装,提供了很多API及工具,让区块链应用开发者可以直接基于以太坊平台进行开发。开发者只要专注于应用本身的开发即可,不需要很熟悉区块链的底层技术,只需明白其中的一些概念及运行方式。具体可参考我博客中的文章,照着撸一遍,就能明白DAPP应用的开发。对技术栈的要求并不是太高 5个月前 回复
顶部