From a508aa29b5610304aba2657a88fd815ebadb85eb Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Fri, 29 May 2020 05:30:20 +0200 Subject: [PATCH] Bot Updating Documentation --- images/docker-nano.md | 137 +++++++++++++++++++++++++++++------------- 1 file changed, 94 insertions(+), 43 deletions(-) diff --git a/images/docker-nano.md b/images/docker-nano.md index 01ed01d64..be96ecf44 100755 --- a/images/docker-nano.md +++ b/images/docker-nano.md @@ -1,15 +1,14 @@ # [linuxserver/nano](https://github.com/linuxserver/docker-nano) -[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-nano.svg?style=flat-square&color=E68523&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver/docker-nano) -[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-nano.svg?style=flat-square&color=E68523&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver/docker-nano/releases) -[![GitHub Package Repository](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=GitHub%20Package&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver/docker-nano/packages) -[![GitLab Container Registry](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab&logoColor=FFFFFF)](https://gitlab.com/Linuxserver.io/docker-nano/container_registry) -[![Quay.io](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/nano) -[![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/nano.svg?style=flat-square&color=E68523)](https://microbadger.com/images/linuxserver/nano "Get your own version badge on microbadger.com") -[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/nano.svg?style=flat-square&color=E68523&label=pulls&logo=docker&logoColor=FFFFFF)](https://hub.docker.com/r/linuxserver/nano) -[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/nano.svg?style=flat-square&color=E68523&label=stars&logo=docker&logoColor=FFFFFF)](https://hub.docker.com/r/linuxserver/nano) -[![Build Status](https://ci.linuxserver.io/view/all/job/Docker-Pipeline-Builders/job/docker-nano/job/master/badge/icon?style=flat-square)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nano/job/master/) -[![](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/nano/latest/badge.svg)](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/nano/latest/index.html) +[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-nano.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-nano) +[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-nano.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-nano/releases) +[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-nano/packages) +[![GitLab Container Registry](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab)](https://gitlab.com/Linuxserver.io/docker-nano/container_registry) +[![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/nano.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge)](https://microbadger.com/images/linuxserver/nano "Get your own version badge on microbadger.com") +[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/nano.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/nano) +[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/nano.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/nano) +[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-nano%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nano/job/master/) +[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Flsio-ci.ams3.digitaloceanspaces.com%2Flspipepr%2Fnano%2Flatest%2Fci-status.yml)](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. @@ -27,6 +26,14 @@ The architectures supported by this image are: | x86-64 | amd64-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 @@ -45,7 +52,7 @@ docker create \ -e LIVE_GENESIS_ACCOUNT=nano_xxxxxx `#optional` \ -e LIVE_GENESIS_WORK=WORK_FOR_BLOCK `#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` \ -p 7075:7075/udp \ -p 7075:7075/tcp \ @@ -77,7 +84,7 @@ services: - LIVE_GENESIS_ACCOUNT=nano_xxxxxx #optional - LIVE_GENESIS_WORK=WORK_FOR_BLOCK #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 volumes: - /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_WORK=WORK_FOR_BLOCK` | Genesis block proof of work | | `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 | ### Volume Mappings (`-v`) | 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 @@ -188,7 +212,7 @@ The default proxy config is stored in `/config/rpc-proxy.json`: "count":"64" }, "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"] \ - --config node.receive_minimum = "1000000000000000000000000"\ --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. ### 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 \ - -e CLI_OPTIONS='--config node.enable_voting=true' \ - -p 7075:7075/udp \ - -p 7075:7075/tcp \ - linuxserver/nano bash +docker run -d \ +--name node \ +-e CLI_OPTIONS='--config node.enable_voting=true' \ +-p 7076:3000 \ +--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. -``` -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. +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. ### 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: @@ -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. 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://img.shields.io/badge/dynamic/yaml?style=for-the-badge&color=E68523&label=mods&query=%24.mods%5B%27nano%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=nano "view available mods for this container.") +[![Docker Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=mods&query=%24.mods%5B%27nano%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](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. @@ -322,4 +372,5 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to ## Versions +* **28.05.20:** - Add beta tag. * **17.05.20:** - Initial Release.