CNSim-Engine is the object-oriented framework that lies at the core of CNSim, a toolset for simulating blockchain consensus networks. The engine offers a set of abstractions, objects, and routines for quickly developing and running event-driven simulators of individual consensus networks. As such it is meant to be used as a library of instantiating projects to use in order to analyze specific protocols.
At this stage, the easiest way to instantiate CNSim-Engine assets is through installation to your local Maven repository:
- Have the latest versions of
maven,gitandJava(version used: 21) installed in your system. - In the
cnsim-enginedirectory just do:
mvn install
this will compile and install the library to your local Maven repo.
- In your instantiating code then (e.g.
cnsim-bitcoin) just add this to yourpom.xml
<dependencies>
...
<dependency>
<groupId>ca.yorku.cmg</groupId>
<artifactId>cnsim-engine</artifactId>
<version>0.0.2-SNAPSHOT</version>
</dependency>
</dependencies>
Ensure that the version is the same as in the pom.xml at the root of this repository.
- Markdown documentation viewable on GitHub can be found under src/site/markdown/documentation.
- Complete html documents including JavaDocs can be found under
docs/index.html- repo needs to be cloned for these to be viewed locally.
LGPL license adoption is intended to allow reuse of the framework for instantiating both proprietary and open-source (of any license) consensus protocol simulators. You can, for example create a proprietary tool for simulating a popular consensus protocol using this library a derivative of which you can maintain and distribute.
However, while the instantiating code per se can be proprietary, the derivatives and re-distributions of the CNSim-Engine assets themselves need to follow the open source GPL provisions, chiefly that the code is open and under the same license.
The LICENSE text contains the authoritative licensing information.
