You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 23, 2020. It is now read-only.
# see https://stackoverflow.com/questions/34405047/how-do-you-merge-into-another-branch-using-travis-with-git-commands?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
Run the official iotaledger/iri container, passing the mandatory -p option:
4
+
5
+
```docker run iotaledger/iri:v1.5.0 -p 14265```
6
+
7
+
This will get your a running IRI with its API listening on port 14265, no neighbours and an empty database. The IRI Docker container by default expects data at /iri/data. Use the `-v` option of the `docker run` command to mount volumes so to have persistent data. You can also pass more command line options to the docker run command and those will be passed to IRI.
8
+
9
+
If you want to use a iri.ini file with the docker container, supposing it's stored under /path/to/conf/iri.ini on your docker host, then pass `-v /path/to/conf:/iri/conf` and add -c /iri/conf/iri.ini as docker run arguments. So for example the `docker run` command above would become:
Please refer to the IRI documentation for further command line options and iri.ini options.
14
+
15
+
## DOCKER and IRI in depth
16
+
17
+
The Dockerfile included in this repo builds a working IRI docker container whilst trying to stay the least opinionated as possible. This allows system administrators the option to deploy and configure IRI based on their own individual circumstances and needs.
18
+
19
+
When building IRI via the Dockerfile provided, Docker 17.05 minimum is required, due to the use of Docker build stages. During docker build, these are the stages invoked:
20
+
- java: installs Oracle Java on top of Ubuntu
21
+
- build: installs Maven on top of the java stage and compiles IRI
22
+
- final container: copies the IRI jar file using the java stage as base
23
+
24
+
The built container assumes the WORKDIR inside the container is /iri/data: this means that the database directory will be written inside that directory by default. If a system administrator wants to retain the database across restarts, it is his/her job to mount a docker volume in the right folder.
25
+
26
+
The docker conatiner supports the env variables to configure advanced options. These variables can be set but are not required to run IRI.
27
+
28
+
`JAVA_OPTIONS`: these are the java options to pass right after the java command. It must not contain -Xms nor -Xmx. Defaults to a safe value
29
+
`JAVA_MIN_MEMORY`: the value of -Xms option. Defaults to 2G
30
+
`JAVA_MAX_MEMORY`: the value of -Xmx option. Defaults to 4G
31
+
`DOCKER_IRI_JAR_PATH`: defaults to /iri/target/iri*.jar as pushed by the Dockerfile. This is useful if custom IRI binaries want to be executed and the default path needs to be overridden
32
+
`DOCKER_IRI_REMOTE_LIMIT_API`: defaults to "interruptAttachToTangle, attachToTangle, addNeighbors, removeNeighbors, getNeighbors"
33
+
`DOCKER_IRI_MONITORING_API_PORT_ENABLE`: defaults to 0. If set to 1, a socat on port 14266 directed to 127.0.0.1:DOCKER_IRI_MONITORING_API_PORT_DESTINATION will be open in order to allow all API calls regardless of the DOCKER_IRI_REMOTE_LIMIT_API setting. This is useful to give access to restricted API calls to local tools and still denying access to restricted API calls to the internet. It is highly recommended to use this option together with docker networks (docker run --net).
34
+
35
+
The container entry point is a shell script that performs few additional steps before launching IRI:
36
+
- verifies if `DOCKER_IRI_MONITORING_API_PORT_ENABLE` is set to 1
37
+
- launches IRI with all parameters passed as desired
38
+
39
+
It is important to note that other than --remote and --remote-limit-api "$DOCKER_IRI_REMOTE_LIMIT_API", neither the entrypoint nor the Dockerfile are aware of any IRI configuration option. This is to not tie the Dockerfile and its container to a specific set of IRI options. Instead, this contain still allows the use of an INI file or command line options. Please refer to the IRI documentation to learn what are the allowed options at command line and via the INI file.
40
+
41
+
**At the time of writing, IRI requires -p to be passed either via INI or via command line. The entrypoint of this docker container does not do that for you.**
42
+
43
+
Here is a systemd unit example you can use with this Docker container. This is just an example and customisation is possible and recommended. In this example the docker network iri must be created and the paths /mnt/iri/conf and /mnt/iri/data are used on the docker host to serve respectively the neighbors file and the data directory. No INI files are used in this example, instead options are passed via command line options, such as --testnet and --zmq-enabled.
Copy file name to clipboardExpand all lines: README.md
+44-21Lines changed: 44 additions & 21 deletions
Original file line number
Diff line number
Diff line change
@@ -6,26 +6,42 @@
6
6
7
7
## IOTA
8
8
9
-
This is the main branch of the main IRI repository, as this is a IOTA reference implementation that is utilized specifically for what we have setup. It is a complete [[IOTA]](http://iota.org/) Node with a JSON-REST HTTP interface.
9
+
The IRI repositoryis the main IOTA Reference Implementation and the embodiment of the IOTA network specification.
10
10
11
-
It allows to connect easily using java directly to a local or a remote [[IOTA node]](http://learn.iota.org/).
11
+
This is a full-featured [[IOTA]](https://iota.org/) node with a convenient JSON-REST HTTP interface.
12
+
It allows users to become part of the [[IOTA]](https://iota.org) network as both a transaction relay
13
+
and network information provider through the easy-to-use [[API]](https://iota.readme.io/reference).
12
14
13
-
***Latest release:** 1.4.2.2 Release
14
-
***License:** GPLv3
15
+
It is specially designed for users seeking a fast, efficient and fully-compatible network setup.
16
+
17
+
Running an IRI node also allows light wallet users a node to directly connect to for their own wallet transactions.
18
+
19
+
-***License:** GPLv3
15
20
16
21
# How to get started
17
22
18
-
Obviously, because this is its own, independent network, you have to go through the same process as in the main network: **find neighbors**. You can find neighbors in the [[Discord Community]](https://discord.gg/7Gu2mG5), or on [[our forum]](https://forum.iota.org/). Community members are usually very happy to help you out and get you connected. If you want to get tokens for your testcase, please just ask in one of the communication channels as well.
23
+
The IOTA network is an independent peer-to-peer network with a first-user, friend-to-friend, network structure:
19
24
20
-
## Reporting Issues
25
+
- As a 'first-user' network, to access the data streams and APIs that other users provide, you must first exchange your IP and port configuration with a current user.
21
26
22
-
If you notice any issues or irregularities in this release. Please make sure to submit an issue on github.
27
+
- As a 'friend-to-friend' network, you have the privilege of joining new users into the network through your node
28
+
by adding them to your approved neighbors list — ensuring that you both broadcast to them and also receive their broadcasts.
23
29
30
+
You can **find neighbors** quickly at both our [[Discord Community]](https://discord.gg/7Gu2mG5) and [[forum.iota.org]](https://forum.iota.org/).
31
+
32
+
Everyone will be welcoming and very happy to help you get connected.
33
+
If you want to get tokens for your testcase, please just ask in one of the communication channels.
24
34
25
-
#Installing
35
+
## Reporting Issues
26
36
27
-
You have two options, the preferred option is that you compile yourself. The second option is that you utilize the provided jar, which is released regularly (when new updates occur) here: [Github Releases](https://github.com/iotaledger/iri/releases).
37
+
If you notice any bugs, problems or other irregularities with this release,
38
+
please submit an issue on github [[submit new issue]](https://github.com/iotaledger/iri/issues/new).
28
39
40
+
# Installing
41
+
42
+
The preferred option is that you compile yourself.
43
+
The second option is that you utilize the provided jar,
44
+
which is released whenever there is a new update here: [Github Releases](https://github.com/iotaledger/iri/releases).
29
45
30
46
### Compiling yourself
31
47
@@ -39,13 +55,22 @@ $ mvn clean compile
39
55
$ mvn package
40
56
```
41
57
42
-
This will create a `target` directory in which you will find the executable jar file that you can use for the
58
+
This will create a `target` directory in which you will find the executable jar file that you can use.
43
59
44
60
### How to run IRI
45
61
46
62
#### Locally
47
63
48
-
Running IRI is pretty simple, and you don't even have to run it under admin rights. Below is a list of command line options. Here is an example script:
64
+
Running IRI is quick and easy, and you can usually run it without admin rights.
65
+
Below is a list of command line options.
66
+
67
+
At a minimum, the port must be specified on the command-line — e.g., '`-p 14265`'
68
+
or in the `iota.ini` file — e.g., '`PORT = 14265`'.
69
+
70
+
If the '`iota.ini`' file exists, it will be read.
71
+
The port and all the command line options below take precedence over values specified in the ini config file.
72
+
73
+
Here is an example script that specifies only the port, with all other setting to be read from the ini file **if it exists**:
49
74
50
75
```
51
76
java -jar iri.jar -p 14265
@@ -63,29 +88,27 @@ command line arguments.
63
88
64
89
Option | Shortened version | Description | Example Input
65
90
--- | --- | --- | ---
66
-
`--port` | `-p` | This is a *mandatory* option that defines the port to be used to send API commands to your node | `-p 14800`
91
+
`--port` | `-p` | This is a *mandatory* option that defines the port to be used to send API commands to your node | `-p 14265`
67
92
`--neighbors` | `-n` | Neighbors that you are connected with will be added via this option. | `-n "udp://148.148.148.148:14265 udp://[2001:db8:a0b:12f0::1]:14265"`
68
93
`--config` | `-c` | Config INI file that can be used instead of CLI options. See more below | `-c iri.ini`
69
-
`--udp-receiver-port` | `-u` | UDP receiver port | `-u 14800`
70
-
`--tcp-receiver-port` | `-t` | TCP receiver port | `-t 14800`
94
+
`--udp-receiver-port` | `-u` | UDP receiver port | `-u 14600`
95
+
`--tcp-receiver-port` | `-t` | TCP receiver port | `-t 15600`
71
96
`--testnet` | | Makes it possible to run IRI with the IOTA testnet | `--testnet`
72
97
`--remote` | | Remotely access your node and send API commands | `--remote`
73
98
`--remote-auth` | | Require authentication password for accessing remotely. Requires a correct `username:hashedpassword` combination | `--remote-auth iotatoken:LL9EZFNCHZCMLJLVUBCKJSWKFEXNYRHHMYS9XQLUZRDEKUUDOCMBMRBWJEMEDDXSDPHIGQULENCRVEYMO`
74
99
`--remote-limit-api` | | Exclude certain API calls from being able to be accessed remotely | `--remote-limit-api "attachToTangle, addNeighbors"`
75
100
`--send-limit`| | Limit the outbound bandwidth consumption. Limit is set to mbit/s | `--send-limit 1.0`
76
101
`--max-peers` | | Limit the number of max accepted peers. Default is set to 0 (mutual tethering) | `--max-peers 8`
77
-
`--dns-resolution-false` | | Ignores DNS resolution refreshing | --dns-resolution-false
102
+
`--dns-resolution-false` | | Ignores DNS resolution refreshing | `--dns-resolution-false`
78
103
### INI File
79
104
80
105
You can also provide an ini file to store all of your command line options and easily update (especially neighbors) if needed. You can enable it via the `--config` flag. Here is an example INI file:
0 commit comments