Upgradable smart contract using zos
smart contract跟一般程式最大的差異,就是smart contract上了鏈就不能改了(這是區塊鏈的特性也是優點,但是如果真的有bug,麻煩就大了...)。所以今天要介紹的是,如何用 ZeppelinOS 來實作upgradeable smart contract,可升級的smart contract。 版本 - zos: 2.1.0 - Truffle: 5.0.1 OpenZeppelin 對smart contract的開發者一定不陌生,提供相當多smart contract的範例程式。Zeppelin部落格有介紹如何使用proxy contract實作可升級的contract,這是他們 proxy patterns的設計 ,之後有機會再深入介紹proxy pattern。本篇主要在介紹如何使用 zos 部署可升級的contract。(本篇需要有使用過truffle的經驗) Deploy contracts 環境部分,先安裝Node.js跟npm,跟Ganache(或Ganache-cli)。 Deploy your first project 有詳細地介紹如何使用zos部署。 先安裝ZeppelinOS npm install --global zos 再來建立專案 mkdir MyProject cd MyProject 初始化專案 npm init zos init MyProject npm install zos-lib 這個時候,資料夾內容就跟下過 truffle init 一樣,有 contracts , migrations 資料夾, truffle-config.js 等。以上環境就都建置完成了,再來就是寫contract了,這裡直接用官方的範例 pragma solidity ^ 0.4 .24; import "zos-lib/contracts/Initializable.sol" ; contract MyContract is Initializable { uint256 public x; string public s; function initialize(uint256...