以太坊快速上手指南
在正式开始前,首先推荐过下这篇文章 http://ethfans.org/topics/102
如果你暂时不想了解区块链的技术细节,比如什么工作量证明,公钥加密系统什么的,可以先直接跳过。但还是强烈建议在你对整个开发流程有了点感觉后,把这部分知识补充起来。
区块链部分
http://teahour.fm/2015/12/27/talk-with-jan-about-bitcoin-and-blockchain.html
http://teahour.fm/2016/01/19/talk-with-jan-about-ehtereum.html (文字稿:http://ethfans.org/posts/talk-with-jan-about-ehtereum)
编写智能合约
Ethereum提供两种智能合约编程语言Solidity和Serpent,Solidity的语法类似于JavaScript,而Serpent的语法接近于Python。但也仅仅是语法有点类似,事实上有着巨大的差别,学习时不能简单的代入理解。如果你对编程语言没有偏好,请选择Solidity,也是默认的智能合约编程语言。Solidity文档中文版(正在翻译中,欢迎开发者参与翻译):http://ethfans.org/posts/solidity-content 。
如果不想搭建完整的ethereum开发环境,只是想了解下Solidity,可以看下这个项目:Browser-Solidity
常用辅助工具和开发环境
以太坊的开发生态正在日益完善,相比刚发布时的裸写,现在已经有很多开发工具供选择了。
以太坊本地私有链开发环境搭建教程(中文) : http://ethfans.org/posts/ethereum-private-network-bootstrap
Đapp
通常你都是在写一个面向最终用户的应用,这时你需要一个界面。以太坊的开发者通常使用Web App + Smart Contract的方式来搭建这样的应用,并称之为Đapp(Decentralised Application)。在这里,智能合约部分的代码就相当于BS架构中的服务器代码,而Web部分则相当于前端代码。Web部分可以使用你熟悉的的HTML + JavaScript + CSS 来完成,然后通过JSONRPC的方法使用以太坊客户端提供的API接口,来操作你部署在区块链上的智能合约,这里区块链就相当于你租用的一台云服务器,所以有时候我们可以把以太坊的区块链理解为全球共享的一台World Computer。
Đapp最为关键的就是如何进行JSONRPC调用,以太坊官方提供了一个工具: Web3.js。如果你开发Đapp, 就必然需要使用它。
如何搭建一个测试网络并运行一个简单的 dapp http://ethfans.org/topics/85