图解以太坊智能合约中的概念

一、总体架构


以太坊层架构示意图

二、区块链_区块_账户_交易_出块时间_块高的关系

区块链_区块_账户_交易_出块时间_块高的关系示意图

比特币出块时间是平均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 的智能合约工作流


Node.js 的智能合约工作流

上一篇文章就是这个图中描述的业务逻辑的实现。

十、web3.js的桥梁作用


webjs.的桥梁作用

web3.js是以太坊提供的一个Javascript库,它封装了以太坊的JSON、 RPC、API,提供了一系列与区块链交互的Javascript对象和函数,包括查看网络状态,查看本地账户、查看交易和区块、发送交易、编译/部署智能合约、调用智能合约等,其中最重要的就是与智能合约交互的API。

你可能感兴趣的:(图解以太坊智能合约中的概念)