Skip to content

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.

Make sure the following are installed:

  • Eclipse 2025-06 RAP
  • Palladio Nightly Plugin
  • Java 21 (the bundles declare JavaSE-21)
  1. 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
  2. Install the following features from the 3SIM update site:

    • Kotlin Dependencies
    • Blockchain Systems Component Model (BSCM)
    • Blockchain Simulator Core
    • 3SIM
  3. 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/
  4. Restart Eclipse and import the org.palladiosimulator.blockchainsystems.trilemma project from the trilemma folder.

  1. Edit configuration.json in the testmodels folder to change the simulator configuration.

  2. Run one of the two entry points as a Java Application:

    • TrilemmaSimulator for the normal simulation.
    • SelfishminingSimulator for the selfish-mining attack simulation.
  3. 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.

This enables running BlockchainBench as an application with a user interface.

  1. Install the JavaFX SDK 17 for your platform from gluonhq.com/products/javafx.

  2. 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.

  3. Bind your JavaFX installation under Window → Preferences → JavaFX: select your SDK folder and click Apply.

  4. Add JavaFX to your build path:

    1. Go to Window → Preferences → Java → Build Path → User Libraries.
    2. Click New and name it JavaFX.
    3. Choose Add External JARs, open your JavaFX folder’s lib directory and select all JARs.
    4. Apply and Close.
  5. Add JavaFX to the project:

    1. Right-click the project → Build Path → Configure Build Path → Libraries.
    2. Under Classpath you should find JavaFX. If it is missing, choose Add Library → User Library, select JavaFX, then Apply and Close.

When the set of configuration parameters changes, three places have to be kept in sync:

  1. Update the CSV file holding the parameter configurations: optimized_deterministic_lhs_configurations.csv.

  2. Update the batch-runner validation in TrilemmaSimulator.java. Locate validateCsvColumns(...) and update the required list. This prevents simulations running with missing or inconsistent parameters.

  3. Update the model override logic: in BlockchainSystemModelLoader, inside applyConfigurationOverrides(), add or remove parameters as required.