dela

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2024 License: BSD-3-Clause Imports: 4 Imported by: 14

README

DEDIS Ledger Architecture

This framework aims to deliver a modular approach to a public ledger implementation. This project is under heavy development at this stage. Don't consider using it for the moment.

Go lint Go test Coverage Status Go Report Card

Browse the doc at https://dedis.github.io/dela/, or directly in /docs


This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 825377.

Documentation

Overview

Package dela defines the logger.

Dela stands for DEDIS Ledger Architecture. It defines the modules that will be combined to deploy a distributed public ledger.

Dela is using a global logger with some default parameters. It is disabled by default and the level can be increased using a environment variable:

LLVL=trace go test ./...
LLVL=info go test ./...
LLVL=debug LOGF=$HOME/dela.log go test ./...

Index

Constants

View Source
const EnvLogFile = "LOGF"

EnvLogFile is the name of the environment variable to log in a given file.

View Source
const EnvLogLevel = "LLVL"

EnvLogLevel is the name of the environment variable to change the logging level.

Variables

View Source
var Logger = zerolog.New(consoleOut).Level(defaultLevel).
	With().Timestamp().Logger().
	With().Caller().Logger().
	Hook(promHook{})

Logger is a globally available logger instance. By default, it only prints error level messages but it can be changed through a environment variable.

View Source
var PromCollectors []prometheus.Collector

PromCollectors exposes Prometheus collectors created in Dela. By default Dela doesn't register the metrics. It is left to the user to use the registry of its choice and register the collectors. For example with the default:

prometheus.DefaultRegisterer.MustRegister(PromCollectors...)

Note that the collectors can be registered only once and will panic otherwise. This slice is not thread-safe and should only be initialized in init() functions.

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
cli
Package cli defines the Builder type, which allows one to build a CLI application in a modular way.
Package cli defines the Builder type, which allows one to build a CLI application in a modular way.
crypto
Package main provides a cli for crypto operations like generating keys or displaying specific key formats.
Package main provides a cli for crypto operations like generating keys or displaying specific key formats.
node
Package node defines the Builder type, which builds an CLI application to controle a node.
Package node defines the Builder type, which builds an CLI application to controle a node.
node/memcoin
Package main implements a ledger based on in-memory components.
Package main implements a ledger based on in-memory components.
ucli
Package ucli provides a cli builder implementation based on the urfave/cli library.
Package ucli provides a cli builder implementation based on the urfave/cli library.
contracts
access
Package access implements a native contract to handle access.
Package access implements a native contract to handle access.
access/controller
Package controller implements a controller for the access contract.
Package controller implements a controller for the access contract.
value
Package value implements a simple native contract that can store, delete, and display values.
Package value implements a simple native contract that can store, delete, and display values.
Package core implements commonly used tools.
Package core implements commonly used tools.
access
Package access defines the interfaces for Access Rights Controls.
Package access defines the interfaces for Access Rights Controls.
access/darc
Package darc implements Distributed Access Rights Controls.
Package darc implements Distributed Access Rights Controls.
access/darc/types
Package types implements the darc messages.
Package types implements the darc messages.
execution
Package execution defines the service to execute a step in a validation batch.
Package execution defines the service to execute a step in a validation batch.
execution/native
Package native implements an execution service to run native smart contracts.
Package native implements an execution service to run native smart contracts.
ordering
Package ordering defines the interface of the ordering service.
Package ordering defines the interface of the ordering service.
ordering/cosipbft
Package cosipbft implements an ordering service using collective signatures for the consensus.
Package cosipbft implements an ordering service using collective signatures for the consensus.
ordering/cosipbft/authority
Package authority defines the collective authority for cosipbft.
Package authority defines the collective authority for cosipbft.
ordering/cosipbft/blockstore
Package blockstore defines the different storage the ordering service is using.
Package blockstore defines the different storage the ordering service is using.
ordering/cosipbft/blocksync
Package blocksync defines a block synchronizer for the ordering service.
Package blocksync defines a block synchronizer for the ordering service.
ordering/cosipbft/blocksync/types
Package types implements the network messages for a synchronization.
Package types implements the network messages for a synchronization.
ordering/cosipbft/contracts/viewchange
Package viewchange implements a native smart contract to update the roster of a chain.
Package viewchange implements a native smart contract to update the roster of a chain.
ordering/cosipbft/controller
Package controller implements a minimal controller for cosipbft.
Package controller implements a minimal controller for cosipbft.
ordering/cosipbft/pbft
Package pbft defines a state machine to perform PBFT using collective signatures.
Package pbft defines a state machine to perform PBFT using collective signatures.
ordering/cosipbft/types
Package types implements the network messages for cosipbft.
Package types implements the network messages for cosipbft.
ordering/pow
Package pow implements a Proof-of-Work ordering service.
Package pow implements a Proof-of-Work ordering service.
store
Package store defines the primitives of a simple key/value storage.
Package store defines the primitives of a simple key/value storage.
store/hashtree
Package hashtree defines the specialization of the store as a Merkle tree.
Package hashtree defines the specialization of the store as a Merkle tree.
store/hashtree/binprefix
Package binprefix implements the hash tree interface by following the merkle binary prefix tree algorithm.
Package binprefix implements the hash tree interface by following the merkle binary prefix tree algorithm.
store/kv
Package kv defines the abstraction for a key/value database.
Package kv defines the abstraction for a key/value database.
store/kv/controller
Package controller implements a CLI controller for the key/value database.
Package controller implements a CLI controller for the key/value database.
txn
Package txn defines the abstraction of transactions.
Package txn defines the abstraction of transactions.
txn/pool
Package pool defines the interface for a transaction pool.
Package pool defines the interface for a transaction pool.
txn/pool/controller
Package controller implements a controller for the pool
Package controller implements a controller for the pool
txn/pool/gossip
Package gossip implements a transaction pool that is using a gossip protocol to spread the transactions to other participants.
Package gossip implements a transaction pool that is using a gossip protocol to spread the transactions to other participants.
txn/signed
Package signed is an implementation of the transaction abstraction.
Package signed is an implementation of the transaction abstraction.
txn/signed/controller
Package controller implements a CLI controller to inject a transaction manager.
Package controller implements a CLI controller to inject a transaction manager.
validation
Package validation defines a validation service that will apply a batch of transactions to a store snapshot.
Package validation defines a validation service that will apply a batch of transactions to a store snapshot.
validation/simple
Package simple implements a validation service that executes a batch of transactions sequentially.
Package simple implements a validation service that executes a batch of transactions sequentially.
Package cosi defines a collective signing protocol abstraction.
Package cosi defines a collective signing protocol abstraction.
flatcosi
Package flatcosi is a flat implementation of a collective signing so that the orchestrator will contact all the participants to require their signatures and then aggregate them to the final one.
Package flatcosi is a flat implementation of a collective signing so that the orchestrator will contact all the participants to require their signatures and then aggregate them to the final one.
threshold
Package threshold is a stream-based implementation of a collective signing so that the orchestrator contacts only a subset of the participants.
Package threshold is a stream-based implementation of a collective signing so that the orchestrator contacts only a subset of the participants.
threshold/types
Package types implements the threshold collective signature and its verifier.
Package types implements the threshold collective signature and its verifier.
Package crypto defines cryptographic primitives shared by the different modules of Dela.
Package crypto defines cryptographic primitives shared by the different modules of Dela.
bls
Package bls implements the cryptographic primitives using the BLS signature scheme and the BN256 elliptic curve.
Package bls implements the cryptographic primitives using the BLS signature scheme and the BN256 elliptic curve.
bls/command
Package command defines cli commands for the bls package.
Package command defines cli commands for the bls package.
common
Package common implements the factories of the crypto primitives to allow the use of multiple algorithms over the same communication channel.
Package common implements the factories of the crypto primitives to allow the use of multiple algorithms over the same communication channel.
ed25519
Package ed25519 implements the cryptographic primitives for the Edwards 25519 elliptic curve.
Package ed25519 implements the cryptographic primitives for the Edwards 25519 elliptic curve.
loader
Package loader defines an abstraction to store a private, or a public, key in a storage.
Package loader defines an abstraction to store a private, or a public, key in a storage.
dkg
internal
depgraph
Package main provides a utility CLI to generate the dependency graph of each package inside a module.
Package main provides a utility CLI to generate the dependency graph of each package inside a module.
Package mino defines a minimalist network overlay to communicate between a set of participants.
Package mino defines a minimalist network overlay to communicate between a set of participants.
gossip
Package gossip defines an abstraction to gossip messages to a defined set of participants.
Package gossip defines an abstraction to gossip messages to a defined set of participants.
minoch
Package minoch is an implementation of Mino that is using channels and a local manager to exchange messages.
Package minoch is an implementation of Mino that is using channels and a local manager to exchange messages.
minogrpc/certs
Package certs defines a certificate store that will provide primitives to store and get certificates for a given address.
Package certs defines a certificate store that will provide primitives to store and get certificates for a given address.
minogrpc/controller
Package controller implements a controller for minogrpc.
Package controller implements a controller for minogrpc.
minogrpc/ptypes
Package ptypes contains the protobuf definitions for the implementation of minogrpc.
Package ptypes contains the protobuf definitions for the implementation of minogrpc.
minogrpc/session
Package session defines an abstraction of a session during a distributed RPC.
Package session defines an abstraction of a session during a distributed RPC.
minogrpc/tokens
Package tokens defines a token holder to generate and validate access tokens.
Package tokens defines a token holder to generate and validate access tokens.
router
Package router defines the primitives to route a packet among a set of participants.
Package router defines the primitives to route a packet among a set of participants.
router/tree
Package tree is an implementation of a tree-based routing algorithm.
Package tree is an implementation of a tree-based routing algorithm.
router/tree/types
Package types implements the packet and handshake messages for the tree routing algorithm.
Package types implements the packet and handshake messages for the tree routing algorithm.
Package serde defines the serialization and deserialization mechanisms.
Package serde defines the serialization and deserialization mechanisms.
json
Package json implements the context engine for a the JSON format.
Package json implements the context engine for a the JSON format.
registry
Package registry defines the format registry mechanism.
Package registry defines the format registry mechanism.
xml
Package xml implements the context engine for the XML encoding.
Package xml implements the context engine for the XML encoding.
testing
fake
Package fake provides fake implementations for interfaces commonly used in the repository.
Package fake provides fake implementations for interfaces commonly used in the repository.

Jump to

Keyboard shortcuts

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