go/

directory
v2.145.0 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2020 License: Apache-2.0, MIT

README

Berty go/

go.dev reference Code coverage

Please, read the main README.md file first.

This folder contains most of the go code needed by the project.

Download

Main binary: go get -u berty.tech/berty/v2/go/cmd/berty

Fetch library to your go cache: go get -u berty.tech/berty/v2

Main components

  • ./cmd/...: binaries / entrypoints
    • go get -v berty.tech/berty/v2/go/cmd/berty
  • ./pkg/...: packages especially made to be imported by other projects
  • ./internal/: internal packages that can be useful to understand how things are working under the hood
    • you won't be able to import them directly from your projects; if you think that an internal package should be made public, open an issue
  • ./framework: bridges used by mobile apps

Usage

Daemon
foo@bar:~$ berty daemon
2020-09-16T13:13:58Z	INFO 	bty               	IPFS API server listening	{"addr": "/ip4/127.0.0.1/tcp/36427"}
...

Now you can interact with the daemon API.

Mini

TODO

Share Invite
foo@bar:~$ berty share-invite
█████████████████████████████████████████████████
█████████████████████████████████████████████████
████ ▄▄▄▄▄ ██▄▀ █▄  ▀ ▀▀▀█  ▄▀ ▀▀ ▄▀▀█ ▄▄▄▄▄ ████
████ █   █ █▄▄█▄▄  █▀█▀ █▀▀█ █ █ ▀ █ █ █   █ ████
████ █▄▄▄█ ██▀▄▄▄ ▄▀ ▀  ▀     █ ▄▀▀▀██ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ █ ▀ ▀▄▀▄▀▄▀ ▀ █▄▀ ▀▄▀▄▀ █▄▄▄▄▄▄▄████
████▄ ▄▀▄▄▄▄ ▀▀▄▄  ▀ █▀▀▀██▄▀▀██▀  █   ▀█▀▄▀█████
████▄█ ▀▄▄▄█▀██▀▄▀ █▀ ▀▀▄▀▀█▀  ██ ▄██ ▄█▄██ ▄████
████▀█▄▀ █▄████▀ ▀ ▀ █▄▄ ▄▄▀  ▀▀▀  █▀  ██▄██▀████
██████▄▄▄▄▄█  ▀▄ ▀█▄  ▀▀  ▄██▀██▄▀ ██▄▀▄▀██▄▄████
████▀  ▄▄ ▄▄▀▄█  ▄▀▄▀███ ▀██▀▀▀▄▀▀█▀ ▀ ████ ▄████
████ ▄ ▄▄▀▄▀▀▄██▄▄██ ▄█▀▀ ██ ▀█▀▀ █▀▀▀▀  █▄  ████
████  █ ▄▀▄▀▄█▄▀█▀█ ████ ▄█▄█▀▀▄▀▀█ ▀ ▄██ █  ████
████   ▄ █▄ ▀▀▀▀█▀▄▀█  ▀▀▀ ▀█ ▀▀▀▀█▀██ ▄███  ████
████▄▄▄  ▄▄▄ █▀█▀▀██  █  ▄   ▀██▄▄█▄█  ██▀▀█ ████
█████▄ ▀ ▀▄███▀▀ ▀ ██▀ ▀▄ ██▄  ▀█▀▄▀███▄▀ ▄█ ████
████▄▄▄███▄▄   ▀ ▀ ▀ ▀ ▄█ █▀ ▀██▀█▀▄▀   █ █ ▀████
████▄▀█▄▀█▄█▀▀█▄  ▄▄  ▀▀▀ ▄█▀▀███ ▄█▀█▀▄ ▄█▄▄████
████▄█▄▄▄█▄█   ▄ ██ ▀▄█▀▀▀█▀ ▀▀██▄▀▄ ▄▄▄ ▀▀▄▄████
████ ▄▄▄▄▄ █   █▀▄██▄▄█▀█▀ █▀ █▀▀▀▄▄ █▄█ ▀█ ▄████
████ █   █ █▄▄▀▀███ ████  █▄█▀▀  ▀▀█▄▄▄  ▀▀▄▀████
████ █▄▄▄█ █ ▀▀▀█▀ ▀█ ▄▀▀ ██   █  ▄▄▄▀▀█ ▄█ ▄████
████▄▄▄▄▄▄▄█▄███▄▄██▄▄█▄█▄▄█▄███▄▄█▄▄▄█▄██▄▄▄████
█████████████████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
html url: https://berty.tech/id#key=CiD1Djrm1-syIDWDSOBNwx-JI2F1XEhWT_KgjjSnwMh4pBIgdrL_6HFbckM7odjIk_yStXR6HXVCuzP4stSFV7I3K7M&name=demo
Info
foo@bar:~$ berty info
{
  "rlimitCur": "1024",
  "numGoroutine": "422",
  "nofile": "41",
  "startedAt": "1600262034",
  "numCpu": "12",
  "goVersion": "go1.14",
  "operatingSystem": "linux",
  "hostName": "fwrz",
  "arch": "amd64",
  "version": "v2.143.0",
  "vcsRef": "b143cf09",
  "buildTime": "1600261846",
  "selfRusage": "{\"Utime\":{\"Sec\":0,\"Usec\":901753},\"Stime\":{\"Sec\":0,\"Usec\":183852},\"Maxrss\":79672,\"Ixrss\":0,\"Idrss\":0,\"Isrss\":0,\"Minflt\":7969,\"Majflt\":0,\"Nswap\":0,\"Inblock\":0,\"Oublock\":0,\"Msgsnd\":0,\"Msgrcv\":0,\"Nsignals\":0,\"Nvcsw\":8422,\"Nivcsw\":23}",
  "childrenRusage": "{\"Utime\":{\"Sec\":1,\"Usec\":602041},\"Stime\":{\"Sec\":0,\"Usec\":308153},\"Maxrss\":32584,\"Ixrss\":0,\"Idrss\":0,\"Isrss\":0,\"Minflt\":8375,\"Majflt\":0,\"Nswap\":0,\"Inblock\":0,\"Oublock\":0,\"Msgsnd\":0,\"Msgrcv\":0,\"Nsignals\":0,\"Nvcsw\":11539,\"Nivcsw\":458}",
  "rlimitMax": "1048576"
}
--help
foo@bar:~$ berty -h
USAGE
  berty [global flags] <subcommand> [flags] [args...]

