zero-comm

DIDComm agent with group communication

https://github.com/yasirur/zero-comm

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

DIDComm agent with group communication

Basic Info
  • Host: GitHub
  • Owner: YasiruR
  • License: mit
  • Language: Go
  • Default Branch: main
  • Homepage:
  • Size: 8.53 MB
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 3
Created over 3 years ago · Last pushed about 2 years ago
Metadata Files
Readme License Citation

readme.md

ZeroComm

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

Usage

Follow the steps listed below to start an agent.

  1. Clone the repository
  2. Build from the source code by running go build command in the parent directory
  3. Start the agent. eg: ./didcomm-prober -label=alice -port=6001 -pub_port=7001 -mock_port=8001 -mock -v
  4. Press c and enter to proceed

alt text

Parameters

  • label: display name of the agent
  • port: port for peer-to-peer communication
  • pub_port: port for group communication
  • mock_port: port for testing purposes
  • mock: if used, enables mocking endpoints
  • v: if used, prints the logs of the agent

Internal Architecture

alt text

Component stack

alt text

Dependencies

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

Owner

  • Login: YasiruR
  • Kind: user

Citation (citation.cff)

cff-version: 1.0.0
message: "For citation purposes"
authors:
  - family-names: Witharanage
    given-names: Yasiru
#     orcid: https://orcid.org/1234-5678-9101-1121
title: "Zero-Comm"
version: 3.0.0
# doi: 10.5281/zenodo.1234
date-released: 2023-04-01

GitHub Events

Total
Last Year

Dependencies

go.mod go
  • github.com/GoKillers/libsodium-go v0.0.0-20171022220152-dd733721c3cb
  • github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce
  • github.com/google/gofuzz v1.2.0
  • github.com/google/uuid v1.1.1
  • github.com/gorilla/mux v1.7.3
  • github.com/klauspost/compress v1.15.14
  • github.com/logrusorgru/aurora v0.0.0-20200102142835-e9ef32dff381
  • github.com/pebbe/zmq4 v1.2.9
  • github.com/rs/zerolog v1.22.0
  • github.com/tryfix/log v1.2.1
  • golang.org/x/crypto v0.0.0-20220214200702-86341886e292
  • golang.org/x/sys v0.0.0-20220209214540-3681064d5158
go.sum go
  • github.com/GoKillers/libsodium-go v0.0.0-20171022220152-dd733721c3cb
  • github.com/aead/siphash v1.0.1
  • github.com/btcsuite/btcd v0.20.1-beta
  • github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f
  • github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d
  • github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce
  • github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd
  • github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd
  • github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723
  • github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792
  • github.com/btcsuite/winsvc v1.0.0
  • github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e
  • github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495
  • github.com/davecgh/go-spew v1.1.0
  • github.com/fsnotify/fsnotify v1.4.7
  • github.com/golang/protobuf v1.2.0
  • github.com/google/gofuzz v1.2.0
  • github.com/google/uuid v1.1.1
  • github.com/gorilla/mux v1.7.3
  • github.com/hpcloud/tail v1.0.0
  • github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89
  • github.com/jrick/logrotate v1.0.0
  • github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23
  • github.com/klauspost/compress v1.15.14
  • github.com/logrusorgru/aurora v0.0.0-20200102142835-e9ef32dff381
  • github.com/onsi/ginkgo v1.6.0
  • github.com/onsi/ginkgo v1.7.0
  • github.com/onsi/gomega v1.4.3
  • github.com/pebbe/zmq4 v1.2.9
  • github.com/pkg/errors v0.9.1
  • github.com/rs/xid v1.2.1
  • github.com/rs/zerolog v1.22.0
  • github.com/tryfix/log v1.2.1
  • github.com/tryfix/traceable-context v1.0.1
  • github.com/yuin/goldmark v1.2.1
  • golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44
  • golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
  • golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550
  • golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d
  • golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
  • golang.org/x/crypto v0.0.0-20220214200702-86341886e292
  • golang.org/x/mod v0.3.0
  • golang.org/x/net v0.0.0-20180906233101-161cd47e91fd
  • golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3
  • golang.org/x/net v0.0.0-20190620200207-3b0461eec859
  • golang.org/x/net v0.0.0-20201021035429-f5854403a974
  • golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f
  • golang.org/x/sync v0.0.0-20190423024810-112230192c58
  • golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9
  • golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e
  • golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
  • golang.org/x/sys v0.0.0-20190412213103-97732733099d
  • golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f
  • golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4
  • golang.org/x/sys v0.0.0-20220209214540-3681064d5158
  • golang.org/x/text v0.3.0
  • golang.org/x/text v0.3.3
  • golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e
  • golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e
  • golang.org/x/tools v0.1.0
  • golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7
  • golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898
  • golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
  • gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
  • gopkg.in/fsnotify.v1 v1.4.7
  • gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7
  • gopkg.in/yaml.v2 v2.2.1