Skip to content

Add Canton Network POC #5

@pegvin

Description

@pegvin

Canton Transaction POC in JS and C/C++:

  1. Create keypair at this derivation path from mnemonic: Derivation path: m/44’/6767’/0’/0’/0’ (use ed25519)
  2. Derive partyId from public key
  3. Run a local dev net using docker on your local machine. Ref: https://docs.dev.sync.glocbal/app_dev/testing/localnet.html
  4. Allocate external party on participant node: Ref: https://docs.digitalasset.com/integrate/devnet/party-management/index.html. partyId needs to be allocated on participant node in order to be able to use the network.
    Steps:
    • Prepare txn in JS
    • Parse (proto deserialise) the prepared txn in C/C++
    • Validate, hash the proto serialized transactions (see multihashing from canton-wallet-sdk) and sign using the private key
  5. Send/Tap some CC in your partyId
  6. Implement Send from your account to some other account: Ref: https://docs.digitalasset.com/integrate/devnet/preparing-and-signing-transactions/index.html. Steps:
  7. Implement Accept choice on any pending txn: Ref: https://docs.digitalasset.com/integrate/devnet/token-standard/index.html#accepting-or-rejecting-a-2-step-transfer
    • Prepare Accept txn in JS
    • Rest steps same as Send: Show txn type as well.

General References:

  1. https://docs.digitalasset.com/index.html
  2. https://docs.dev.sync.global/app_dev/testing/localnet.html
  3. https://github.com/hyperledger-labs/splice-wallet-kernel (Wallet SDK/Lib to be used, Can check source code for better understanding)
  4. Protobuf docs: https://protobuf.dev/
  5. Prepared Transaction (Send, Accept, Tap) Proto: https://github.com/hyperledger-labs/splice-wallet-kernel/blob/main/core/ledger-proto/src/_proto/com/daml/ledger/api/v2/interactive/interactive_submission_service.ts
  6. Topology txn Proto: https://github.com/hyperledger-labs/splice-wallet-kernel/blob/main/core/ledger-proto/src/_proto/com/digitalasset/canton/topology/admin/v30/topology_manager_write_service.d.ts

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions