Development setup
This is the full setup for working on BlockchainBench from source. It takes a while, because the simulator is an Eclipse plug-in platform: you install the 3SIM features into an Eclipse installation, add the standalone-initialisation libraries, and — if you want the graphical application — wire up JavaFX.
Prerequisites
Section titled “Prerequisites”Make sure the following are installed:
- Eclipse 2025-06 RAP
- Palladio Nightly Plugin
- Java 21 (the bundles declare
JavaSE-21)
Installing the simulator
Section titled “Installing the simulator”-
Open Eclipse and go to Help → Install New Software… → Add… → Archive…, then select:
3sim / releng / org.palladiosimulator.blockchainsystems.updatesite / target /org.palladiosimulator.blockchainsystems.updatesite-0.0.1-SNAPSHOT.zip -
Install the following features from the 3SIM update site:
Kotlin DependenciesBlockchain Systems Component Model (BSCM)Blockchain Simulator Core3SIM
-
Go to Help → Install New Software… → Add… once more and enter this location, then install all supported libraries:
https://updatesite.mdsd.tools/library-standaloneinitialization/nightly/ -
Restart Eclipse and import the
org.palladiosimulator.blockchainsystems.trilemmaproject from thetrilemmafolder.
Running a simulation
Section titled “Running a simulation”-
Edit
configuration.jsonin thetestmodelsfolder to change the simulator configuration. -
Run one of the two entry points as a Java Application:
TrilemmaSimulatorfor the normal simulation.SelfishminingSimulatorfor the selfish-mining attack simulation.
-
The result is written as a JSON file, at the location derived from the blockchain system file path defined in
blockchainSystemModelFilePath.
The configuration formats, the expected data/ layout and the shape of the result documents are described in Build and run.
Adding the desktop plug-in and JavaFX
Section titled “Adding the desktop plug-in and JavaFX”This enables running BlockchainBench as an application with a user interface.
-
Install the JavaFX SDK 17 for your platform from gluonhq.com/products/javafx.
-
Install e(fx)clipse from the Eclipse Marketplace, or add it as software from marketplace.eclipse.org/content/efxclipse — dragging the install button into your workspace works too.
-
Bind your JavaFX installation under Window → Preferences → JavaFX: select your SDK folder and click Apply.
-
Add JavaFX to your build path:
- Go to Window → Preferences → Java → Build Path → User Libraries.
- Click New and name it
JavaFX. - Choose Add External JARs, open your JavaFX folder’s
libdirectory and select all JARs. - Apply and Close.
-
Add JavaFX to the project:
- Right-click the project → Build Path → Configure Build Path → Libraries.
- Under Classpath you should find JavaFX. If it is missing, choose Add Library → User Library, select
JavaFX, then Apply and Close.
Changing the parameter configuration
Section titled “Changing the parameter configuration”When the set of configuration parameters changes, three places have to be kept in sync:
-
Update the CSV file holding the parameter configurations:
optimized_deterministic_lhs_configurations.csv. -
Update the batch-runner validation in
TrilemmaSimulator.java. LocatevalidateCsvColumns(...)and update the required list. This prevents simulations running with missing or inconsistent parameters. -
Update the model override logic: in
BlockchainSystemModelLoader, insideapplyConfigurationOverrides(), add or remove parameters as required.