/indy-besu

Primary LanguageRustApache License 2.0Apache-2.0

Indy Besu ledger

Goals and ideas

  • Provide a replacement for Hyperledger Indy ecosystem that provides support for verifiable credentials:
    • Components to replace:
    • Capability to migrate the data from the original Indy Ledger
  • Distributed ledger requirements:
    • Public Permissioned Blockchain
      • Control the validator nodes
      • Control the user permissions
    • EVM compatible Blockchain
      • Capability to deploy on different networks
    • Based on existing open-source blockchain framework with a good performance, sufficient adoption, and wide community
    • Capability to work without tokens and fees
    • Stable consensus protocol
  • Functional requirements:
    • Interoperability:
      • Capability to use existing DID's and identifiers:
        • Support indy DID method
        • Support sov DID method
        • Identifiers previously stored on the client side should be resolvable on the new Ledger
      • Capability to use the ledger as an AnonCreds Registry
      • Compatibility with the latest AnonCreds Specification
    • Extensibility:
      • Capability to integrate new pieces of functionality easily
      • Capability to use ETHR DID method
    • Do only basic state consistency validation

Design documentation

See design document covering the main ledger aspects.

Running local network

Prerequisites

⚠️ Note: If on MacOS or Windows, please ensure that you allow docker to use upto 4G of memory under the Resources section. The Docker for Mac and Docker Desktop sites have details on how to do this at the " Resources" heading

Commands

  • Start the network: - run all services inside the docker containers

    ./network/scripts/run.sh
  • Start the network with Blocksout explorer: - run all services inside the docker containers

    ./network/scripts/run.sh --blockscout

    or

    ./network/scripts/run.sh -b
  • Stop the network: run the entire network, and you can resume where it left off with ./resume.sh

    ./network/scripts/stop.sh
  • Remove the network: stop and then remove all containers and images

    ./network/scripts/remove.sh

Managing smart contracts

See README.md.

Client library

Rust library representing a convenient client for connecting to an Indy-Besu node, building and executing transactions and queries.

Contributing

Pull requests are welcome! Please read our contributions guide and submit your PRs. We enforce developer certificate of origin (DCO) commit signing. See guidance here.

We also welcome issues submitted about problems you encounter in using Indy-Besu, VDR or any of the VDR wrappers.

License

Apache License Version 2.0