SUBCOMMANDS
  daemon        start a full Berty instance (Berty Protocol + Berty Messenger)
  mini          start a terminal-based mini berty client (not fully compatible with the app)
  banner        print the Berty banner of the day
  version       print software version
  info          display system info
  groupinit     initialize a new multi-member group
  share-invite  share invite link on your terminal or in the dev channel on Discord
  token-server  token server, a basic token server issuer without auth or logging

FLAGS
  -log.file ...                             if specified, will log everything in JSON into a file and nothing on stderr
  -log.filters info+:bty*,-*.grpc error+:*  zapfilter configuration
  -log.format color                         can be: json, console, color, light-console, light-color
  -log.tracer ...                           specify "stdout" to output tracing on stdout or <hostname:port> to trace on jaeger

foo@bar:~$ berty daemon -h
USAGE
  berty [global flags] daemon [flags]

FLAGS
  -node.display-name moul (cli)                   display name
  -node.listeners /ip4/127.0.0.1/tcp/9091/grpc    gRPC API listeners
  -node.no-notif false                            disable desktop notifications
  -node.rebuild-db false                          reconstruct messenger DB from OrbitDB logs
  -node.webui-listener :3000                      IPFS WebUI listener
  -p2p.ipfs-listeners /ip4/127.0.0.1/tcp/0        IPFS listeners
  -p2p.local-discovery true                       local discovery
  -p2p.max-backoff 1m0s                           maximum p2p backoff duration
  -p2p.min-backoff 1s                             minimum p2p backoff duration
  -p2p.rdvp :dev:                                 rendezvous point maddr
  -store.dir /home/moul/.config/berty-tech/berty  root datastore directory
  -store.inmem false                              disable datastore persistence

foo@bar:~$ berty mini -h
USAGE
  berty [global flags] mini [flags]

FLAGS
  -mini.group ...                                 group to join, leave empty to create a new group
  -node.display-name moul (cli)                   display name
  -node.listeners ...                             gRPC API listeners
  -node.no-notif false                            disable desktop notifications
  -node.rebuild-db false                          reconstruct messenger DB from OrbitDB logs
  -node.remote-addr ...                           remote Berty gRPC API address
  -node.webui-listener ...                        IPFS WebUI listener
  -p2p.ipfs-listeners /ip4/127.0.0.1/tcp/0        IPFS listeners
  -p2p.local-discovery true                       local discovery
  -p2p.max-backoff 1m0s                           maximum p2p backoff duration
  -p2p.min-backoff 1s                             minimum p2p backoff duration
  -p2p.rdvp :dev:                                 rendezvous point maddr
  -store.dir /home/moul/.config/berty-tech/berty  root datastore directory
  -store.inmem false                              disable datastore persistence

foo@bar:~$ berty banner -h
USAGE
  berty [global flags] banner [flags]

FLAGS
  -light false   light mode
  -random false  pick a random quote

