【以太坊智能合约编程概述有哪些?以太坊智能合约编程基本概念是什么?】原文首发于ConsenSys开发者博客,原作者为Eva以及ConsenSys的开发团队 。如果您想要获取更多及时信息,可以访问ConsenSys首页点击左下角Newsletter订阅邮件 。本文的翻译获得了ConsenSys创始人Lubin先生的授权 。
有些人说以太坊太难对付,于是我们(译注:指Consensys, 下同)写了这篇文章来帮助大家学习如何利用以太坊编写智能合约和应用 。这里所用到的工具,钱包,应用程序以及整个生态系统仍处于开发状态,它们将来会更好用!
第一部分概述,讨论了关键概念,几大以太坊客户端以及写智能合约用到的编程语言 。
第二部分讨论了总体的工作流程,以及目前流行的一些DApp框架和工具 。
第三部分主要关于编程,我们将学习如何使用Truffle来为智能合约编写测试和构建DApp 。
第一部分. 概述
如果你对诸如比特币以及其工作原理等密码学货币的概念完全陌生,我们建议你先看看Andreas Antonopoulos所著的Bitcoin Book的头几章,然后读一下以太坊白皮书 。(译注:以太坊白皮书中文版请看 http://ethfans.org/posts/ethereum-whitepaper)
如果你觉得白皮书中的章节太晦涩,也可以直接动手来熟悉以太坊 。在以太坊上做开发并不要求你理解所有那些“密码经济计算机科学”(crypto economic computer science),而白皮书的大部分是关于以太坊想对于比特币架构上的改进 。
新手教程
ethereum.org提供了官方的新手入门教程,以及一个代币合约和众筹合约的教程 。合约语言Solidity也有官方文档 。学习智能合约的另一份不错的资料(也是我的入门资料)是dappsForBeginners,不过现在可能有些过时了 。
这篇文章的目的是成为上述资料的补充,同时介绍一些基本的开发者工具,使入门以太坊,智能合约以及构建DApps(decentralized apps, 分布式应用)更加容易 。我会试图按照我自己(依然是新手)的理解来解释工作流程中的每一步是在做什么,我也得到了ConsenSys酷酷的开发者们的许多帮助 。
基本概念
了解这些名词是一个不错的开始:
公钥加密系统 。Alice有一把公钥和一把私钥 。她可以用她的私钥创建数字签名,而Bob可以用她的公钥来验证这个签名确实是用Alice的私钥创建的,也就是说,确实是Alice的签名 。当你创建一个以太坊或者比特币钱包的时候,那长长的0xdf...5f地址实质上是个公钥,对应的私钥保存某处 。类似于coinbase的在线钱包可以帮你保管私钥,你也可以自己保管 。如果你弄丢了存有资金的钱包的私钥,你就等于永远失去了那笔资金,因此你最好对私钥做好备份 。过来人表示:通过踩坑学习到这一点是非常痛苦的...
点对点网络 。就像BitTorrent, 以太坊分布式网络中的所有节点都地位平等,没有中心服务器 。(未来会有半中心化的混合型服务出现为用户和开发者提供方便,这我们后面会讲到 。)
区块链 。区块链就像是一个全球唯一的帐簿,或者说是数据库,记录了网络中所有交易历史 。
以太坊虚拟机(EVM) 。它让你能在以太坊上写出更强大的程序(比特币上也可以写脚本程序) 。它有时也用来指以太坊区块链,负责执行智能合约以及一切 。
节点 。你可以运行节点,通过它读写以太坊区块链,也即使用以太坊虚拟机 。完全节点需要下载整个区块链 。轻节点仍在开发中 。
矿工 。挖矿,也就是处理区块链上的区块的节点 。这个网页可以看到当前活跃的一部分以太坊矿工:stats.ethdev.com 。
推荐阅读
- 诺基亚智能手机的短信和名片夹设置不足之处
- oppor17pro手机复制粘贴具体操作步骤
- 巨量百应登录方法
- 以太坊钱包 Mist 使用教程是什么?以太坊钱包 Mist 如何使用?
- 如何使用以太坊钱包对DAO项目进行投票?用以太坊钱包对DAO项目进行投票方法是什么?
- 以太坊ETH钱包MyetherWallet使用教程是什么?以太坊ETH钱包MyetherWallet如何使用?
- 以太坊ETH钱包imToken使用指南是什么?以太坊ETH钱包imToken如何使用?
- 如何妥善备份你的以太坊钱包?妥善备份你的以太坊钱包方法是什么?
- 以太坊 Parity 客户端使用指南是什么?以太坊 Parity 客户端如何使用?
- 以太坊钱包MyEtherWallet使用指南是什么?以太坊钱包MyEtherWallet如何使用?