How to Build and Run the TrueChain Consensus Protocol

Mar 7, 2023 | Blockchain

If you’re diving into the ocean of blockchain technology, the TrueChain Consensus Protocol is a fascinating topic to explore. This guide will help you navigate the intricate waters of building and running this project using Docker and HyperMake. Grab your virtual surfboard, and let’s ride this coding wave!

Building the Source Code

The process of building the TrueChain Consensus Protocol involves several steps, starting with some prerequisites.

Step 1: Install Required Tools

  • First, install Docker to manage your containers.
  • Next, set up HyperMake, which is essential for building cross-platform binaries.
  • Ensure that HyperMake is in your $GOBIN path.

Building it with HyperMake and Docker

This project uses HyperMake to handle a containerized environment and build your binaries. Think of HyperMake as a master chef guiding you through a great cooking expedition, where every ingredient is perfectly measured in a clean kitchen (or rather container) for optimum results.

  • Run:
  • $ hmake --targets
    $ hmake check
    $ hmake build

The first time you run this, it will download the TrueChain’s Docker image go-toolchain along with other dependencies.

Step 2: Clone the Repository

  • To set up the project, run:
  • $ git clone https://github.com/truechain/truechain-consensus-core.git
    $ cd truechain-consensus-core
    $ git checkout devel
    OR
    $ go get -u github.com/truechain/truechain-consensus-core

Step 3: Path Configuration

To ensure everything runs smoothly, adjust your environment variables:

export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

Key Configuration Files

Before running the project, make sure your configuration files are properly set up:

  • TRUE_TUNABLES_CONF: should correspond to etc/truechain/tunables_bft.yaml.
  • TRUE_GENERAL_CONF: should correspond to etc/truechain/logistics_bft.cfg.
  • TRUE_NETWORK_CONF: should correspond to etc/truechain/hosts, which should include your loopback IP address, typically 127.0.0.1.
  • TRUE_SIMULATION: set this value according to your testing strategy (0, 1, or 2 for different setups).

Running the Server and Client

To run the server and client simultaneously, execute the following commands in separate terminal windows:

  • Start the Server:
  • $ .bin/linux/truechain-engine
  • Start the Client:
  • $ .bin/linux/pbft-client -numquest 40

This activates both server and client functionalities and showcases critical operational logs, much like watching both boats on a regatta race, each maneuvering through the waves.

Troubleshooting

If you encounter issues such as missing dependencies, don’t fret! You can address this by running:

$ gvt fetch github.com/fatih/color

This command will fetch the required dependencies and update the appropriate manifest file.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Advanced Build Options

Additionally, if you prefer not to use containers, you can build the project using a shell script. Running the following command will initiate a basic test:

./support/scripts/build.sh linux

You can substitute linux for darwin to get a macOS binary instead.

Conclusion

Building the TrueChain Consensus Protocol is a meticulous journey, akin to assembling a complex puzzle where each piece plays a vital role in creating a functional masterpiece. Don’t hesitate to dive into the community and contribute!

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox