core

command
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: May 19, 2021 License: MIT Imports: 6 Imported by: 0

README


Adamoracle logo


Adamoracle Core is the API backend that Adamoracle client contracts on Ethereum make requests to. The backend utilizes Solidity contract ABIs to generate types for interacting with Ethereum contracts.

Features

  • Headless API implementation
  • CLI tool providing conveniance commands for node configuration, administration, and CRUD object operations (e.g. Jobs, Runs, and even the VRF)

Installation

See the root README for instructions on how to build the full Adamoracle node.

Directory Structure

This directory contains the majority of the code for the backend of Adamoracle.

Outside of the code contained in this repo, some static assets are pulled in using packr, in the sibling directory packr/. Additionally, the static assets generated by compiling the sibling directory operator-ui/ are built by packr and included in the final binary.

Common Commands

Install:

By default go install will install this directory under the name core. You can instead, build it, and place it in your path as adamoracle:

go build -o $GOPATH/bin/adamoracle .

Test:

# A higher parallel number can speed up tests at the expense of more RAM.
go test -p 1 ./...

The golang testsuite is almost entirely parallelizable, and so running the default go test ./... will commonly peg your processor. Limit parallelization with the -p 2 or whatever best fits your computer: go test -p 4 ./....

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package adapters contain the core adapters used by the Adamoracle node.
Package adapters contain the core adapters used by the Adamoracle node.
cmd
Package cmd is the front-end interface for the application as a command-line utility.
Package cmd is the front-end interface for the application as a command-line utility.
internal
gethwrappers
package gethwrappers provides infrastructure for generating and verifying go-ethereum wrapper packages for smart contracts.
package gethwrappers provides infrastructure for generating and verifying go-ethereum wrapper packages for smart contracts.
package logger exports multiple type loggers: - the *Logger type is a wrapper over uber/zap#SugaredLogger with added conditional utilities.
package logger exports multiple type loggers: - the *Logger type is a wrapper over uber/zap#SugaredLogger with added conditional utilities.
Package services contain the key components of the Adamoracle node.
Package services contain the key components of the Adamoracle node.
eth
job
log
signatures/cryptotest
package cryptotest provides convenience functions for kyber-based APIs.
package cryptotest provides convenience functions for kyber-based APIs.
signatures/ethdss
Package ethdss implements the Distributed Schnorr Signature protocol from the ////////////////////////////////////////////////////////////////////////////// XXX: Do not use in production until this code has been audited.
Package ethdss implements the Distributed Schnorr Signature protocol from the ////////////////////////////////////////////////////////////////////////////// XXX: Do not use in production until this code has been audited.
signatures/ethschnorr
Package ethschnorr implements a version of the Schnorr signature which is ////////////////////////////////////////////////////////////////////////////// XXX: Do not use in production until this code has been audited.
Package ethschnorr implements a version of the Schnorr signature which is ////////////////////////////////////////////////////////////////////////////// XXX: Do not use in production until this code has been audited.
signatures/secp256k1
Package secp256k1 is an implementation of the kyber.{Group,Point,Scalar} ////////////////////////////////////////////////////////////////////////////// XXX: Do not use in production until this code has been audited.
Package secp256k1 is an implementation of the kyber.{Group,Point,Scalar} ////////////////////////////////////////////////////////////////////////////// XXX: Do not use in production until this code has been audited.
vrf
Numbers are deterministically generated from seeds and a secret key, and are statistically indistinguishable from uniform sampling from {0,...,2**256-1}, to computationally-bounded observers who know the seeds, don't know the key, and only see the generated numbers.
Numbers are deterministically generated from seeds and a secret key, and are statistically indistinguishable from uniform sampling from {0,...,2**256-1}, to computationally-bounded observers who know the seeds, don't know the key, and only see the generated numbers.
Package store is used to keep application events in sync between the database on the node and the blockchain.
Package store is used to keep application events in sync between the database on the node and the blockchain.
models
Package models contain the key job components used by the Adamoracle application.
Package models contain the key job components used by the Adamoracle application.
models/vrfkey
Package vrfkey tracks the secret keys associated with VRF proofs.
Package vrfkey tracks the secret keys associated with VRF proofs.
orm
presenters
Package presenters allow for the specification and result of a Job, its associated TaskSpecs, and every JobRun and TaskRun to be returned in a user friendly human readable format.
Package presenters allow for the specification and result of a Job, its associated TaskSpecs, and every JobRun and TaskRun to be returned in a user friendly human readable format.
Package utils is used for common functions and tools used across the codebase.
Package utils is used for common functions and tools used across the codebase.
web
Package web handles receiving and supplying information within the node.
Package web handles receiving and supplying information within the node.

Jump to

Keyboard shortcuts

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