Categorygithub.com/genfoundation/go-genchain
modulepackage
1.0.0
Repository: https://github.com/genfoundation/go-genchain.git
Documentation: pkg.go.dev

# README

The use of innovative consensus mechanisms based on the Ethereum architecture is divided into four layers: the base layer, the core layer, the service layer, and the application layer. The base layer provides the most basic components of the blockchain system, including P2P networks, databases, and cryptographic algorithm libraries. The core layer implements the core logic of the blockchain system, including blockchain data and state management and a new consensus mechanism (FRMH, fuzzy random proof of work). The server layer provides external services, including virtual machine implementation, RPC interface, and smart contracts. The application layer provides end users with trusted, secure and fast blockchain applications, mainly serving users in the form of DApps.

Building the source For prerequisites and detailed build instructions please read the Installation Instructions on the wiki.

Building genchain requires both a Go (version 1.7 or later) and a C compiler. You can install them using your favourite package manager. Once the dependencies are installed, run

make ggen or, to build the full suite of utilities:

make all

# Packages

Package accounts implements high level Genchain account management.
simple nonconcurrent reference implementation for hashsize segment based Binary Merkle tree hash on arbitrary but fixed maximum chunksize This implementation does not take advantage of any paralellisms and uses far more memory than necessary, but it is easy to see that it is correct.
No description provided by the author
Package common contains various helper functions.
Package consensus implements different Genchain consensus engines.
No description provided by the author
No description provided by the author
Package core implements the Genchain consensus protocol.
No description provided by the author
No description provided by the author
Package ethclient provides a client for the Genchain RPC API.
No description provided by the author
Package ethstats implements the network stats reporting service.
Package event deals with subscriptions to real-time events.
Package gen implements the Genchain protocol.
Package les implements the Light Genchain Subprotocol.
Package light implements on-demand retrieval capable state and chain objects for the Genchain Light Client.
Package log15 provides an opinionated, simple toolkit for best-practice logging that is both human and machine readable.
Go port of Coda Hale's Metrics library <https://github.com/rcrowley/go-metrics> Coda Hale's original work: <https://github.com/codahale/metrics>.
Package miner implements Genchain block creation and mining.
Package ggen contains the simplified mobile APIs to go-genchain.
Package node sets up multi-protocol Genchain nodes.
Package p2p implements the Genchain p2p network protocols.
No description provided by the author
Package rlp implements the RLP serialization format.
Package rpc provides access to the exported methods of an object across a network or other I/O connection.
No description provided by the author
No description provided by the author
Package tests implements execution of Genchain JSON tests.
Package trie implements Merkle Patricia Tries.
No description provided by the author

# Variables

NotFound is returned by API methods if the requested item does not exist.

# Structs

CallMsg contains parameters for contract calls.
FilterQuery contains options for contract log filtering.
SyncProgress gives progress indications when the node is synchronising with the Genchain network.

# Interfaces

ChainReader provides access to the blockchain.
ChainStateReader wraps access to the state trie of the canonical blockchain.
ChainSyncReader wraps access to the node's current sync status.
A ContractCaller provides contract calls, essentially transactions that are executed by the EVM but not mined into the blockchain.
GasEstimator wraps EstimateGas, which tries to estimate the gas needed to execute a specific transaction based on the pending state.
GasPricer wraps the gas price oracle, which monitors the blockchain to determine the optimal gas price given current fee market conditions.
LogFilterer provides access to contract log events using a one-off query or continuous event subscription.
PendingContractCaller can be used to perform calls against the pending state.
A PendingStateEventer provides access to real time notifications about changes to the pending state.
A PendingStateReader provides access to the pending state, which is the result of all known executable transactions which have not yet been included in the blockchain.
Subscription represents an event subscription where events are delivered on a data channel.
TransactionReader provides access to past transactions and their receipts.
TransactionSender wraps transaction sending.