部署合約
編譯智能合約後,您可以將其部署到 Oracle Blockchain Platform Besu 環境。
部署程序會建立所需的協助程式程式庫和 UUPS 代理主機、連結權杖和帳戶相關資訊環境,以及設定治理相關資訊環境。權杖和帳戶會以非作用中狀態部署。它們只有透過部署意向處理才會變成作用中。
若要部署已編譯的合約,請向數位資產權杖管理員取得預先部署治理合約與其原則 UUID 的位址。取得具有部署權限的帳戶,並在適用的情況下提交部署意圖。部署表單需要合約、環境、部署 ID 及登錄中繼資料:智能合約 ID、版本、描述及作者。部署 ID 可識別可繼續的部署狀態;重試相同部署時,請使用穩定且唯一的值。
部署生命週期
- 編譯專案。
- 部署 Oracle Blockchain Platform 數位資產堆疊。
- 設定帳戶 / 權杖和治理相關資訊環境。(代理主機非作用中。)
- 複查並提交這兩個代理主機元件的部署意向。
- 不成功治理:提案會成功,然後啟動元件。
- 已控管:必要的原則核准已完成,然後啟動這些元件。
備註:
代理主機在部署後會立即停用。成功的合約部署不代表權杖為作用中狀態。啟用是由為部署設定的治理合約所控制,而不是由 UUPS 升級所控制。建立 Oracle Blockchain Platform Besu 環境
Oracle Blockchain Platform Besu 環境會儲存 Oracle Blockchain Platform RPC 主機,而不是完整的 JSON-RPC 端點。此擴充功能會從此主機衍生必要的 Besu 和治理路由。
- 開啟環境檢視,然後選取新增環境。
- 輸入描述性環境名稱。例如,輸入 obp-test 。
- 選取 Oracle Blockchain Platform Besu 作為環境類型。
- 輸入 RPC URL 主機。例如,輸入 https://rpcproxy.example.com:443 。
RPC URL 主機只能是
http或https來源,不能是端點路徑、查詢字串、片段、使用者名稱或密碼。例如,輸入https://rpcproxy.example.com:443,而不是https://rpcproxy.example.com:443/v1/besu/proxy。 - 輸入網路鏈結 ID 。
- 輸入 RPC 代理主機所需的授權權杖。
- 選擇性地設定專用憑證授權機構的 Gas Price Wei 、允許自行簽署以及 CA 憑證路徑。除非您的部署模型特別需要非託管簽署,否則請將 BESU 帳戶保留空白。Oracle Blockchain Platform 公事包服務部署會透過部署收集簽署詳細資訊。
- 選取建立。
對於儲存的 Oracle Blockchain Platform 主機,此擴充功能會導出 Besu 代理端點,並使用 Oracle Blockchain Platform 治理意圖端點。這讓環境在部署、執行和治理作業之間保持可攜性。
內建的 Hardhat Local Node 環境可供本機開發使用,不需要儲存。它不是 Oracle Blockchain Platform 環境。
部署到 Oracle Blockchain Platform Besu 環境
- 在合約窗格中,開啟專案的部署 / 執行表單,然後選取部署頁籤。
- 選取合約套件與 Besu 環境。
- 輸入部署 ID,或保留顯示的部署 ID。
- 完成必要的登錄 Metadata。建置階段記號名稱、符號、描述、URI 以及管理員 ID 是選擇性的。空白值使用部署指令碼預設值。
- 輸入針對 Oracle Blockchain Platform 環境顯示的公事包服務簽署資訊。
- 公事包服務簽署 URL
- 公事包服務帳戶,位址 / 公事包 ID 物件的 JSON 陣列
- 公事包服務認證權杖
- 選取下一步。
- 在部署選項中,輸入治理合約地址與政策 UUID ,然後選取部署。
Blockchain App Builder 只會使用該部署的公事包服務值,透過 Oracle Blockchain Platform Besu 網路執行產生的 Hardhat 部署命令檔。它會部署或重複使用必要的元件、設定其相關資訊環境,並傳回記號和帳戶代理主機位址。兩個代理主機均為非作用中。
提交部署意向
在非作用中的部署完成後,治理區段中會填入已部署的記號目標和帳戶目標值。將這兩個目標保持在意圖中。每一個都是 EIP-1967 代理主機;治理會以代理主機解析的實行位址和程式實際執行代碼雜湊來啟動代理主機。
- 確認權杖和帳戶目標。只有在您刻意建議現有的代理主機組時,才能加以覆寫。
- 輸入未來的提案截止日期。
- 在 Oracle Blockchain Platform Besu 中,輸入所選原則授權的寄件者地址。選取的環境必須要有 RPC URL 主機和授權權杖。
- 對於其他 EVM 環境,請選取來電者帳戶或輸入來電者的私密金鑰。應用程式會從該金鑰衍生寄件者地址。
- 選取複查。延伸會解析每個代理的實施與實施代碼雜湊,然後顯示建議的意圖。
- 驗證 UUID、期限、代理主機目標、實行位址以及程式碼雜湊。
- 選取提交。
對於 Oracle Blockchain Platform 環境,此擴充功能會透過 Oracle Blockchain Platform 公事包服務治理端點提交複查的意圖。對於其他 EVM 環境,它會透過 JSON-RPC 直接將簽署的 proposeDeployIntent 交易傳送至治理合約。
如果您在複查之後變更治理位址、UUID、代理主機目標或期限,預覽就會變成無效。請先再次複查提案,再加以提交。
治理啟用
相同目的工作流程用於兩種治理類型。差別在於治理合約接受該建議後會發生什麼事:
- 否:成功的
proposeDeployIntent呼叫會立即啟動內含的元件。確認交易或 Oracle Blockchain Platform 回應,然後驗證權杖的作用中狀態。 - 已管控:提交的意圖仍受設定的原則約束。權杖和帳戶只有在收到期限之前的必要核准之後才會生效。
此擴充功能會提交意圖,不會模擬或略過治理核准者。對於管控政策,請使用組織的核准程序,並等待治理合約啟動。如果保單拒絕或到期意圖,請更正原因,然後提交新的有效意圖。僅部署不會啟動代理主機。
備註:
部署合約後,資訊清單檔案會產生於專案根目錄下的.openzeppelin 資料夾中。對於生產環境網路 (非開發網路),請將這些檔案確認至來源控制。如需詳細資訊,請參閱 OpenZeppelin 文件中的 Network Files 。
建置錯誤疑難排解
| 條件 | 解決方式 |
|---|---|
| 無法儲存 Oracle Blockchain Platform 環境 | 輸入沒有端點路徑的 HTTP 或 HTTPS 來源。Oracle Blockchain Platform 欄位只預期為主機。 |
| 治理複查表示 Oracle Blockchain Platform 環境需要一個 RPC URL 主機和授權權杖 | 以兩個值更新儲存的 Oracle Blockchain Platform 環境,然後重新開啟或選取。 |
| 治理複查報表遺漏程式實際執行位元組碼 | 驗證選取的網路和代理 / 實作位址。請勿針對未部署的目標提交目的。 |
| 部署成功,但權杖非作用中 | 提交部署意向。對於治理,請等待所有政策核准;對於無作業的治理,請確認提案交易成功。 |
| 變更欄位後即無法提交提案 | 再選取一次複查。應用程式故意讓過時的預覽失效。 |