- 1 RavencoinOS v2 Documentation
- 2 Introduction
- 3 Installing
- 4 Service Control
- 5 Securing RavencoinOS
- 6 Enable VNC + openSSH Server (WARNING SEE SECURITY SECTION)
- 7 System + Storage Requirements
- 8 Crontab Configuration for non RavencoinOS systems
- 9 Upgrading RavencoinOS Ravencoin to latest version for the October ASIC fork
- 10 Common References
RavencoinOS v2 Documentation
- Critical Security Detail
- Configuring, Environment & Advanced Usage
- Recommended Storage Requirements
- Device Support
What is RavencoinOS?
RavencoinOS is an Operating Systems providing automation , a rudimentary toolset and service for doing things on the Ravencoin Blockchain produced by Ravenland and maintained by push.
RavencoinOS is created for the Raspberry Pi2 and Pi3 and since 2019 Pi4 ARM Architecture utilizing the Raspbian OS 'Raspbian Buster' source. The image is a unified image which means it supports both rpi2, 3 and rpi4 and should be backwards compatible. Rpi4 is highly recommended, although rpi3 should work smoothly. Rpi2 devices are getting old now and are no longer recommended.
The goal of RavencoinOS is to create an lightweight operating system flavour customized for Ravencoin and IPFS Blockchainwith a supplementary toolset of utilities (RavenTools) supporting each blockchain. RavencoinOS provides an onboot-process automation that automatically sets up Ravencoin Blockchain, Ravencoin Wallet & Fullnode. Ravencoin RPC service and the Interplanetary File System (IPFS-go), without any user intervention.
RavencoinOS therefore represents a simple and easy way both for users wanting to get started with Ravencoin and IPFS blockchain development, as well as allowing users unaccustomed to running their own Consensus Blockchain Service + IPFS Gateway to help support the Ravencoin DHT network by mirroring the Ravencoin IPFS_Hashes provided by Ravenland.org thru its IPFS Bootstrap service.
In addition to the ravend and ipfs daemons, systemD units are provided for easily stopping and starting both IPFS and Ravend services. The ravenXtools toolset provided in the latest version of RavencoinOS v2 allows several additional features provided thru a menu system feature that starts at boot-time, and will function expectedly once the ravencoin blockchain synchronises fully.
- Typical Commandline Wallet functions thru a wrapper wizard (new feature)
- Stop/Start IPFS (new feature ordinarily available via systemctl stop/start ipfs)
- Stop/Start Ravencoin (new feature ordinarily available via systemctl start/stop ravend)
- Join the Ravenland Private Ravencoin DHT Swarm (entirely new feature)
- Restore IPFS Defaults. (Rejoin the IPFS Public Bootstrap & wipe any existing private swarm configuration.) (entirely new feature).
- Pin Ravencoin objects to IPFS Chain (improved feature). TODO recursive directory ipfs_hashes
RavencoinOS utilizes a collection of tools called the ravencoin-ipfs-bootstrap-tools, which has its own github repository at https://github.com/ravenlandpush/ravencoin-ipfs-bootstrap-tools.
Non Raspberry Pi Users may still rejoice!
Non Raspberry PI Linux Users can run the Ravencoin IPFS Bootstrap tools on a Virtual Machine or Dedicated Server as well since 27/05/2019. For more detail please take a look at the RavencoinIPFSInstaller repository on github for full instructions on how to sync with the IPFS Bootstrap provided by Ravenland on any Linux server.
- Download the latest RavencoinOS image * RavencoinOS v1
- Download win32 Disk Imager here * Win32 Disk Imager
- Use win32 disk imager to write the image to your Raspberry PI SD CARD
- Select Image you downloaded, Select Target Disk Drive and write disk.
Your done! Insert SDCARD into RPI and turn on!
The creation of two systemD units, one for 'ipfs' and the other for 'ravend' allows the RavencoinOS user to monitor the status or effect the service by starting/stopping it and checking the status of the service (such as uptime) and error logs.
Start Ravencoin Daemon
systemctl start ravend systemctl status ravend
Stop Ravencoin Daemon
systemctl stop ravend systemctl status ravend
Start IPFS Daemon
systemctl start ipfs systemctl status ipfs
Stop IPFS Daemon
systemctl stop ipfs systemctl status ipfs
Disabling (or enabling) a Service
It is possible to disable or enable the ipfs and Ravencoin services if you only want to run a full node, or, if you want to stop syncing new objects once you have a complete ipfs blockchain mirror up to a certain date. This could be useful if you want to perform other operations. This is discouraged, but details are provided for thoroughness.
systemctl disable ravend systemctl enable ravend systemctl disable ipfs systemctl enable ipfs
If you wish to configure wireless you will need to manually configure your wireless card. In ravencoinOS release 7.1.2 and above this can be done via option 21 of ravenXtools menu (right menu of the gui), or by typing raspi-config at the terminal.
In order to run VNC or other secure shell services such as openSSH you must change the default raspberry pi passwords, or otherwise face potential vulnerability, due to RavencoinOS default passwords for pi, ipfs and ravencoin users. The default passwd is 'raspberry'. Be sure to change these if you are going to enable VNC + SSH. It is absolutely CRITICAL you change passwords before enabling remote connectivity. Do not try to do so without it will open you up to potentially losing control of your Operating System. In the latest versions you only need to change the pi user password
IPFS user change password (deprecated in latest versions)
Ravencoin user change password (deprecated in latest versions, ravencoin now runs as pi user)
pi user change password
sudo passwd pi
Enable VNC + openSSH Server (WARNING SEE SECURITY SECTION)
It is possible to remotely administer the RavencoinOS via VNC or an openssh server connection as you would be able to do with the traditional version of Raspbian for the Pi. Please not these services are disabled by default for your protection. You should change the above 3 passwords as described in the 'securing ravencoinOS' above before proceeding with enabling the VNC + openSSH server.
Enable OpenSSH Server
# permanently enable ssh on startup/boot systemctl enable ssh # start openSSH service service ssh start
System + Storage Requirements
Presently we recommend a minimum sdcard size of 64GB and a recommended size of 128GB for longevity. In recent versions there is an experimental maximum filesize feature (default 500MB) that allows you to set the maximum filesize to mirror, this prevents abusive action on the chain and prevents the rpi from filling the disk). It also allows users to pin smaller files or use smaller sd cards if they wish. We still highly recommend using 64GB and up.
Setting up a Private Swarm network that is not public on RavencoinOS
RavencoinOS v2 can do this using the provided inbuilt ravenXtools configurator. For ravencoin OS v1 though or any Linux System compatible, the process is presently still manual. See ravencoin-ipfs-bootstrap-tools on github. (references below). This will eventually be added to the RavencoinIPFSInstaller repository, as part of the process released recently for Linux systems on 27/05/2019.
The below code is how to join the Ravencoin IPFS Bootstrap private swarm network. This is an IPFS network that is only accessible by other IPFS servers which have been setup in the same way. An example of how to bootstrap, and add several peers to the swarm is described below. Although this setup was generally intended for the RavencoinOS and RPI. It will now work on Any Linux system. See Ravencoin IPFS Installer for more details about installing IPFS on non RavencoinOS Linux systems before trying to run the below.
#RAVENCOIN IPFS PRIVATE SWARM SETUP # copy this key to your /home/username/.ipfs wget https://bootstrap.ravenland.org/swarm.key # copy the secure key to the user you run ipfs' ipfs dir run ipfs init if this is a new install # ipfs init cp swarm.key ~/.ipfs # stop ipfs if it is running killall ipfs # start ipfs ipfs daemon & # remove public bootstraps ipfs bootstrap rm all # Add ravenland IPFS swarm to bootsrap ipfs bootstrap add /ip4/22.214.171.124/tcp/5555/ipfs/QmWWA3RAuD9gN3fQBJFed9TZVC4J4BuQfcgfdqGgNNpw1x #secondary swarm node 2 ipfs bootstrap add /ip4/126.96.36.199/tcp/4001/ipfs/QmUZsTG8yMM8CnfQZhfGmaYRFTP37VwWnBuTuYbjhxSVAX #tertiary swarm node 3 ipfs bootstrap add /ip4/188.8.131.52/tcp/4001/ipfs/QmZXnxQVHwLQsMar4m9PXY96Lez7Ht6Lz4VmioAVs3UDAG #4th backup swarm node ipfs bootstrap add /ip4/184.108.40.206/tcp/4001/ipfs/QmYmhNET8d6Y4UV5PeMhvd5kCj12mR2ha71cZTicdE6wZF # connect to the Ravenland IPFS Private Ravencoin Swarm ipfs swarm connect /ip4/220.127.116.11/tcp/5555/ipfs/QmWWA3RAuD9gN3fQBJFed9TZVC4J4BuQfcgfdqGgNNpw1x # secondary swarm node 2 ipfs swarm connect /ip4/18.104.22.168/tcp/4001/ipfs/QmUZsTG8yMM8CnfQZhfGmaYRFTP37VwWnBuTuYbjhxSVAX # tertiary node 3 ipfs swarm connect /ip4/22.214.171.124/tcp/4001/ipfs/QmZXnxQVHwLQsMar4m9PXY96Lez7Ht6Lz4VmioAVs3UDAG # 4th backup swarm node ipfs swarm connect /ip4/126.96.36.199/tcp/4001/ipfs/QmYmhNET8d6Y4UV5PeMhvd5kCj12mR2ha71cZTicdE6wZF
Setting up a public bootstrap of RavencoinOS
Crontab Configuration for non RavencoinOS systems
This is incomplete/unfinished.
# Add a cronjob command for the installed tools # this script does rightly assume user has ran a cd ~ and/or is in their /home/user directory. # add the ravencoin-boot-strap to cron to run at 1AM every day and sync ravencoin blockchain objects occurring on IPFS croncmd="/home/$whoami/ravencoin-boot-strap-tools/sync_all_not_related_ipfs_hashes.sh > /home/$whoami/ravencoinipfsbootstrapmirror.log 2>&1" # uncomment this alternative command if you want to sync all RELATED ravencoin IPFS objects (these are ipfs_hashes that appear inside any other ravencoin ipfs_hash) #croncmd="/home/$whoami/ravencoin-boot-strap-tools/sync_all_and_related_ipfs_hashes.sh > /home/$whoami/ravencoinipfsbootstrapmirror.log 2>&1" # Leave this be cronjob=" 0 1 * * * $croncmd" # To add it to the crontab, with no duplication: ( crontab -l | grep -v -F "$croncmd" ; echo "$cronjob" ) | crontab -
Upgrading RavencoinOS Ravencoin to latest version for the October ASIC fork
Please find below a link with instructions for upgrading to Ravencoin v2.5.1 for the upcoming ASIC fork on September 2019. You must run the shellscript as the 'pi' user. (the default user on the terminal).
Full instruction and video on youtube
Walkthrough upgrading RavencoinOS v2 (rc1 - release candidate 1 to latest Ravencoin for the fork) https://youtu.be/wRtGPUiZPn4
Link to Github (not necessary but included for posterity)
How to Upgrade
- MAKE SURE YOU ARE THE 'pi' user. Otherwise this will not work!
wget https://github.com/ravenlandpush/ravencoin-rpi/releases/download/2.5.1-upgradescript/patch-ravencoin-latest-ravencoinOS.sh chmod +x patch-ravencoin-latest-ravencoinOS.sh ./patch-ravencoin-latest-ravencoinOS.sh
Ravenland Asset Explorer and IPFS scraper service
Ravenland Bootstrap Service
Ravencoin OS website
Ravencoin IPFS Installer + Pinner for Linux systems
Ravencoin Asset Distributor based on Ravenland Faucet
Ravenland Faucet Service
ravencoin-rpi ARM binary for Ravencoin ARM architecture maintained by push @ ravenland (previously being maintained by under @ ravencoin.network).
IPFS install Docs
Ravenland IPFS mirror service
Ravenland Gateway Service
Ravenland IPFS Upload Service
API Service not released
Retail Platform Service not released