当前位置: 首页 > news >正文

【区块链 | OpenZeppelin】手把手交易使用OpenZeppelin Upgrades部署可升级智能合约

如何部署以太 坊可升级智能合约

为什么要升级合约?

根据设计,智能合约是不可变的。另一方面,软件质量在很大程度上取决于升级和修补源代码以生成迭代版本的能力。尽管基于区块链的软件从技术的不变性中获益匪浅,但修复错误和潜在的产品改进仍然需要一定程度的可变性。OpenZeppelin Upgrades 通过为智能合约提供易于使用、简单、健壮和可选的升级机制来解决这一明显的矛盾,该机制可以由任何类型的治理控制,无论是多重签名钱包、简单地址还是复杂的 DAO。


首次部署

需要部署三个合约,分别是逻辑合约,代理管理合约,代理合约。逻辑合约就是我们自己的业务合约,需要满足OpenZeppelin可升级合约的条件。以下业务合约以逻辑合约为例进行说明。
本文使用remix部署合约,如需快速部署请参考:【翻译】用 Hardhat 进行升级部署(Using with Hardhat) | 登链社区

第一步,逻辑合约

首先部署逻辑合约。

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradea

相关文章:

  • 同一公司开发的多个软件,可以用同一张代码签名证书吗?
  • 深度分析:用户最喜欢用哪种NFT做头像
  • php 小数计算 结果变无限小数解决方案
  • WebRTC研究:丢包与抖动
  • freeswitch的3XX重定向
  • jsp+sql毕业生招聘系统免费系统+论文
  • Java毕业设计-火车订票管理系统
  • SwiftUI 界面状态 成员变量 @State @Buiding immutable
  • Java 进阶集合和数据结构
  • RabbitMQ、RocketMQ、Kafka常见消息队列不得不知道的事
  • 简单工厂模式、工厂模式、抽象工厂模式(含C++代码)
  • 自动化测试之路 —— Appium输入及模拟手势
  • 使用聚类(K-means)分析方法对骑手进行分类标签定义
  • Z-Score模型的进阶版:Zeta模型
  • 从零开始配置vim(20)——模糊查询
  • 【前端学习】-粗谈选择器
  • 77. Combinations
  • egg(89)--egg之redis的发布和订阅
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Java精华积累:初学者都应该搞懂的问题
  • MySQL-事务管理(基础)
  • tensorflow学习笔记3——MNIST应用篇
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 坑!为什么View.startAnimation不起作用?
  • 排序算法之--选择排序
  • 前端设计模式
  • 前端之Sass/Scss实战笔记
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​用户画像从0到100的构建思路
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $NOIp2018$劝退记
  • (¥1011)-(一千零一拾一元整)输出
  • (zhuan) 一些RL的文献(及笔记)
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (接口自动化)Python3操作MySQL数据库
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (三)SvelteKit教程:layout 文件
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (四)汇编语言——简单程序
  • (转)大型网站的系统架构
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .net 8 发布了,试下微软最近强推的MAUI
  • .net6+aspose.words导出word并转pdf
  • .NET的数据绑定
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @SpringBootApplication 包含的三个注解及其含义
  • [.net]官方水晶报表的使用以演示下载
  • [AIGC] SpringBoot的自动配置解析
  • [ajaxupload] - 上传文件同时附件参数值
  • [android] 手机卫士黑名单功能(ListView优化)
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务