foo@bar:~$ berty version -h
USAGE
  version

foo@bar:~$ berty info -h
USAGE
  berty [global flags] info [flags]

FLAGS
  -info.refresh 0s                                refresh every DURATION (0: no refresh)
  -node.display-name moul (cli)                   display name
  -node.no-notif false                            disable desktop notifications
  -node.rebuild-db false                          reconstruct messenger DB from OrbitDB logs
  -node.remote-addr ...                           remote Berty gRPC API address
  -p2p.ipfs-listeners /ip4/127.0.0.1/tcp/0        IPFS listeners
  -p2p.local-discovery true                       local discovery
  -p2p.max-backoff 1m0s                           maximum p2p backoff duration
  -p2p.min-backoff 1s                             minimum p2p backoff duration
  -p2p.rdvp :dev:                                 rendezvous point maddr
  -store.dir /home/moul/.config/berty-tech/berty  root datastore directory
  -store.inmem false                              disable datastore persistence

foo@bar:~$ berty groupinit -h
USAGE
  groupinit

foo@bar:~$ berty share-invite -h
USAGE
  berty [global flags] share-invite [flags]

FLAGS
  -dev-channel false                              post qrcode on dev channel
  -no-term false                                  do not print the QR code in terminal
  -node.display-name moul (cli)                   display name
  -node.no-notif false                            disable desktop notifications
  -node.rebuild-db false                          reconstruct messenger DB from OrbitDB logs
  -node.remote-addr ...                           remote Berty gRPC API address
  -p2p.ipfs-listeners /ip4/127.0.0.1/tcp/0        IPFS listeners
  -p2p.local-discovery true                       local discovery
  -p2p.max-backoff 1m0s                           maximum p2p backoff duration
  -p2p.min-backoff 1s                             minimum p2p backoff duration
  -p2p.rdvp :dev:                                 rendezvous point maddr
  -store.dir /home/moul/.config/berty-tech/berty  root datastore directory
  -store.inmem false                              disable datastore persistence

foo@bar:~$ berty token-server -h
USAGE
  berty [global flags] token-server [flags]

FLAGS
  -l 8080      http listener
  -s ...       comma separated list of supported services as name@ip:port
  -secret ...  base64 encoded secret
  -sk ...      base64 encoded signature key

Directories

Path Synopsis
cmd
berty
Berty is the main CLI entrypoint to manage the Berty ecosystem (client, server, relay, dev).
Berty is the main CLI entrypoint to manage the Berty ecosystem (client, server, relay, dev).
berty/mini
Package mini contains main helpers to start a term-based Berty mini client.
Package mini contains main helpers to start a term-based Berty mini client.
rdvp
rdvp is a service to hold Berty's rendezvous point for faster peer discovery.
rdvp is a service to hold Berty's rendezvous point for faster peer discovery.
framework
bertybridge
Package bertybridge is the main gomobile entrypoint, used to generate iOS and Android frameworks.
Package bertybridge is the main gomobile entrypoint, used to generate iOS and Android frameworks.
internal
cryptoutil
Package cryptoutil contains generic & stateless crypto helpers.
Package cryptoutil contains generic & stateless crypto helpers.
discordlog
discordlog is an unsafe package used during development to log info directly on the Berty's Discord server.
discordlog is an unsafe package used during development to log info directly on the Berty's Discord server.
grpcutil
Package grpcutil contains gRPC lazy codecs, messages and a buf-based listener.
Package grpcutil contains gRPC lazy codecs, messages and a buf-based listener.
handshake
Package handshake implements a capability-based handshake.
Package handshake implements a capability-based handshake.
ipfsutil
Package ipfsutil contains helpers around IPFS (logging, datastore, networking, core API, ...).
Package ipfsutil contains helpers around IPFS (logging, datastore, networking, core API, ...).
testutil
Package testutil contains testing helpers (logging, slow skipping).
Package testutil contains testing helpers (logging, slow skipping).
tinder
Package tinder is a multi-driver service backed by a cache.
Package tinder is a multi-driver service backed by a cache.
pkg
banner
Package banner generates ASCII picture of the Berty logo with a message.
Package banner generates ASCII picture of the Berty logo with a message.
bertymessenger
Package bertymessenger is a reverse proxy.
Package bertymessenger is a reverse proxy.
bertyprotocol
Package bertyprotocol is a reverse proxy.
Package bertyprotocol is a reverse proxy.
bertytypes
This package is generated with Protobuf.
This package is generated with Protobuf.
errcode
Package errcode contains the list of Berty error codes.
Package errcode contains the list of Berty error codes.

Jump to

Keyboard shortcuts

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