Skip to content

Latest commit

 

History

History
74 lines (49 loc) · 4.78 KB

README.md

File metadata and controls

74 lines (49 loc) · 4.78 KB

EpicChain NodeValidator

Connecting, Integrating, Testing, and Analyzing

EpicChain NodeValidator is an advanced project dedicated to validating and optimizing EpicChain nodes and smart contracts. This repository serves as a comprehensive toolkit for developers and network administrators, enabling them to rigorously test and enhance the performance and reliability of their EpicChain nodes. The project leverages the C# client to interact with the EpicChain blockchain and execute consensus algorithms, ensuring that the network remains robust and efficient.

The private blockchain, created using tools and modifications from the EpicChain source, is established with specialized characteristics and configurations. This setup utilizes the procedures found in the docker-build-epic-cli folder, providing a solid foundation for testing and development. The repository includes a collection of scripts and Docker containers designed to build a customized epic-cli client and integrate it with various components of the EpicChain Ecosystem.

Goal

The primary objectives of EpicChain NodeValidator are:

  • Enhance Blockchain Performance: Improve the efficiency and speed of the EpicChain blockchain through targeted optimizations and performance enhancements.
  • Identify Optimization Opportunities: Discover and address potential areas for improvement within the blockchain network, ensuring optimal operation.
  • Educational Tools: Provide resources and tools that help developers understand and engage with the core concepts and functionalities of the EpicChain blockchain.

Possible Improvements

  • Parameter Optimization:

    • Identify and optimize critical parameters that influence consensus behavior and overall node performance.
    • Examine bottlenecks related to opcode execution, transaction decoding, communication protocols, and other key areas.
    • Evaluate the robustness of the network by exploring graph optimization problems and employing metaheuristic techniques, as detailed in the ongoing project ODBFT.
  • Automated Network Reporting:

    • Develop automated procedures for setting network parameters and generating detailed reports on network characteristics.
    • Implement automatic CPU time reporting and analyze interactions with various interfaces of the EpicChain ecosystem.
  • Experimental Framework:

    • Conduct a series of experiments involving different EpicChain developers to gather data and insights using Docker containers.
    • Organize competitions and collaborative initiatives to reward outstanding results and foster innovation within the community.
  • Self-Adaptive TestNet:

    • Build a self-adaptive TestNet that periodically resets and updates node parameters to evaluate new configurations.
    • Ensure that nodes receive the necessary amount of Epic and GAS for effective participation and consensus activities.
    • Facilitate automatic synchronization of nodes to identify and adopt the most suitable parameter settings for optimal network performance.
  • Build and Deployment Enhancements:

    • Improve the Docker image build process for better performance and integration with continuous integration/continuous deployment (CI/CD) pipelines.
    • Optimize build speeds and explore caching techniques to streamline the build and deployment process.

How to Build and Run

TODO - UPDATE DESCRIPTION

Build Steps

A1 - Create a Modified Epic-cli

  1. Navigate to the docker-build-epic-cli folder.
  2. Execute the script docker_build_run_copy_stop.sh to build and deploy a new epic-cli-built version.

A2 - Run a Private Network with Modified Epic-cli Nodes

  1. Clone the EpicChain Compiler Ecosystem repository and follow the provided installation guidelines to set up the necessary packages.
  2. Adjust the path for the EpicCompiler in the PATH_CSHARP_NODES variable within the build_epic_csharp_nodes_with_builtEpicCli.sh and build_everything_epiccompiler.sh scripts.
  3. Execute build_everything_epiccompiler.sh or build_epic_csharp_nodes_with_builtEpicCli.sh to build the environment.
  4. Start the EpicCompiler Ecosystem as directed. Go to the main folder and run build_everything.sh to initialize the setup.

Consensus Visualization

How to Use

To view consensus results and network data:

  1. Run: python -m SimpleHTTPServer 10000
  2. Access: localhost:10000

Example

The current example is loaded from example-logs.js, which is automatically parsed to provide insights into network operations and consensus results.

EpicChain Research 2024