Main Page

From Ravenland Documentation for RavencoinOS
Jump to navigation Jump to search
Ravencoin OS V1 was the first major release featuring automated IPFS pinning and a mirror of Ravencoin objects on the Ravencoin blockchain
maintained by 'give it a little push'

A Ravenland-img.png Project

RavencoinOS v2 Documentation

  1. Introduction
  2. Installing
  3. Critical Security Detail
  4. Configuring, Environment & Advanced Usage
  5. Recommended Storage Requirements
  6. Device Support

Introduction

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 ARM Architecture utilizing the Raspbian OS 'Raspbian stretch' source. The goal of RavencoinOS is to create an lightweight operating system flavour customized for Ravencoin 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.

The latest version of Ravencoin OS v2 has ravenXtools a feature-rich ipfs, ravend & ipfs swarm configurator (see image closeup for details)
  1. Typical Commandline Wallet functions thru a wrapper wizard (new feature)
  2. Stop/Start IPFS (new feature ordinarily available via systemctl stop/start ipfs)
  3. Stop/Start Ravencoin (new feature ordinarily available via systemctl start/stop ravend)
  4. Join the Ravenland Private Ravencoin DHT Swarm (entirely new feature)
  5. Restore IPFS Defaults. (Rejoin the IPFS Public Bootstrap & wipe any existing private swarm configuration.) (entirely new feature).
  6. Pin Ravencoin objects to IPFS Chain (improved feature). TODO recursive directory ipfs_hashes

(https://bootstrap.ravenland.org).

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.

https://github.com/ravenlandpush/RavencoinIPFSInstaller

Installing

  1. Download the latest RavencoinOS image * RavencoinOS v1
  2. Download win32 Disk Imager here * Win32 Disk Imager
  3. Use win32 disk imager to write the image to your Raspberry PI SD CARD
  4. Select Image you downloaded, Select Target Disk Drive and write disk.

Select Image you downloaded
Select the Target Disk Drive with SD card in and click the 'Write' button
Select the Target Disk Drive with SD card in and click the 'Write' button

Your done! Insert SDCARD into RPI and turn on!

Service Control

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

Securing RavencoinOS

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.

IPFS user change password

passwd ipfs

Ravencoin user change password

passwd ravencoin

pi user change password

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 VNC

raspi-config

Enable OpenSSH Server

# permanently enable ssh on startup/boot
systemctl enable ssh
# start openSSH service
service ssh start

System + Storage Requirements

to go here.

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/91.134.145.4/tcp/5555/ipfs/QmWWA3RAuD9gN3fQBJFed9TZVC4J4BuQfcgfdqGgNNpw1x
#secondary swarm node 2
ipfs bootstrap add /ip4/3.8.238.93/tcp/4001/ipfs/QmUZsTG8yMM8CnfQZhfGmaYRFTP37VwWnBuTuYbjhxSVAX
#tertiary swarm node 3
ipfs bootstrap add /ip4/35.176.228.149/tcp/4001/ipfs/QmZXnxQVHwLQsMar4m9PXY96Lez7Ht6Lz4VmioAVs3UDAG
#4th backup swarm node
ipfs bootstrap add /ip4/18.130.93.116/tcp/4001/ipfs/QmYmhNET8d6Y4UV5PeMhvd5kCj12mR2ha71cZTicdE6wZF

# connect to the Ravenland IPFS Private Ravencoin Swarm
ipfs swarm connect /ip4/91.134.145.4/tcp/5555/ipfs/QmWWA3RAuD9gN3fQBJFed9TZVC4J4BuQfcgfdqGgNNpw1x
# secondary swarm node 2
ipfs swarm connect /ip4/3.8.238.93/tcp/4001/ipfs/QmUZsTG8yMM8CnfQZhfGmaYRFTP37VwWnBuTuYbjhxSVAX
# tertiary node 3
ipfs swarm connect /ip4/35.176.228.149/tcp/4001/ipfs/QmZXnxQVHwLQsMar4m9PXY96Lez7Ht6Lz4VmioAVs3UDAG
# 4th backup swarm node
ipfs swarm connect /ip4/18.130.93.116/tcp/4001/ipfs/QmYmhNET8d6Y4UV5PeMhvd5kCj12mR2ha71cZTicdE6wZF

Setting up a public bootstrap of RavencoinOS

coming soon.

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 -

Common References

Ravencoin Releases
push's ravencoin-ipfs-bootstrap-tools
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