Skip to main content

firewheel_repo_i2p

This repository was used as the model behind:

Stickland, Michael, Li, Justin D., Swiler, Laura Painton, & Tarman, Thomas (2021). Foundations of Rigorous Cyber Experimentation. https://doi.org/10.2172/1854751

The firewheel_repo_i2p repo contains a FIREWHEEL model that you can use to define and execute experiments using the Invisible Internet Project (i2p) software, a large scale, distributed, anonymization network that rides on top of the internet. i2p is attributed as being an enabling technology for what’s commonly known as the Dark Web.

Due to licensing limitations, we are unable to provide the expected binary files (VM Resources nor Images) that are used within these model components. Please contact us if there are issues replicating the creation of the VM Resources.

Included Model Components

There are several model components (MCs) in the i2p Firewheel model:

  • i2p.topology - Defines/creates the overall network topology, consisting of L1 and L2 BGP routers, L3 sub-nets containing 1 or more i2p routers, as well as a data center with NTP, DNS, and other services used by the i2p network. Requires a network size parameter to be specified, i2p.topology:<size>, an integer indicating the approximate number of i2p routers to be in the network. There are always 31 L1 BGP routers, and the number of L2 BGP routers and L3 sub-nets will be determined based on the requested network size.

  • i2p.objects - Contains definitions for i2p routers, including some specialty servers located in the data center, and the VM resources used for provisioning them during startup.

  • i2p.config_floodfills - Configures 6% of i2p routers in a topology to be Floodfill DHT (distributed hash table) servers. Also configures each i2p router to have a startup bandwidth rate, and then a default rate for use after startup (the rates are currently hard coded). Contains related VM resources.

  • i2p.config_snark - Configures groups of non-floodfill i2p routers to utilize the Snark torrenting capability within i2p to generate background traffic within the i2p network. Some will be configured as Generators (eepsites), some as Seeders, and others as Leechers depending on the chosen (hard coded) ratio settings. Contains related VM resources.

  • i2p.config_bandwidth - Configures i2p router software with each router’s advertised bandwidth and bandwidth share percent settings, which are used by the i2p software during execution. Contains related VM resources.

  • i2p.config_webservers - [deprecated] Configures some i2p routers to be webserver-based eepsites, which are accessed by other i2p nodes to generate background i2p network traffic. Contains related vm resources. This has been replaced in the current model by the use of Snark.

  • i2p.config_victims - Configures groups of 1 or more i2p routers, all with the same settings as specified in the i2p_config_victims/victim_group_configs.json file. Victim properties that can be specified are Snark/torrenting role (Seeder, Leecher, or None), machine Bandwidth (KB/s) and number of CPU Cores, and the i2p Shared Bandwidth Percentage (0 - 100). The number of i2p routers per victim (i.e. sample) group, and the number of duplicate sets of victim groups (both currently hard coded) may be specified to meet specific experimental needs.

  • i2p.setup - This is simply a command line shortcut, which ensures that all i2p MCs that other MCs depend on, but which are not listed explicitly on the command line, will be executed as needed.

  • i2p.multiple_clients - Research code that allows multiple instances of i2p routers to be installed concurrently on a single machine. Contact us for information and updates related to this MC. This has not been tested with the rest of these i2p MCs.

Running i2p experiments

The i2p main branch contains code that, when last tested, is compatible with FIREWHEEL version 2.5 and later.

To launch an i2p experiment you must include the i2p.topology:<size> and the i2p.setup MCs on the command line, in that order, along with the appropriate launch MC, (e.g., firewheel experiment i2p.topology:1000 i2p.setup minimega.launch)

Any additional MCs required to run an i2p experiment are included add attribute dependencies in the i2p_setup/MANIFEST file, and are not required on the command line. Also, since the order of execution of these MCs that an experiment depends on is very important, it’s best not to list manually on the command line unless you know exactly what you’re doing.

If you don’t want to configure victim groups, simply comment out the “i2p_victims” attribute dependency in the i2p_setup/MANIFEST file. Otherwise, groups of i2p routers will be configured as described above.

Using different versions of I2P software

In the i2p_objects/vm_resources folder there are two different versions of the i2p software referenced:

  • i2p-0.9.45-trusty-desktop.tgz - I2P Version 0.9.45

  • i2p_0.9.47x-2~xenial+1_debs.tgz - I2P Version 0.9.47

The 0.9.45 version works on Ubuntu 14.04 (Trusty) Desktop operating system while the 0.9.47 is designed for Ubuntu 16.04 (Xenial).The packages should include the i2p router software and any additional software packages required by i2p.

However, just remember, there are no guarantees or warrantees associated with this software, and not all the MCs have NOT been tested with the 0.9.45 version of the i2p software!

Metadata

Release files for firewheel-repo-i2p 2.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for firewheel-repo-i2p 2.7.0
File Size Uploaded Provenance Actions
firewheel_repo_i2p-2.7.0.tar.gz 67.1 kB Without provenance Details for firewheel_repo_i2p-2.7.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for firewheel-repo-i2p 2.7.0
File Interpreter ABI Platform Actions
firewheel_repo_i2p-2.7.0-py3-none-any.whl Python 3 none any Details for firewheel_repo_i2p-2.7.0-py3-none-any.whl

Total release size: 150.2 kB

Release files / firewheel_repo_i2p-2.7.0.tar.gz

Download URL firewheel_repo_i2p-2.7.0.tar.gz
Size 67.1 kB
Tags Source
SHA-256 checksum
How to use checksums
84e10d433c04cdf912f17f4c059f1619684f959ecc9ed0aaaeccd1993f89fd58
BLAKE2b-256 checksum
How to use checksums
440d31240ada6583089a475f30d4403d25539887ef3a7a642e7b9e9fb49d99c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21

Release files / firewheel_repo_i2p-2.7.0-py3-none-any.whl

Download URL firewheel_repo_i2p-2.7.0-py3-none-any.whl
Size 83.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d8f759b6cc3a6f0c3116db36d4b8fc8f1673cd99c1d3a2c57017b8e623671288
BLAKE2b-256 checksum
How to use checksums
5b8bddd0afa1e48bef371d9da487e1d4deaefad967a9f56b0dc7ecbc7a1cfe87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21

Security for firewheel-repo-i2p 2.7.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.7.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page