keep-core

command module
v0.12.0-rc Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2020 License: MIT Imports: 8 Imported by: 0

README

= keep-core

The core code behind the https://keep.network[Keep network].

== Getting Started as a Developer

Start with the README in link:docs/development/[the developer docs directory].

== Directory structure

The directory structure used in the Keep repository is very similar to that used
in other Go projects:

```
keep-core/
  Dockerfile
  main.go, *.go
  docs/
  solidity/ <1>
  cmd/ <2>
  pkg/ <3>
    net/
      net.go, *.go <4>
      libp2p/
    chain/
      chain.go, *.go <4>
      ethereum/
        gen/
          gen.go <5>
    relay/
      relay.go, *.go
```
<1> While Keep only uses Solidity at the moment, the directory structure allows
    for other contract languages.
<2> Keep subcommands are implemented here, though they should be minimal and
    deal solely with user interaction. The meat of the commands should exist in
    a package fit for the appropriate purpose.
<3> All additional packages live in `pkg/`.
<4> The high-level interfaces for a package `mypackage` live in `mypackage.go`.
    `net` and `chain` are interface packages that expose a common interface
    to network and blockchain layers. Their subpackages provide particular
    implementations of these common interfaces. Only `cmd/` and the main
    package should interact with the implementations directly.
<5> When a package requires generated code, it should have a subpackage named
    `gen/`. This subpackage should contain a single file, `gen.go`, with a
    `// go:generate` annotation to trigger appropriate code generation. All code
    generation is done with a single invocation of `go generate` at build time.

== link:docs/[`docs/`]

Documentation related to the Keep network, Keep client, and Keep
contracts.

=== link:docs/development/[`docs/development/`]

Specifically developer documentation for the various parts of Keep.

== link:solidity/[`solidity/`]

The Solidity smart contracts behind the https://keep.network[Keep network].

They handle creating and managing keeps, bridging off-chain secret
storage and the public blockchain.

== link:pkg/[`pkg/`]

The Keep Go client.

It runs the Keep network’s random beacon and participates in related
computations.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
pkg
beacon/relay/event
Package event contains data structures that are attached to events in the relay.
Package event contains data structures that are attached to events in the relay.
beacon/relay/gjkr
Package gjkr contains code that implements Distributed Key Generation protocol described in [GJKR 99].
Package gjkr contains code that implements Distributed Key Generation protocol described in [GJKR 99].
beacon/relay/groupselection
Package groupselection implements the random beacon group selection protocol - an interactive, ticket-based method of selecting a candidate group from the set of all stakers given a pseudorandom seed value.
Package groupselection implements the random beacon group selection protocol - an interactive, ticket-based method of selecting a candidate group from the set of all stakers given a pseudorandom seed value.
bls
gen
gen/async
This is auto generated code This is auto generated code This is auto generated code This is auto generated code This is auto generated code This is auto generated code
This is auto generated code This is auto generated code This is auto generated code This is auto generated code This is auto generated code This is auto generated code
internal/byteutils
Package byteutils provides helper utilities for working with bytes
Package byteutils provides helper utilities for working with bytes
internal/dkgtest
Package dkgtest provides a full roundtrip DKG test engine including all the phases.
Package dkgtest provides a full roundtrip DKG test engine including all the phases.
internal/entrytest
Package entrytest provides a full roundtrip relay entry signing test engine including all the signing phases.
Package entrytest provides a full roundtrip relay entry signing test engine including all the signing phases.
internal/pbutils
Package pbutils provides helper utilities for working with protobuf objects.
Package pbutils provides helper utilities for working with protobuf objects.
internal/testutils
Package testutils contains general utilities for testing to help ensure consistency in output style.
Package testutils contains general utilities for testing to help ensure consistency in output style.
net
net/gen/pb
Package pb is a generated protocol buffer package.
Package pb is a generated protocol buffer package.
net/local
Package local provides a local, non-networked implementation of the interfaces defined by the net package.
Package local provides a local, non-networked implementation of the interfaces defined by the net package.
net/retransmission
Package retransmission implements a simple retransmission mechanism for network messages based on their sequence number.
Package retransmission implements a simple retransmission mechanism for network messages based on their sequence number.
net/security/handshake
Package handshake contains the code that implements authentication handshake performed when a new connection between two peers is established, as described in the network security implementation [RFC], section 1.2.3 and 1.2.4.
Package handshake contains the code that implements authentication handshake performed when a new connection between two peers is established, as described in the network security implementation [RFC], section 1.2.3 and 1.2.4.
net/watchtower
Package watchtower continuously monitors the on-chain stake of all connected peers, and disconnects peers which fall below the minimum stake.
Package watchtower continuously monitors the on-chain stake of all connected peers, and disconnects peers which fall below the minimum stake.

Jump to

Keyboard shortcuts

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