aries

package module
v0.1.3-0...-617a0de Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 25, 2020 License: Apache-2.0 Imports: 0 Imported by: 0

README

Release License Godocs

Build Status codecov Go Report Card

Hyperledger AriesFramework Go

Hyperledger Aries Framework Go enables trusted communication and data exchange based on interoperable distributed ledger technologies (DLTs) and peer-to-peer (P2P) interactions. We provide a flexible toolkit to enable the usage of decentralized identifiers (DIDs), DID-to-DID communications, verifiable credential exchange, transaction authorizations, and data communication protocols. From these building blocks, implementors can build agents, mediators and other DIDComm features in a manner that is agnostic to a particular DID network or governance framework.

We aim to provide Go implementations of:

We aim to enable usage of our protocol implementations in a wide variety of edge and cloud environments including servers, browsers, mobile, and devices. API bindings are supplied to enable these environments including:

  • Go
  • REST
  • JavaScript / WebAssembly
  • C (future)

We implement demonstrations and test cases, that require a ledger system, using DIF Sidetree protocol as this protocol enables generic decentralized ledger systems to operate as a DID network.

Documentation

Aries Framework Go documentation can be viewed at GoDoc. The project structure is described here.

The packages intended for end developer usage are within the pkg/client folder along with the main agent package (pkg/framework/aries).

The project can also be used as a DIDComm Router/Mediator.

Controller Bindings

Testing

Contributing

Found a bug? Ready to submit a PR? Want to submit a proposal for your grand idea? Follow our guidelines for more information to get you started!

License

Hyperledger Aries Framework Go is licensed under the Apache License Version 2.0 (Apache-2.0).

Hyperledger Aries Framework Go documentation is licensed under the Creative Commons Attribution 4.0 International License (CC-BY-4.0).

Documentation

Overview

Package aries enables Go developers to build solutions based on the Hyperledger Aries project (https://www.hyperledger.org/projects/aries).

Packages for end developer usage

pkg/framework/aries: The main package of the Aries Framework. This package enables creation of context based on provider options. This context is used by the client packages listed below. Reference: https://pkg.go.dev/github.com/hyperledger/aries-framework-go/pkg/framework/aries

pkg/client/didexchange: Provides did exchange protocol through SDK. Reference: https://pkg.go.dev/github.com/hyperledger/aries-framework-go/pkg/client/didexchange

pkg/controller/restapi/operation/didexchange: Provides did exchange protocol through restapi. Reference: https://pkg.go.dev/github.com/hyperledger/aries-framework-go/pkg/controller/restapi/operation/didexchange

Basic workflow

  1. Instantiate a aries instance using a provider options.
  2. Create a context using your aries instance.
  3. Create a client instance using its New func, passing the context.
  4. Use the funcs provided by each client to create your solution!
  5. Call aries.Close() to release resources.

Directories

Path Synopsis
cmd
pkg
client/didexchange
Package didexchange enables relationship between two agents via DID Exchange Protocol.
Package didexchange enables relationship between two agents via DID Exchange Protocol.
client/introduce
Package introduce is responsible for the introduction between agents.
Package introduce is responsible for the introduction between agents.
client/route
Package route enables the agent to register with the router.
Package route enables the agent to register with the router.
crypto/tinkcrypto
Package tinkcrypto provides the default implementation of the common pkg/common/api/crypto.Crypto interface and the SPI pkg/framework/aries.crypto interface It uses github.com/tink/go crypto primitives
Package tinkcrypto provides the default implementation of the common pkg/common/api/crypto.Crypto interface and the SPI pkg/framework/aries.crypto interface It uses github.com/tink/go crypto primitives
didcomm/messaging
Package messaging provides message service features which enables agent framework to handle any incoming DIDComm message based on their type and purpose.
Package messaging provides message service features which enables agent framework to handle any incoming DIDComm message based on their type and purpose.
didcomm/messaging/msghandler
Package msghandler dynamically maintains the list of registered message services.
Package msghandler dynamically maintains the list of registered message services.
didcomm/messaging/service/basic
Package basic provide basic message protocol features Any incoming message of type "https://didcomm.org/basicmessage/1.0/message" can be handled by registering `basic.MessageService`.
Package basic provide basic message protocol features Any incoming message of type "https://didcomm.org/basicmessage/1.0/message" can be handled by registering `basic.MessageService`.
didcomm/messaging/service/http
Package http provides http-over-didcomm message service features.
Package http provides http-over-didcomm message service features.
doc/signature/ed25519signature2018
Package ed25519signature2018 implements the Ed25519Signature2018 signature suite for the Linked Data Signatures [LD-SIGNATURES] specification.
Package ed25519signature2018 implements the Ed25519Signature2018 signature suite for the Linked Data Signatures [LD-SIGNATURES] specification.
doc/verifiable
Package verifiable implements Verifiable Credential and Presentation data model (https://www.w3.org/TR/vc-data-model).
Package verifiable implements Verifiable Credential and Presentation data model (https://www.w3.org/TR/vc-data-model).
framework/aries
Package aries provides a pluggable dependency framework, where implementors can customize primitives via Service Provider Interfaces (SPIs).
Package aries provides a pluggable dependency framework, where implementors can customize primitives via Service Provider Interfaces (SPIs).
internal/gomocks/client/introduce
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/client/issuecredential
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/didcomm/common/service
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/didcomm/dispatcher
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/didcomm/messenger
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/didcomm/protocol/introduce
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/didcomm/protocol/issuecredential
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/storage
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
kms

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL