Meminta akun baru

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.networkViewer sehingga 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.

  1. Di konsol Google Cloud , aktifkan Cloud Shell.

    Aktifkan Cloud Shell

  2. Tetapkan project default:

    gcloud config set project KEYS_PROJECT
    

    Ganti KEYS_PROJECT dengan ID project yang akan digunakan untuk resource Cloud KMS Anda.

  3. Jika belum, buat key ring untuk menyimpan kunci Anda menggunakan perintah gcloud kms keyrings create:

    gcloud kms keyrings create KEY_RING \
        --location=KEY_LOCATION
    

    Ganti kode berikut:

    • KEY_RING: nama key ring yang akan dibuat, misalnya test-gcul-keys. Nama ini untuk kebutuhan organisasi Anda sendiri dan tidak perlu dicatat dalam buku besar.
    • KEY_LOCATION: Google Cloud lokasi key ring, misalnya global.
  4. 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, misalnya usd-operator atau eur-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.

  5. 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_LOCATION
    

    Ganti kode berikut:

    • KEY_VERSION: versi kunci yang akan didapatkan, ini adalah 1 untuk 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 KeyFormat yang sesuai. Jika Anda mengikuti perintah gcloud dalam panduan ini, formatnya adalah KEY_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 currency yang 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