A MiNode fork
Go to file
2024-10-08 05:37:57 +03:00
.buildbot/ubuntu Simplify local testing: test in a container using a docker-test.sh script 2024-07-23 02:31:43 +03:00
.github/workflows Rewrite the github workflow to use by gitea 2024-05-07 19:15:36 +03:00
minode No more pickling objects 2024-10-08 05:37:57 +03:00
.dockerignore .dockerignore for local run 2024-05-07 19:15:36 +03:00
.gitignore Add .idea to .gitignore 2016-08-03 13:24:20 +02:00
docker-test.sh Simplify local testing: test in a container using a docker-test.sh script 2024-07-23 02:31:43 +03:00
i2p_bridge.sh Set executable flag on start.sh, use python3 -m in scripts 2021-03-09 18:31:23 +02:00
LICENSE Update copyright notes 2023-10-07 17:53:11 +03:00
MANIFEST.in Added minimal setup script and MANIFEST.in for packaging 2021-03-09 18:25:32 +02:00
README.md Add a gitea workflow badge in readme 2024-06-08 04:44:43 +03:00
requirements.txt Add tests requirements and tox.ini 2021-03-09 18:35:07 +02:00
setup.py Replace contact and URLs 2023-07-28 00:11:30 +03:00
start.sh Set executable flag on start.sh, use python3 -m in scripts 2021-03-09 18:31:23 +02:00
tests.py Add minimal process tests based on pybitmessage and a test script 2021-03-09 18:35:07 +02:00
tox.ini Update the buildbot_multibuild dir to jammy and enable py311 2024-05-07 19:15:36 +03:00
update.sh Start file tweaks 2017-06-04 10:38:06 +02:00

MiNode

Testing

Python 3 implementation of the Bitmessage protocol. Designed only to route objects inside the network.

Requirements

  • python3 (or pypy3)
  • openssl

Running

git clone https://git.bitmessage.org/lee.miller/MiNode.git
cd MiNode
./start.sh

It is worth noting that the start.sh script no longer tries to do a git pull in order to update to the latest version. Is is now done by the update.sh script.

Command line

usage: main.py [-h] [-p PORT] [--host HOST] [--debug] [--data-dir DATA_DIR]
               [--no-incoming] [--no-outgoing] [--no-ip]
               [--trusted-peer TRUSTED_PEER]
               [--connection-limit CONNECTION_LIMIT] [--i2p]
               [--i2p-tunnel-length I2P_TUNNEL_LENGTH]
               [--i2p-sam-host I2P_SAM_HOST] [--i2p-sam-port I2P_SAM_PORT]
               [--i2p-transient]

optional arguments:
  -h, --help            show this help message and exit
  -p PORT, --port PORT  Port to listen on
  --host HOST           Listening host
  --debug               Enable debug logging
  --data-dir DATA_DIR   Path to data directory
  --no-incoming         Do not listen for incoming connections
  --no-outgoing         Do not send outgoing connections
  --no-ip               Do not use IP network
  --trusted-peer TRUSTED_PEER
                        Specify a trusted peer we should connect to
  --connection-limit CONNECTION_LIMIT
                        Maximum number of connections
  --i2p                 Enable I2P support (uses SAMv3)
  --i2p-tunnel-length I2P_TUNNEL_LENGTH
                        Length of I2P tunnels
  --i2p-sam-host I2P_SAM_HOST
                        Host of I2P SAMv3 bridge
  --i2p-sam-port I2P_SAM_PORT
                        Port of I2P SAMv3 bridge
  --i2p-transient       Generate new I2P destination on start

I2P support

MiNode has support for connections over I2P network. To use it it needs an I2P router with SAMv3 activated (both Java I2P and i2pd are supported). Keep in mind that I2P connections are slow and full synchronization may take a while.

Examples

Connect to both IP and I2P networks (SAM bridge on default host and port 127.0.0.1:7656) and set tunnel length to 3 (default is 2).

$ ./start.sh --i2p --i2p-tunnel-length 3

Connect only to I2P network and listen for IP connections only from local machine.

$ ./start.sh --i2p --no-ip --host 127.0.0.1

or

$ ./i2p_bridge.sh

If you add trustedpeer = 127.0.0.1:8444 to keys.dat file in PyBitmessage it will allow you to use it anonymously over I2P with MiNode acting as a bridge.

Contact

  • lee.miller: BM-2cX1pX2goWAuZB5bLqj17x23EFjufHmygv