一、总体架构
二、区块链_区块_账户_交易_出块时间_块高的关系
比特币出块时间是平均10分钟,而以太坊约是15秒。
账户与账户之间的多个转账交易(Transaction),被打包为了一个区块,多个区块通过一定的算法链接起来,就成了区块链,这是图中要表达的意思。
三、以太坊分布式网络
以太坊的任意一个节点都能是该网络的入口和出口。
四、交互
开发者通过代码和来和以太坊网络进行交互,普通用户则通过各种DAPP来和以太坊网络进行交互。
五、以太坊账户
以太坊账户包含了地址、公钥、私钥。Rinkeby为账户的测试环境,主网为线上环境。
六、账户和钱包的关系
通过对比我们能看出区块链去中心化的轮廓。
七、合约账户和普通账户的区别
先是开发者通过合约用户来定义智能合约的业务逻辑,然后普通用户才能利用智能合约完成各个账户之间的交易,最后合约与合约之间的交互使得整个系统能有序进行。
八、智能合约开发工作流
Remix:以太坊官方推荐的智能合约开发IDE,适合新手,可以在浏览器中快速部署测试智能合约。
Visual Studio Code :(简称VS Code/VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。
Node.js :是一个基于 Chrome V8 引擎的 JavaScript 运行环境。使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。它的包管理器 npm,是全球最大的开源库生态系统。
九、基于 Node.js 的智能合约工作流
上一篇文章就是这个图中描述的业务逻辑的实现。
十、web3.js的桥梁作用
web3.js是以太坊提供的一个Javascript库,它封装了以太坊的JSON、 RPC、API,提供了一系列与区块链交互的Javascript对象和函数,包括查看网络状态,查看本地账户、查看交易和区块、发送交易、编译/部署智能合约、调用智能合约等,其中最重要的就是与智能合约交互的API。