Skip to content

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Go Ethereum with Time-Memory-Data Trade-Off Based Consensus Protocol

This repository hosts the integration of a Time-Memory-Data Trade-Off (TMD-TO) based consensus protocol into the official Go Ethereum implementation (Details regarding the protocol can be found in the following publication. This protocol introduces a unique puzzle, centered around inverting a one-way function, solved using the TMD-TO approach. This paradigm shift allows for reduced energy consumption, leveraging memory to solve computational puzzles efficiently.

Building the Source

To build geth, you'll need Go (version 1.19 or newer) and a C compiler. These can be installed via your preferred package manager. After setting up the prerequisites, build the project with the following command:

make geth

Executables

The go-ethereum project includes several executables located in the cmd directory.

Command Description
geth The primary Ethereum CLI client featuring the new consensus protocol. For command line options, use geth --help and refer to the CLI documentation.

Running geth

An exhaustive list of command line flags is beyond the scope of this document. For detailed information, consult the CLI Wiki page. Additionally, a comprehensive tutorial on setting up a private Ethereum network can be found here. To customize the size of the TMD-TO table used by the miner, add a dimension.txt file in the same folder where the geth executable is, which contains two numbers: table width and table height.

Genesis block

The file that defines genesis block for the private network that uses the new consensus protocol can be found here. The tableSize parameter defines the difficulty of the consensus, while miniPowDiff defines the difficulty of the mini PoW used in the protocol.

License

The go-ethereum library (i.e., all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0, as included in the COPYING.LESSER file in our repository.

The go-ethereum binaries (i.e., all code inside the cmd directory) are licensed under the GNU General Public License v3.0, as included in the COPYING file in our repository.

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages