kopia lustrzana https://github.com/linuxserver/docker-documentation
Bot Updating Documentation
rodzic
02f0628768
commit
a508aa29b5
|
@ -1,15 +1,14 @@
|
||||||
# [linuxserver/nano](https://github.com/linuxserver/docker-nano)
|
# [linuxserver/nano](https://github.com/linuxserver/docker-nano)
|
||||||
|
|
||||||
[](https://github.com/linuxserver/docker-nano)
|
[](https://github.com/linuxserver/docker-nano)
|
||||||
[](https://github.com/linuxserver/docker-nano/releases)
|
[](https://github.com/linuxserver/docker-nano/releases)
|
||||||
[](https://github.com/linuxserver/docker-nano/packages)
|
[](https://github.com/linuxserver/docker-nano/packages)
|
||||||
[](https://gitlab.com/Linuxserver.io/docker-nano/container_registry)
|
[](https://gitlab.com/Linuxserver.io/docker-nano/container_registry)
|
||||||
[](https://quay.io/repository/linuxserver.io/nano)
|
[](https://microbadger.com/images/linuxserver/nano "Get your own version badge on microbadger.com")
|
||||||
[](https://microbadger.com/images/linuxserver/nano "Get your own version badge on microbadger.com")
|
[](https://hub.docker.com/r/linuxserver/nano)
|
||||||
[](https://hub.docker.com/r/linuxserver/nano)
|
[](https://hub.docker.com/r/linuxserver/nano)
|
||||||
[](https://hub.docker.com/r/linuxserver/nano)
|
[](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nano/job/master/)
|
||||||
[](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nano/job/master/)
|
[](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/nano/latest/index.html)
|
||||||
[](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/nano/latest/index.html)
|
|
||||||
|
|
||||||
[Nano](https://nano.org/) is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions.
|
[Nano](https://nano.org/) is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions.
|
||||||
|
|
||||||
|
@ -27,6 +26,14 @@ The architectures supported by this image are:
|
||||||
| x86-64 | amd64-latest |
|
| x86-64 | amd64-latest |
|
||||||
| arm64 | arm64v8-latest |
|
| arm64 | arm64v8-latest |
|
||||||
|
|
||||||
|
## Version Tags
|
||||||
|
|
||||||
|
This image provides various versions that are available via tags. `latest` tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them.
|
||||||
|
|
||||||
|
| Tag | Description |
|
||||||
|
| :----: | --- |
|
||||||
|
| latest | Stable Nano releases |
|
||||||
|
| beta | Beta Nano releases |
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
@ -45,7 +52,7 @@ docker create \
|
||||||
-e LIVE_GENESIS_ACCOUNT=nano_xxxxxx `#optional` \
|
-e LIVE_GENESIS_ACCOUNT=nano_xxxxxx `#optional` \
|
||||||
-e LIVE_GENESIS_WORK=WORK_FOR_BLOCK `#optional` \
|
-e LIVE_GENESIS_WORK=WORK_FOR_BLOCK `#optional` \
|
||||||
-e LIVE_GENESIS_SIG=BLOCK_SIGNATURE `#optional` \
|
-e LIVE_GENESIS_SIG=BLOCK_SIGNATURE `#optional` \
|
||||||
-e CLI_OPTIONS='--config node.receive_minimum = "1000000000000000000000000"' `#optional` \
|
-e CLI_OPTIONS=--config node.enable_voting=true `#optional` \
|
||||||
-e LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z `#optional` \
|
-e LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z `#optional` \
|
||||||
-p 7075:7075/udp \
|
-p 7075:7075/udp \
|
||||||
-p 7075:7075/tcp \
|
-p 7075:7075/tcp \
|
||||||
|
@ -77,7 +84,7 @@ services:
|
||||||
- LIVE_GENESIS_ACCOUNT=nano_xxxxxx #optional
|
- LIVE_GENESIS_ACCOUNT=nano_xxxxxx #optional
|
||||||
- LIVE_GENESIS_WORK=WORK_FOR_BLOCK #optional
|
- LIVE_GENESIS_WORK=WORK_FOR_BLOCK #optional
|
||||||
- LIVE_GENESIS_SIG=BLOCK_SIGNATURE #optional
|
- LIVE_GENESIS_SIG=BLOCK_SIGNATURE #optional
|
||||||
- CLI_OPTIONS='--config node.receive_minimum = "1000000000000000000000000"' #optional
|
- CLI_OPTIONS=--config node.enable_voting=true #optional
|
||||||
- LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z #optional
|
- LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z #optional
|
||||||
volumes:
|
volumes:
|
||||||
- /path/to/data:/config
|
- /path/to/data:/config
|
||||||
|
@ -115,17 +122,34 @@ Docker images are configured using parameters passed at runtime (such as those a
|
||||||
| `LIVE_GENESIS_ACCOUNT=nano_xxxxxx` | Genesis block account |
|
| `LIVE_GENESIS_ACCOUNT=nano_xxxxxx` | Genesis block account |
|
||||||
| `LIVE_GENESIS_WORK=WORK_FOR_BLOCK` | Genesis block proof of work |
|
| `LIVE_GENESIS_WORK=WORK_FOR_BLOCK` | Genesis block proof of work |
|
||||||
| `LIVE_GENESIS_SIG=BLOCK_SIGNATURE` | Genesis block signature |
|
| `LIVE_GENESIS_SIG=BLOCK_SIGNATURE` | Genesis block signature |
|
||||||
| `CLI_OPTIONS='--config node.receive_minimum = "1000000000000000000000000"'` | Node run command cli args |
|
| `CLI_OPTIONS=--config node.enable_voting=true` | Node run command cli args |
|
||||||
| `LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z` | HTTP/HTTPS endpoint to download a 7z file with the data.ldb to bootstrap to this node |
|
| `LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z` | HTTP/HTTPS endpoint to download a 7z file with the data.ldb to bootstrap to this node |
|
||||||
|
|
||||||
### Volume Mappings (`-v`)
|
### Volume Mappings (`-v`)
|
||||||
|
|
||||||
| Volume | Function |
|
| Volume | Function |
|
||||||
| :----: | --- |
|
| :----: | --- |
|
||||||
| `/config` | Database and Radarr configs |
|
| `/config` | Main storage for config and blockchain |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Environment variables from files (Docker secrets)
|
||||||
|
|
||||||
|
You can set any environment variable from a file by using a special prepend `FILE__`.
|
||||||
|
|
||||||
|
As an example:
|
||||||
|
|
||||||
|
```
|
||||||
|
-e FILE__PASSWORD=/run/secrets/mysecretpassword
|
||||||
|
```
|
||||||
|
|
||||||
|
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
|
||||||
|
|
||||||
|
## Umask for running applications
|
||||||
|
|
||||||
|
For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting.
|
||||||
|
Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support.
|
||||||
|
|
||||||
|
|
||||||
## User / Group Identifiers
|
## User / Group Identifiers
|
||||||
|
|
||||||
|
@ -188,7 +212,7 @@ The default proxy config is stored in `/config/rpc-proxy.json`:
|
||||||
"count":"64"
|
"count":"64"
|
||||||
},
|
},
|
||||||
"pending":{
|
"pending":{
|
||||||
"count":"64"
|
"count":"8"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -207,45 +231,48 @@ We will pass the `CLI_OPTIONS` to the node, here is a run command example:
|
||||||
|
|
||||||
```
|
```
|
||||||
-e CLI_OPTIONS='--config node.preconfigured_peers=["peering.yourhost.com","peering.yourhost2.com"] \
|
-e CLI_OPTIONS='--config node.preconfigured_peers=["peering.yourhost.com","peering.yourhost2.com"] \
|
||||||
--config node.receive_minimum = "1000000000000000000000000"\
|
|
||||||
--config node.enable_voting=true'
|
--config node.enable_voting=true'
|
||||||
```
|
```
|
||||||
|
|
||||||
There are many options to know here to run an actual live node especially peering and voting, again please review the docs if you plan to run something outside of a local setup.
|
There are many options to know here to run an actual live node especially peering and voting, again please review the docs if you plan to run something outside of a local setup.
|
||||||
|
|
||||||
### Quickstart Guide
|
### Quickstart Guide
|
||||||
If you just want to see some numbers on a screen you can run a couple local nodes capable of having our light wallet pointed to. In this example we will be running the containers ephemerally and using a minimum two node setup. You can technically run with a single node, but in any network you should never publish the RPC port (even firewalled through our proxy) of the voting representative that has a wallet unlocked on disk.
|
|
||||||
|
|
||||||
First run the principle node:
|
Here we are going to cover the bare minimum commands needed to spinup a local payment network and wallet.
|
||||||
|
|
||||||
|
First spinup your containers:
|
||||||
```
|
```
|
||||||
docker run --rm -it \
|
docker run -d \
|
||||||
-e CLI_OPTIONS='--config node.enable_voting=true' \
|
--name node \
|
||||||
-p 7075:7075/udp \
|
-e CLI_OPTIONS='--config node.enable_voting=true' \
|
||||||
-p 7075:7075/tcp \
|
-p 7076:3000 \
|
||||||
linuxserver/nano bash
|
--restart unless-stopped \
|
||||||
|
linuxserver/nano
|
||||||
|
```
|
||||||
|
```
|
||||||
|
docker run -d \
|
||||||
|
--name=wallet \
|
||||||
|
-p 80:80 \
|
||||||
|
--restart unless-stopped \
|
||||||
|
linuxserver/nano-wallet
|
||||||
|
```
|
||||||
|
Then unlock the Genesis funds on the local node to allow it to confirm transactions:
|
||||||
|
```
|
||||||
|
docker exec -it node bash
|
||||||
|
root@f1df092971f0:/# curl -d '{ "action": "wallet_create" }' localhost:7076
|
||||||
|
{
|
||||||
|
"wallet": "A3D63F1B28AC68BCD9E0FF74278C7984A36841C803EF1A81DF92BCD6E3BB18F9"
|
||||||
|
}
|
||||||
|
root@f1df092971f0:/# curl -d '{ "action": "wallet_add", "wallet": "A3D63F1B28AC68BCD9E0FF74278C7984A36841C803EF1A81DF92BCD6E3BB18F9", "key": "0000000000000000000000000000000000000000000000000000000000000000" }' localhost:7076
|
||||||
|
{
|
||||||
|
"account": "nano_18gmu6engqhgtjnppqam181o5nfhj4sdtgyhy36dan3jr9spt84rzwmktafc"
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Then run a local peer to connect up to it acting as an RPC proxy:
|
Here we are using the default private key of `0000000000000000000000000000000000000000000000000000000000000000` for the image.
|
||||||
|
Navigate to http://localhost/#/localhost and enter this key. You should be greeted by the genesis account wallet with 340.28 Million Nano.
|
||||||
|
|
||||||
```
|
From here you can generate new wallets from the home screen and send/receive funds on your local network. Now you will be running an insecure centralized network with a single voting representative and a zero security private key using the commands above. To spinup a standard private or even public network you should read up on Nano's documentation [HERE](https://docs.nano.org/) and continue reading the network design section below.
|
||||||
docker run --rm -it \
|
|
||||||
-p 7076:3000 \
|
|
||||||
-p 7077:3001 \
|
|
||||||
-e PEER_HOST=REPLACE_WITH_LOCAL_IP \
|
|
||||||
linuxserver/nano bash
|
|
||||||
```
|
|
||||||
|
|
||||||
Once both are up and running send some wallet RPC commands inside the voting principle node to unlock the Genesis wallet:
|
|
||||||
|
|
||||||
```
|
|
||||||
curl -d '{ "action": "wallet_create" }' localhost:7076
|
|
||||||
curl -d '{ "action": "wallet_add", "wallet": "REPLACE_WITH_WALLET_ID", "key": "0000000000000000000000000000000000000000000000000000000000000000" }' localhost:7076
|
|
||||||
```
|
|
||||||
|
|
||||||
You can now use the default private key `0000000000000000000000000000000000000000000000000000000000000000` in the web wallet to manage the genesis funds. By acessing the hosted live wallet http://wallet.linuxserver.io/?node=REPLACE_WITH_LOCAL_IP or run a simple nginx container located [here](https://github.com/linuxserver/docker-nano-wallet) to host a wallet locally.
|
|
||||||
|
|
||||||
By default you will be running an insecure centralized network with a single voting representative and a zero security private key using the commands above. To spinup a standard private or even public network you should read up on Nano's documentation [HERE](https://docs.nano.org/) and continue reading the network design section below.
|
|
||||||
|
|
||||||
### Network design
|
### Network design
|
||||||
There are 4 main concepts to grasp from a network standpoint as far as types of endpoints. Before we get started here is a basic network diagram:
|
There are 4 main concepts to grasp from a network standpoint as far as types of endpoints. Before we get started here is a basic network diagram:
|
||||||
|
@ -302,9 +329,32 @@ https://github.com/linuxserver/nano-wallet
|
||||||
It is designed to be run 100% clientside in any web browser and use public RPC endpoints to hook into any network and conduct transactions by locally signing then publishing the result.
|
It is designed to be run 100% clientside in any web browser and use public RPC endpoints to hook into any network and conduct transactions by locally signing then publishing the result.
|
||||||
This can be hosted locally with any simple webserver and pointed to a locally run peer, but for full functionality we reccomend providing a public Https URL with these files along with plugging in legitamite SSL certificates into your RPC endpoints running on 7077.
|
This can be hosted locally with any simple webserver and pointed to a locally run peer, but for full functionality we reccomend providing a public Https URL with these files along with plugging in legitamite SSL certificates into your RPC endpoints running on 7077.
|
||||||
|
|
||||||
|
# Running a node on the LinuxServer network
|
||||||
|
|
||||||
|
We maintain our own network which users can get funds to transact on from our [Discord](https://discord.gg/YWrKVTn) server. If you would like to run a node on our network here is our Docker run command:
|
||||||
|
```
|
||||||
|
docker create \
|
||||||
|
--name=lsio-node \
|
||||||
|
-e PUID=1000 \
|
||||||
|
-e PGID=1000 \
|
||||||
|
-e TZ=Europe/London \
|
||||||
|
-e PEER_HOST=peering.linuxserver.io \
|
||||||
|
-e LIVE_GENESIS_PUB=79F2E157B5667F1C8B6CCB6DF691DAC032B85DEC39E231D29976DCED05F5B1BE \
|
||||||
|
-e LIVE_GENESIS_ACCOUNT=nano_1yhkw7ducsmz5k7pskufytaxoi3kq3gyrgh489bbkxpwxn4zdefyn4rmrrkk \
|
||||||
|
-e LIVE_GENESIS_WORK=c51204c6b69384cb \
|
||||||
|
-e LIVE_GENESIS_SIG=90DDE7B4DC038811180FF5DDE8594F1774542A7AADE3DB71A57AA38A5AED42672E1E8D7ACFAC315BDB0EB5DCB542C610B9C49B2560AE575073855259AF065509 \
|
||||||
|
-p 7075:7075/udp \
|
||||||
|
-p 7075:7075/tcp \
|
||||||
|
-p 7076:3000 \
|
||||||
|
-p 7077:3001 \
|
||||||
|
-v /path/to/data:/config \
|
||||||
|
--restart unless-stopped \
|
||||||
|
linuxserver/nano
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Docker Mods
|
## Docker Mods
|
||||||
[](https://mods.linuxserver.io/?mod=nano "view available mods for this container.")
|
[](https://mods.linuxserver.io/?mod=nano "view available mods for this container.")
|
||||||
|
|
||||||
We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above.
|
We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above.
|
||||||
|
|
||||||
|
@ -322,4 +372,5 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
|
||||||
|
|
||||||
## Versions
|
## Versions
|
||||||
|
|
||||||
|
* **28.05.20:** - Add beta tag.
|
||||||
* **17.05.20:** - Initial Release.
|
* **17.05.20:** - Initial Release.
|
||||||
|
|
Ładowanie…
Reference in New Issue