Categorygithub.com/coderink/gttc
modulepackage
0.2.0
Repository: https://github.com/coderink/gttc.git
Documentation: pkg.go.dev

# README

Go TTC

Golang implementation of the TTC protocol.

GoDoc GoReport Travis License

About gttc

gttc is base on go-ethereum, the main part be modified is in consensus directory. We add a new consensus algorithm named alien in it.

Alien is a simple version of DPOS-PBFT consensus algorithm, which in consensus/alien:

  • alien.go : Implement the consensus interface
  • custom_tx.go : Process the custom transaction such as vote,proposal,declare and so on...
  • snapshot.go : Keep the snapshot of vote and confirm status for each block
  • signer_queue.go : calculate the order of signer queue
  • api.go : API
  • cross_chain.go : Cross chain communication by custom transaction

Alien use header.extra to record the all infomation of current block and keep signature of miner. The snapshot keep vote & confirm information of whole chain, which will be update by each Seal or VerifySeal. By the end of each loop, the miner will calculate the next loop miners base on the snapshot. Code annotation will show the details about how it works.

Mainnet Information

  • Current Mainnet and Testnet is deploy the code of branch release/v0.2.0
  • Next version will be release on July 12, which contain the hard-fork at block height 2968888
  • Please make sure your node upgrade to release/v0.2.0 before that block height.(before July 17,2019 UTC/GMT+8)

More information about this upgrade will be found UPGRADE TO GTTC V0.2.0

Minimum Requirements

RequirementNotes
Go versionGo1.9 or higher

Install

See the HOWTO_INSTALL

Other Documents List

You can find all documents in our Wiki

Contact

email: [email protected]

# Packages

Package accounts implements high level Ethereum 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 Ethereum consensus engines.
No description provided by the author
No description provided by the author
Package core implements the Ethereum consensus protocol.
No description provided by the author
No description provided by the author
Package eth implements the Ethereum protocol.
Package ethclient provides a client for the Ethereum 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 les implements the Light Ethereum Subprotocol.
Package light implements on-demand retrieval capable state and chain objects for the Ethereum 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 Ethereum block creation and mining.
Package geth contains the simplified mobile APIs to go-ethereum.
Package node sets up multi-protocol Ethereum nodes.
Package p2p implements the Ethereum 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 Ethereum 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 Ethereum 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.