Posted on 2021-10-07 by watblocknet
Status:
Seeking funding
So2oVpBK5KN3mNQ939dMyycDGsc7N8sBj7ahVtRiobW4isHkydvSZDubDdeaxNzzgzFdU8nUhVZUNDUZhCcX3d2s7N3VJ8RbrJf2cgoriqBc
The Wownero developers and community have done a great deal of work to create easy-to-use and ready-to-deploy tools for getting up and running. However, I think we could provide even easier tools for newcomers and die-hards alike.
I want to provide some additional DevOps tools and use Terraform to utilize modern Infrastructure-as-Code techniques. This will help decentralize the network by adding more public nodes, encourage development and participation, and decrease the time to deployment for Wownero infrastructure.
The initial goal will be to provide the community to get up and running as fast as possible with with new nodes in different cloud services like DigitalOcean, Azure, AWS, OVH, and others. Eventually this could be setup to be easily deploy in homelabs like Proxmox or ESXi/vSphere.
As this project progresses, it will not be limited to Wownero nodes - it will also encompass deploying other infrastructure like Block Explorers, Miners, TipBots, and more!
The first phase of this project will have 4 deliverables: A node, an Install Script, a Terraform Deployment Script, and extensive Documentation. Each one builds on top of the other for the goals of this project.
The first order of business is to get a node up and running and getting a feel for the costs and maintenance needed for running this through a cloud provider. This will be a public node, for everyone to see and use.
This node is currently running here - I've tested it with several wallets and everything appears to be running smoothly. It's already listed at monero.fail.
After the node is up and running, a BASH install script will be created to check permissions, install requirements, install wownerod, setup systemd services, get the blockchain syncing, and cleaning up after itself.
This script will be called by the Terraform Deployment Script but should also be able to run independently if it's ran inside of a shell prompt.
If Terraform is installed on your system, it makes it easy to type in one command and deploy infrastructure with one single command. It handles the authentication, provisioning, installation, and customization of the cloud instances instantly. this comes with one caveat - it has some minor configurations that need to take place first.
This is where my work will come in - making it ready-to-go and some minor updates to a config file to get anyone up and running.
The documentation will be extensive and explained in everyday language to get up and running. It will also be presented from a persepective that assumes the user is new to cryptocurrency, linux, terraform, and cloud computing.
The code will also be well commented to explain to anyone that's looking over the scripts will have a very good idea of what's going on with the execution of it.
I'm currently working full-time so these small milestones will be spread out over 3 months (90 days) to complete.
keep in mind we have ansible scripts that do something very similar (https://git.wownero.com/dsc/ansible-remote-node/) and a handful of users that run nodes for fun
- Install Terraform on a Linux system
- Make sure you have an ssh-key generated in $HOME/.ssh/
- Clone this git repo: https://github.com/Michael-Free/wownero-node-terraform
- cd to repo, cd to providers, then digitalocean.
- Modify the vars.auto.tfvars file. change the do_key value to your digital ocean access key and save it.
- Perform a `terraform init` to initialize the playbook
- Perform a `terraform validate` to make sure everything is working properly
- Perform a `terraform plan` to see what will be happening when this is deployed
- Perform a `terraform apply` deploy a new instance in the digitalocean cloud