Universal Ledger CLI 是為實驗目的提供的指令列介面,可協助提交交易及與 Universal Ledger 網路互動。如要用於實際用途,建議改用 Universal Ledger API 建立整合。
本指南說明如何開始使用 Universal Ledger CLI。您可以瞭解如何執行下列作業:
取得並設定 Universal Ledger CLI。
使用 CLI 建立及管理帳戶。
探索 CLI 中提供的其他指令。
事前準備
如要完成本指南,您需要下列項目:
啟用 Universal Ledger API 的 Google Cloud 專案。
例如
roles/universalledger.networkUser,這樣您就能提交交易,並查詢通用帳本網路中的帳戶狀態。系統在網路上為您建立的現有通用帳本帳戶。 如果沒有帳戶,請參閱「申請新帳戶」。
設定 CLI
為簡化設定程序,本指南是針對 Cloud Shell 工作階段提供的預設環境編寫。如要在其他環境中使用 CLI,可能需要修改這些指令。
在 Google Cloud 控制台中啟用 Cloud Shell。
執行下列指令,建立用於存放 CLI 設定檔的目錄。
mkdir -p ~/.config/ul-cli執行下列各項指令,即可提取 ul-cli Docker 映像檔、定義執行二進位檔的別名,並確認二進位檔是否正常運作。
docker pull us-docker.pkg.dev/gcul-artifacts/images/client/ul-cli:latestalias ul-cli="docker run --rm -i --user $(id -u):$(id -g) \ --volume /tmp:/tmp \ --volume ~/.config/ul-cli:/home/.config/ul-cli \ --volume ~/.config/gcloud:/home/.config/gcloud \ --volume .:/workspace \ --env HOME=/home \ --workdir /workspace \ us-docker.pkg.dev/gcul-artifacts/images/client/ul-cli:latest"ul-cli --help
執行下列指令來設定 CLI。
ul-cli config setup projects/PROJECT_ID/locations/REGION/endpoints/NETWORK_NAME更改下列內容:
PROJECT_ID:啟用 Universal Ledger API 的 Google Cloud 專案 ID。REGION:您要連線的端點區域。NETWORK_NAME:要互動的網路名稱。
如需選擇合適端點的說明,請參閱「可用網路和區域」。
先前的指令會在以下位置建立檔案:
~/.config/ul-cli/config.yaml
CLI 會使用及維護這項設定。
管理通用分類帳帳戶
本節說明如何註冊現有帳戶、在帳本中為自己建立新帳戶,以及為他人建立新帳戶。
註冊現有帳戶
網路上的其他參與者為您建立帳戶後,您可以使用下列指令,在 CLI 的地址簿中註冊帳戶詳細資料。
ul-cli accounts register \
--alias ACCOUNT_ALIAS \
--account-id ACCOUNT_ID \
--key-name ACCOUNT_KMS_KEY更改下列內容:
ACCOUNT_ALIAS:CLI 在本機使用的簡短字串,用於在日後的指令叫用中識別這個帳戶。例如:usd-operator、my-token-manager或test-user-account。ACCOUNT_ID:系統為您建立的 Universal Ledger 帳戶 ID。ACCOUNT_KMS_KEY:這個帳戶使用的 Cloud KMS 金鑰版本完整資源 ID。帳戶必須使用這個特定金鑰版本的公開部分建立。如需預期格式,請參閱「擷取資源的 ID」。
這項本機作業會在 CLI 設定檔中記錄帳戶詳細資料,讓您代表這個帳戶簽署要求並提交至帳本。
為您建立新帳戶
您可以使用 ul-cli accounts create 子指令建立新帳戶。
舉例來說,如要建立新的使用者帳戶,可以使用:
ul-cli accounts create account \
--alias NEW_ACCOUNT_ALIAS \
--key-name NEW_ACCOUNT_KMS_KEY \
--comment "NEW_ACCOUNT_COMMENT" \
--roles NEW_ACCOUNT_ROLES \
--sender ACCOUNT_MANAGER_ALIAS更改下列內容:
NEW_ACCOUNT_ALIAS:CLI 在本機使用的簡短字串,用於在日後的指令叫用中識別這個帳戶。NEW_ACCOUNT_KMS_KEY:新使用者帳戶要使用的 Cloud KMS 金鑰版本完整資源 ID。NEW_ACCOUNT_COMMENT:字串,其中包含要記錄在與新使用者帳戶相關聯的帳本上的任何相關資訊。這是儲存在帳本上的不透明值,但通用帳本不會以其他方式解讀。建立後,這個欄位就無法變更,且任何有權存取網路的人都能讀取。NEW_ACCOUNT_ROLES:以半形逗號分隔的角色清單,將指派給新的使用者帳戶。例如:payer、receiver、contract-creator或contract-participant。ACCOUNT_MANAGER_ALIAS:先前使用 CLI 註冊或建立的帳戶管理員別名。
這會代表指定帳戶管理員簽署並提交 CreateAccount 交易。
執行 ul-cli accounts create --help,查看其他類型帳戶的建立選項。
為他人建立新帳戶
如要為他人建立帳戶,請要求對方與您分享公開金鑰,並將金鑰儲存在檔案中。一般來說,建議您使用 PEM 編碼格式的金鑰。舉例來說,如果對方的簽署金鑰使用 P-256 橢圓曲線搭配 SHA256 摘要,請將金鑰儲存在名為 pem_ec_p256_sha256.pub 的檔案中:
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJ/vWkd5wgakFbVD25k8WM9Ll6We+
c8RVDS0R4G8xetsmFjfNW/ZxwWeB86IvMjxY8ZsdU9+W7BL5YM6rUB5yCQ==
-----END PUBLIC KEY-----
然後執行下列指令來建立帳戶:
ul-cli accounts create account \
--alias NEW_ACCOUNT_ALIAS \
--public-key "$(cat pem_ec_p256_sha256.pub)" \
--key-format pem_ec_p256_sha256 \
--comment "NEW_ACCOUNT_COMMENT" \
--roles NEW_ACCOUNT_ROLES \
--sender ACCOUNT_MANAGER_ALIAS更改下列內容:
- :CLI 在本機使用的簡短字串,用於識別日後指令叫用中的這個帳戶。不過請注意,由於您沒有私密金鑰,因此無法簽署或提交交易。
NEW_ACCOUNT_ALIAS NEW_ACCOUNT_COMMENT:字串,其中包含要記錄在新使用者帳戶相關聯帳本中的任何相關資訊。這是儲存在帳本中的不透明值,但通用帳本不會以其他方式解讀。建立後,這個欄位就無法變更,且任何有權存取網路的人都能讀取。NEW_ACCOUNT_ROLES:以半形逗號分隔的角色清單,將指派給新的使用者帳戶。例如:payer、receiver、contract-creator或contract-participant。ACCOUNT_MANAGER_ALIAS:先前使用 CLI 註冊或建立的帳戶管理員別名。
這會代表指定帳戶管理員簽署並提交 CreateAccount 交易。
所有 accounts create 子指令都提供 --public-key 和 --key-format 標記,因此您也可以使用這些標記建立其他類型的帳戶。如需其他支援的公開金鑰格式,請參閱 Universal Ledger API 參考資料中的「KeyFormat」。
列出受管理帳戶
執行下列指令,即可查看所有在本機註冊或使用 Universal Ledger CLI 建立的帳戶:
ul-cli accounts list探索其他指令
使用 --help 旗標,探索 Universal Ledger CLI 提供的所有其他指令和子指令。
舉例來說,如要查看可用的頂層指令,請執行:
ul-cli --help這包括提交其他類型交易的子指令,例如:
accounts:註冊或建立帳戶,以及對現有帳戶執行管理作業,例如新增或移除角色,以及查詢帳戶詳細資料。contracts:部署、授予權限,以及在可程式化合約上叫用方法。issuance:供結算中心增加或減少權杖管理工具的發行上限,以及執行結算作業。tokens:代幣管理員在使用者帳戶中鑄造或銷毀代幣。wallet:使用者帳戶將餘額轉移至其他使用者帳戶。
後續步驟
- 瞭解如何傳送 RPC 要求至 Universal Ledger API。
- 請參閱 Universal Ledger API 參考資料。