# Hello FCS
I am Raccoon or RESTfulRaccoon. You might recognize my name from the Firo Discord/Forums or GitHub. I have been an active part of the community for close to two years now. I became interested in Crypto tech in 2019 and I have been expanding my knowledge in InfoSec, Networking, Hypervisors, Blockchain, Linux, Bash, Python, Rust and Powershell, and some other things I'm probably missing since then.
Today I have a proposal that I think could really help FIRO, due to my being self taught I really am not sure how much this is truly worth. I am also aware that the team is currently working at a deficit. I would like to ask for $1000Firo for the script at least, but if it is felt by the team it should be more or less I can change that figure.
## The Pitch
The process to set up a masternode can be confusing if you aren't technical, or tedious if you are running several. The goal of the script is simple: make the masternode set up process as mindless as possible. If we simplify the process with minimal user input in a secure way it will help new users avoid common mistakes freeing up time/energy for the team, while also locking down Firo users server to help prevent unauthorized access, securing the network as a whole.
I should be able to complete the project in about 30 days, but request an extra 15 day buffer (45 days total from acceptance). I currently have 671 lines of code written (flawed metric) for the server side of the project which just needs some fine tuning and a few more items to complete. Unfortunately I didn't have the mind to track my hours and can not provide a good hourly.
## todo!()
Although I have already started the script its incomplete. You can view it here. https://github.com/RESTfulRaccoon/fmnss/blob/main/firo_ssmnss.py . To make this easier I will be going down the list of how I would like the script to work when complete.
### Host
The host side script should work on all common OS (Windows, Mac, Linux) It will gather minimal user input before running such as passwords it might need to do its job or keys if they are available, the IP address of the server, etc.. A more technical user will be able to manually input the information the script would gather if they choose to not input password/key information.
- No changes will be made to the users OS.
- Designed to be as non invasive as possible.
- Should detect if the server is built on a local network.
- Will gather all required information from Firo-RPC needed for the MasterNode start up.
- Generates an SSH key to copy to server.
- Waits for server to send "report" before finishing final setup.
- Validate user input to prevent errors.
#### Server
Aggressive by default, overwrites and deletes files to assist in security, can be disabled by user but not recommended.
- Takes all input given from host, wither generated or user.
- Writes SSH rules changing ssh port to a random port from 10000-59999.
- Creates IPTABLES rules to secure all ports in use.
- Downloads and installs FIROD as well as sets up a configuration file with a random RPC username and password.
- Will auto detect LAN/SUBNET and WAN addresses.
- Deletes any "init-cloud" folders that might exist (to enhance security)
- Auto detects architecture being used
- Downloads the most current version of FIROD
- Sends back a list of all work done, passwords, ip address, ports etc. for the user to store in a safe location. Host will not complete the set up unless this is returned, user will have to manually finish set up if skipped.
#### Optional
Items that wouldn't be required, would take some time to set up, but could also be extremely helpful to Firo in different ways. These can be bundled in to the project or brought up as different proposals later on.
- Integrate script into FiroWallet for simple use, making it even easier for new and non technical users to set up a masternode.
- Add the option to set up masternodes from other blockchains ($DASH, $PIVX), giving us the opportunity to market without marketing by sharing free tech thats helpful to everyone. (dependent on how many other blockchains will be added would be more testing than coding I assume. Unless the process is wildly different.)
- Automated hypervisor set up with Xen. For users or anything else someone might think of (automated hosting anyone?) who have the resources on one machine to run several masternodes. (This would be the longest part of the project, could be brought up in another proposal more in depth upon completion of production ready script.)
## Outcomes
The hope with this would be to make setting up a masternode as mindless as possible for less technical users, potentially even advanced users if given the scope. On board users from other blockchains by bringing them tech with the Firo brand. Make scaling easier with the aid of Xen and a secure script/config files.
## Why me?
As stated earlier most of my experience is self taught, my goal has always been to do contract work and bug bounties. This puts me in a position to get my name out there while also helping a blockchain that I am very fond of at a low cost. I've also spent some time helping new users in the Firo support channel as well as on Firo Forums. Please feel free to ask any follow up questions or pitch in ideas of how this script could be even better!
Thank you for your time.