Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • network/gdev-800 protected
  • cgeek/issue-297-cpu
  • gdev-800-tests
  • update-docker-compose-rpc-squid-names
  • fix-252
  • 1000i100-test
  • hugo/tmp-0.9.1
  • network/gdev-803 protected
  • hugo/endpoint-gossip
  • network/gdev-802 protected
  • hugo/distance-precompute
  • network/gdev-900 protected
  • tuxmain/anonymous-tx
  • debug/podman
  • hugo/195-doc
  • hugo/195-graphql-schema
  • hugo-tmp-dockerfile-cache
  • release/client-800.2 protected
  • release/runtime-800 protected
  • gdev-900-0.10.1 protected
  • gdev-900-0.10.0 protected
  • gdev-900-0.9.2 protected
  • gdev-800-0.8.0 protected
  • gdev-900-0.9.1 protected
  • gdev-900-0.9.0 protected
  • gdev-803 protected
  • gdev-802 protected
  • runtime-801 protected
  • gdev-800 protected
  • runtime-800-bis protected
  • runtime-800 protected
  • runtime-800-backup protected
  • runtime-701 protected
  • runtime-700 protected
  • runtime-600 protected
  • runtime-500 protected
  • v0.4.1 protected
  • runtime-401 protected
  • v0.4.0 protected
40 results

manual.md

Blame
    • Pascal Engélibert's avatar
      4234da98
      Distance Oracle (!105) · 4234da98
      Pascal Engélibert authored and Hugo Trentesaux's avatar Hugo Trentesaux committed
      * Fix distance-oracle EvaluationPool type
      
      * Remove instanciation and dep to certification
      
      * Doc comments, make max size params const
      
      * Fix default distance dir
      
      * Rename pool accessors
      
      * doc add READMEs
      
      * fix(distance): Remember account_id who reserved
      
      * Log, comments, crate author
      
      * feat: distance
      
      * integration tests, expiration
      
      * fixes & working end2end tests
      
      * fix(distance): max_depth, compute min_certs_for_referee
      
      * fix(distance): add distance pallet to gtest, g1
      
      * test(distance): WiP end2end test
      
      * feat: distance
      4234da98
      History
      Distance Oracle (!105)
      Pascal Engélibert authored and Hugo Trentesaux's avatar Hugo Trentesaux committed
      * Fix distance-oracle EvaluationPool type
      
      * Remove instanciation and dep to certification
      
      * Doc comments, make max size params const
      
      * Fix default distance dir
      
      * Rename pool accessors
      
      * doc add READMEs
      
      * fix(distance): Remember account_id who reserved
      
      * Log, comments, crate author
      
      * feat: distance
      
      * integration tests, expiration
      
      * fixes & working end2end tests
      
      * fix(distance): max_depth, compute min_certs_for_referee
      
      * fix(distance): add distance pallet to gtest, g1
      
      * test(distance): WiP end2end test
      
      * feat: distance

    Manual for wallet developers

    This functional documentation presents how wallets can interact with the blockchain. It is intended to complete the runtime calls documentation in a runtime-specific way to fit the real needs of wallet developers.

    Only ĞDev is covered for now.

    Notations

    1 ĞD = 100 units

    Account existence

    An account exists if and only if it contains at least the existential deposit (2 ĞD).

    Become member

    Only use identity pallet. The membership calls are disabled.

    1. The account that wants to gain membership needs to exists.
    2. Any account that already has membership and respects the identity creation period can create an identity for another account, using identity.createIdentity.
    3. The account has to confirm its identity with a name, using identity.confirmIdentity. The name must be ASCII alphanumeric, punctuation or space characters: /^[-!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~a-zA-Z0-9 ]{3,64}$/ (additionally, trailing spaces and double spaces are forbidden, as a phishing countermeasure). If the name is already used, the call will fail.
    4. 4 different member accounts must certify the account using cert.addCert.
    5. The distance evaluation must be requested for the pending identity using distance.evaluateDistance.
    6. 3 sessions later, if the distance rule is respected, identity.validateIdentity can be called.

    Change key

    A member can request a key change via the identity.change_onwner_key call. It needs the following SCALE encoded (see SCALE encoding section below) payload:

    • The new owner key payload prefix (rust definition: b"icok")
    • the genesis block hash. (rust type [u8; 32] (H256))
    • The identity index (rust type u64)
    • The old key (rust type u64)

    This payload must be signed with the new key.

    Revoke an identity

    Revoking an identity makes it lose its membership, hence UD creation and governance rights. Other data such as balance will remain.

    This feature is useful in case the user has lost their private key since the revocation document can be made in advance.

    Generate the revocation payload

    The revocation needs this SCALE encoded (see SCALE encoding section below) payload:

    • The revocation payload prefix (rust definition: b"revo")
    • The identity index (rust type u64)
    • the genesis block hash. (rust type [u8; 32] (H256))

    This payload must be signed with the corresponding revocation key.

    Effectively revoke the identity

    1. From any origin that can pay the fee, use identity.revokeIdentity with the revocation payload.

    SCALE encoding

    SCALE codec documentation: https://docs.substrate.io/reference/scale-codec/.

    At the end of this documentation you'll find links to SCALE codec implementation for other languages.