ZeroComm is a Go implementation of a novel solution which enables decentralized secure messaging with both peer-to-peer and group communication, while combining DIDComm framework and ZeroMQ transport protocol. This prototype was researched and designed as a thesis project.
Please refer to the documentation to find more information about the requirements, architecture, design, implementation and performance evaluation of the solution.
Supported features:
- Generating invitations to connect with agents
- Connecting via invitations
- Peer-to-peer communication
- Creating a group
- Joining a group
- Group messaging
- Leaving a group
- Fetching group information
- Discover services of the agent
Follow the steps listed below to start an agent.
- Clone the repository
- Build from the source code by running
go build
command in the parent directory - Start the agent. eg:
./didcomm-prober -label=alice -port=6001 -pub_port=7001 -mock_port=8001 -mock -v
- Press
c
and enter to proceed
label
: display name of the agentport
: port for peer-to-peer communicationpub_port
: port for group communicationmock_port
: port for testing purposesmock
: if used, enables mocking endpointsv
: if used, prints the logs of the agent
Dependency | Version | Description |
---|---|---|
crypto | v0.0.0 | This repository holds supplementary Go cryptography libraries |
sys | v0.0.0 | This repository holds supplemental Go packages for low-level interactions with the operating system. |
zmq4 | v1.2.9 | A Go interface to ZeroMQ version 4 |
compress | v1.15.14 | Optimized Go Compression Packages |
aurora | v0.0.0 | Golang ultimate ANSI-colors that supports Printf/Sprintf methods |
mux | v1.7.3 | A powerful HTTP router and URL matcher for building Go web servers with 🦍 |
gofuzz | v1.2.0 | Fuzz testing for go. |
uuid | v1.1.1 | Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services. |
btcutil | v1.0.3 | Provides bitcoin-specific convenience functions and types |
libsodium-go | v0.0.0 | A complete overhaul of the Golang wrapper for libsodium |
zerolog | v1.22.0 | Zero Allocation JSON Logger |
log | v1.2.1 |