IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 初入以太坊,学习调研智能合约——智能合约的生命周期 -> 正文阅读

[区块链]初入以太坊,学习调研智能合约——智能合约的生命周期

合约的存储:

合约在部署时, 就会创建一个合约账户, 合约代码的可执行字节码(Bytecode)保存在合约账户(CA)中。具体来说就是存在账户 codehash 指向的存储区域;codeHash 是代码的 hash 值,创建后不可更改。

再次, 数据主要存储在账户 storageRoot 指向的存储区域;storageRoot 对应合约存储结构的MPT树根节点hash值,通过它能够在数据库中检索到合约的变量信息。

最后, 所有的基础存储目前都基于 leveldb, 一种 kv 数据库。

2

搬运:?

以太坊智能合约的生命周期_跨链技术践行者-CSDN博客_智能合约生命周期

推荐:以太坊智能合约的生命周期_跨链技术践行者-CSDN博客_智能合约生命周期? ?详细介绍了合约存储、创建、部署、执行、升级、销毁

1、开发

开发人员使用不同的高级语言来编写智能合约,但是使用最多、最为活跃的,以及很多程序分析和漏洞挖掘工作都是面向Solidity来实现的。

2、编译

将各种高级语言编写的智能合约的源代码编译为能够在以太坊虚拟机上运行的字节码(bytecode),同时还会生成相应的合约调用接口ABI,该接口定义了合约所有可以被调用的外部函数和参数列表。

3、部署

编译之后的智能合约字节码需要被部署 在以太坊区块链平台中。合约的部署通常由一笔合约 部署交易来完成, 其中交易的数据(data)字段将被设 置为合约部署字节码, 而交易的接收方被设置为空。 矿工在进行交易打包时, 将会按照交易发送者的地址 (address)和交易序列号(nonce)信息来生成一个新的地址, 并将合约的字节码部署到该地址。这个新生成的地址就是合约地址, 是合约的唯一识别, 之后对于该合约的所有操作都将使用这个地址进行。

4、调用

a.交易调用,由普通账户发起一笔合约调用交易。

b.消息调用,由某个合约发起对另一个合约中函数的调用,合约之间的调用参数不会留在区块链数据中。

5、销毁

以太坊允许合约进行“自我销毁”, 不 过并不是所有的合约都可以销毁, 而是需要开发者 在进行合约编写时加入该功能。开发者在编写合约 时, 可以规定合约在达到特定的条件时进行销毁。合 约在执行过程中, 到达提前设置的条件, 便会进行 自我销毁。需要注意的是, 由于区块链数据都是公开 且不可篡改的, “销毁”只是意味着该合约在当前的 区块状态(state)中被标记为删除, 且不能被后续调 用, 但并不意味着合约代码和 Storage 存储被删除。 相反, 通过遍历并执行历史上的以太坊交易, 任何 被“销毁”的合约及其 Storage 存储都可以被恢复和 查看。合约一旦销毁便不可再被调用, 因此销毁功能 的调用必须进行足够的权限设置, 否则可能会被攻 击者恶意销毁而产生拒绝服务攻击。

7

搬运自:

倪远东,张超,殷婷婷.智能合约安全漏洞研究综述[J].信息安全学报,2020,5(03):78-99.

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-09-14 13:23:37  更:2021-09-14 13:24:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/11 15:19:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码