Akun baru di jaringan Universal Ledger harus dibuat oleh akun administrator istimewa yang sudah ada di ledger. Akun istimewa ini harus menandatangani dan mengirimkan transaksi untuk membuat akun baru.
Panduan ini menjelaskan cara meminta akun baru di jaringan Universal Ledger. Pelajari cara:
Buat kunci penandatanganan asimetris untuk akun baru menggunakan Cloud Key Management Service.
Identifikasi pemilik akun istimewa yang sesuai yang dapat membuat akun Anda.
Konfirmasi detail akun Anda setelah dibuat di buku besar.
Sebelum memulai
Untuk menyelesaikan panduan ini, Anda memerlukan hal berikut:
Project Google Cloud dengan Universal Ledger API diaktifkan.
Peran IAM seperti
roles/universalledger.networkViewersehingga Anda setidaknya dapat membuat kueri status akun dalam jaringan Universal Ledger.Project Google Cloud dengan Cloud KMS diaktifkan.
Selama pengujian, project ini dapat sama dengan project yang mengaktifkan Universal Ledger API.
Dalam produksi, sebaiknya Anda:
- Gunakan project khusus untuk resource Cloud KMS Anda, yang terpisah dari resource Google Cloud lainnya.
- Buat project Google Cloud terpisah untuk mengelola kunci Cloud KMS untuk setiap jaringan Universal Ledger yang Anda gunakan.
Peran IAM Admin Cloud KMS (
roles/cloudkms.admin) di project dengan Cloud KMS yang diaktifkan, atau di resource induk.
Membuat kunci penandatanganan asimetris
Setiap akun yang beroperasi di Universal Ledger memerlukan pasangan kunci publik-pribadi penandatanganan asimetris. Kunci pribadi digunakan untuk menandatangani transaksi, dan kunci publik didaftarkan di buku besar untuk mengidentifikasi akun Anda dan memverifikasi tanda tangan.
Langkah-langkah berikut akan memandu Anda membuat pasangan kunci yang sesuai menggunakan Cloud KMS dan mengambil kunci publik. Anda dapat menggunakan pendekatan pengelolaan kunci lainnya selama menghasilkan kunci dan tanda tangan yang kompatibel dengan persyaratan Universal Ledger, seperti kunci ECDSA P-256 dengan ringkasan SHA-256. Untuk mengetahui detail tentang format kunci yang didukung, lihat referensi
KeyFormat.
-
Di konsol Google Cloud , aktifkan Cloud Shell.
Tetapkan project default:
gcloud config set project KEYS_PROJECTGanti
KEYS_PROJECTdengan ID project yang akan digunakan untuk resource Cloud KMS Anda.Jika belum, buat key ring untuk menyimpan kunci Anda menggunakan perintah
gcloud kms keyrings create:gcloud kms keyrings create KEY_RING \ --location=KEY_LOCATIONGanti kode berikut:
KEY_RING: nama key ring yang akan dibuat, misalnyatest-gcul-keys. Nama ini untuk kebutuhan organisasi Anda sendiri dan tidak perlu dicatat dalam buku besar.KEY_LOCATION: Google Cloud lokasi key ring, misalnyaglobal.
Untuk setiap akun yang ingin Anda gunakan di buku besar, buat kunci penandatanganan asimetris untuk akun tersebut menggunakan perintah
gcloud kms keys create:gcloud kms keys create KEY_NAME \ --keyring=KEY_RING \ --location=KEY_LOCATION \ --purpose="asymmetric-signing" \ --default-algorithm="ec-sign-p256-sha256"Ganti kode berikut:
KEY_NAME: nama kunci yang akan dibuat, misalnyausd-operatorataueur-clearinghouse. Nama ini ditujukan untuk kebutuhan organisasi Anda sendiri dan tidak perlu dicatat di buku besar.KEY_RING: nama key ring untuk menyimpan kunci.KEY_LOCATION: Google Cloud lokasi untuk kunci.
Tindakan ini akan membuat pasangan kunci ECDSA pada Kurva P-256 dengan ringkasan SHA-256 seperti yang didukung oleh Universal Ledger. Untuk daftar format yang didukung, lihat referensi
KeyFormat.Ambil bagian kunci publik dari versi kunci menggunakan perintah
gcloud kms keys versions get-public-key:gcloud kms keys versions get-public-key KEY_VERSION \ --key=KEY_NAME \ --keyring=KEY_RING \ --location=KEY_LOCATIONGanti kode berikut:
KEY_VERSION: versi kunci yang akan didapatkan, ini adalah1untuk kunci yang baru dibuat.KEY_NAME: nama kunci.KEY_RING: nama key ring yang berisi kunci.KEY_LOCATION: Google Cloud lokasi kunci.
Perintah ini menampilkan kunci publik dalam format yang dienkode PEM (
KEY_FORMAT_PEM_EC_P256_SHA256) yang cocok untuk digunakan dengan Universal Ledger API seperti:-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJ/vWkd5wgakFbVD25k8WM9Ll6We+ c8RVDS0R4G8xetsmFjfNW/ZxwWeB86IvMjxY8ZsdU9+W7BL5YM6rUB5yCQ== -----END PUBLIC KEY-----
Mengidentifikasi siapa yang dapat membuat akun Anda
Jenis akun yang ingin Anda buat menentukan akun istimewa di buku besar yang memiliki izin untuk membuatnya. Anda harus mengidentifikasi pemilik akun istimewa tersebut. Untuk mempelajari jenis akun di Universal Ledger, lihat Konsep utama.
| Jenis akun | Dibuat oleh | Mengirimkan transaksi |
|---|---|---|
| Operator Mata Uang | Operator Platform | CreateCurrencyOperator |
| Pusat Informasi | Operator Mata Uang | CreateClearinghouse |
| Account Manager | Operator Mata Uang | CreateAccountManager |
| Pengelola Token | Operator Mata Uang | CreateTokenManager |
| Akun Pengguna | Account Manager | CreateAccount |
Setelah diidentifikasi, Anda harus mengoordinasikan dan membagikan detail berikut kepada pemilik akun istimewa yang dapat membuat akun Anda:
- Nama jaringan tempat Anda ingin membuat akun. Untuk mengetahui daftar region yang didukung, lihat Jaringan dan region yang tersedia.
- Bagian publik kunci penandatanganan asimetris Anda dan
KeyFormatyang sesuai. Jika Anda mengikuti perintahgclouddalam panduan ini, formatnya adalahKEY_FORMAT_PEM_EC_P256_SHA256. - String komentar akun dengan informasi relevan apa pun untuk dicatat dalam buku besar yang terkait dengan akun baru Anda. Ini adalah nilai buram yang disimpan di buku besar, tetapi tidak ditafsirkan oleh Universal Ledger. Setelah dibuat, kolom ini tidak dapat diubah dan dapat dibaca oleh siapa pun yang memiliki akses ke jaringan.
- Detail tambahan yang diperlukan untuk mengisi transaksi yang akan dikirimkan
saat membuat akun. Misalnya, untuk membuat Operator Mata Uang, Anda juga perlu menentukan
currencyyang akan dikelola oleh operator baru yang akan dibuat.
Selama Pratinjau, hubungi kontak Anda di Google jika Anda tidak yakin siapa pemilik akun istimewa yang relevan untuk kasus penggunaan Anda.
Konfirmasi bahwa akun Anda telah dibuat
Setelah transaksi yang dikirimkan oleh akun istimewa berhasil
dieksekusi dan diselesaikan di buku besar, respons dari metode
QueryTransactionState
akan menyertakan
TransactionCertificate
dengan peristiwa transaction_output yang berisi ID akun yang baru dibuat.
ID akan terlihat mirip dengan contoh berikut:
1:USR:XTS:025sAZ55EqGKF6vpXEpSS8X891nNDEQU9yFQKYkcFzAb6
Anda dapat mengonfirmasi bahwa akun baru Anda ada di buku besar dengan mengirimkan permintaan REST berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://universalledger.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/NETWORK_NAME:queryAccount?account_id=ACCOUNT_ID
Ganti kode berikut:
PROJECT_ID: ID project tempat Universal Ledger API diaktifkan.LOCATION: lokasi endpoint yang akan dijangkau.NETWORK_NAME: nama jaringan tempat akun Anda dibuat.ACCOUNT_ID: ID akun yang baru dibuat.
Anda akan melihat output yang mirip dengan berikut ini:
{
"account": {
"publicKey": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFSi92V2tkNXdnYWtGYlZEMjVrOFdNOUxsNldlKwpjOFJWRFMwUjRHOHhldHNtRmpmTlcvWnh3V2VCODZJdk1qeFk4WnNkVTkrVzdCTDVZTTZyVUI1eUNRPT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0t",
"roundId": "10962032",
"comment": "My Test Account",
"userDetails": {
"accountManager": {
"id": "1:ACT:XTS:02f4VSHyPsXeMZmcogbNx7bP4kfn5DYvc7d2K52RYAFd3"
},
"tokenManager": {
"id": "1:TKN:XTS:024fqJS87dJ94ETN9PGhTCGd86btXj9iyWLxGQWgC3dde"
},
"roles": [
"ROLE_PAYER",
"ROLE_RECEIVER"
],
"accountStatus": "ACCOUNT_STATUS_ACTIVE",
}
}
}
Langkah berikutnya
- Pelajari cara mengirim permintaan RPC ke Universal Ledger API.
- Pelajari transaksi yang dapat Anda kirimkan menggunakan akun baru Anda.