[CS] 区块链-智能合约

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/pangtouyu_qy/article/details/80590599

Gas

和云计算相似,占用区块链的资源(不管是简单的转账交易,还是合约的部署和执行)同样需要付出相应的费用。
以太坊上用Gas机制来计费,Gas也可以认为是一个工作量单位,智能合约越复杂(计算步骤的数量和类型,占用的内存等),用来完成运行就需要越多Gas。
Gas价格由运行合约的人在提交运行合约请求的时候规定,以确定他为这次交易付出的费用:Gas价格(用以太币计价) * Gas数量。
矿工收取相应的工作量费用。
引入gas来解耦。把市场的波动和计算的开销来解耦,也就是说以太币和gas之间是有汇率的,以太币涨没关系,gas价格下降就可以了。它要保证我做同样的计算,消耗的法币是一致的。防止出现这种情况:今天做一个加法需要十块钱,明天做一个加法需要一百块钱。


合约部署原理

部署架构

SOLC智能合约编译器将代码编译成成EVM字节码,然后将EVM字节码通过Geth的RPC接口发送到以太坊网络,经过全网验证后,同时写入到每个Geth管理的区块链中。
这里写图片描述

数据流

代码先经过SOLC编译变为了二进制码,然后通过一笔交易来创建智能合约,该笔交易包含了创建者账号、智能合约内容、智能合约的地址这几个关键信息。
这里写图片描述
部署过程中,需要通过交易来部署,同时数据要存储到区块链上,这些需要使用到GAS。


合约运行原理

区块链本身不能执行代码,代码的执行是在本地的EVM中。
可以理解区块链为一个数据库,而客户端从数据库中读取了存储的运行代码,并在本地运行后,将结果写入到了区块链这个数据库中。
这里写图片描述

展开阅读全文

没有更多推荐了,返回首页