EOS Block Producer Candidacy
This is neither financial nor technical advice.
Everything stated in this post is subject to change both as block.one release more information in regards to hardware / network requirements but also as I think things through / educate myself more over the coming months.
My initial plan was to wait with publishing this until we have received more information, but lately a lot of people have been joining the different channels – asking questions about what kind of hardware we think will be needed for launch / what we plan on running with, and so forth… So here it comes.
This post is based on the template found here:
Name / Organization
Eric / eosio.se (subject to change)
Located in Sweden
Eric is a geek with a masters degree in computer science.
Senior Microsoft Dynamics developer / infrastructure specialist / techie. Comfortable using and administering several flavors of Linux, as well as FreeBSD.
Here to learn, help the community and primarily to use his skills to hopefully help nudge the world on a more honest, just and peaceful path.
Hardware specs (subject to extra heavy change)
This diagram is to be seen as my current thinking regarding what dedicated hardware I am planning to have at launch. If storage isn’t ready I’ll remove the “Primary storage”-machine and turn the two “full nodes & storage” into pure full nodes.
The machines I call “full nodes” will be used both as Query Services (when available) and as connection points for eosiod’s, reachable via the load balancer from the great interwebs.
Primary: Dual Xeon, 128 Gb ram (upgradeable to 2 Tb), 512 Gb SSD
Backup #1: <same specs as above>
Primary: Dual Xeon, 64 Gb ram (upgradeable to 2 Tb), 512 Gb SSD
(in the future this machine will probably need to keep the same amount of ram as the producers to make sure they can validate all blocks on time).
Primary: Dual Xeon, 32 Gb ram (upgradeable to 1 Tb), raided 500 Gb 10k rpm (cache drives), 10 Tb 7.2k rpm
Combined full nodes & storage:
Secondary: Dual Xeon, 32 Gb ram (upgradeable to 1 Tb), raided 256 Gb 10k rpm (cache drive), 10 Tb 7.2k rpm
Tertiary: <same specs as above>
Will be configured to balance traffic between the full nodes and the incoming p2p connections (this way I can easily scale and do my best in helping provide fast access to the blockchain). It will most certainly be hosted by one of the giants to get an extra level of automagic protection.
Each individual machine will receive ram and SSD upgrades as soon as block rewards start coming in. Upgrading main and secondary producers will be of high priority (should be first month of me being elected). This should make sure my setup is ready for quite high usage and also make sure I’ll be able to keep the system up even if the income would drop heavily.
More disks will be added to the EOSIO Storage machines as required.
Regional producers can easily be added when needed to allow horizontal scaling at all producer locations (will start with three, as of today I have secured seven locations in total). Depending on how regional scaling is solved; extra machines could be added for the full nodes as well.
I don’t think scalability will be a huge issue for me as long as I can stay elected and the price of EOS doesn’t drop thousands of percent from where it is at now.
Once enough block rewards has been received I will separate the combined full nodes / storage to their own machines, and based on blockchain usage start adding:
Backup #2: <minimum same specs as the existing producers >
Tertiary: <same specs as the other full nodes>
Quaternary: <will add more machines as usage increases>
Tertiary: This machine will follow the specs for the other storage nodes but on the Epyc platform
Quaternary: ... (will add more machines as usage increases)
Internet connection info
Each ISP in the diagram will provide a fiber connection with minimum 1 gbps (I might be able to secure 10 gbps per line to some of the locations).
Used to connect my primary producer to the other Block Producers (via a full node not shown in the diagram).
Used as a dedicated “private network” to connect my producers, full nodes and storage machines on all locations. This should allow me to stay synced even if attacked heavily
Used to connect the full node and storage machine to the load balancer.
ISP #4 and #5:
Used for all traffic going out from location 2 and 3.
I have secured a total of seven locations where I will place machines to keep my operation heavily decentralized.
When / if needed I will rent rack space at ISPs data-centers (presumably needed mostly for the storage). I have been in contact with two this far and I have been promised up to and including 100 gbps per rack.
I see this as somewhat of a “last resort”, but will go there once that capacity is needed. It does possibly take away some of the decentralization of my operation as well as the ability for me to be able to keep the funds inside the community.
Additional geek-talk such as redundancy, power supply backups, etc
I will presumably run Funtoo on the block producers and the full nodes (currently working together with zaratustra from EOSBrazil on porting the build script). Will try to run FreeBSD on the storage machines (depending on how it will interact with eosiod) as well as on the firewalls.
Fall-back if we fail: Ubuntu.
I would love to run one of my producers on the AMD Epyc platform. This would make it easier to extend amount of ram > 2 Tb. However… My current understanding is that us producers will probably have to agree and limit the amount of tx/s (and possibly how “computationally heavy” blocks we create) to make sure that “slower” producers and full nodes can keep up validating.
My guess is that almost all block producers will go for Intel, therefore I’ll just fall in line… … for now :). I will do my best to make sure at least one of my storage machines run on the Epyc platform to start playing with specific performance testing in regards to the EOSIO platform (Query Services? Disk access? ...).
All of the electricity used at my main location is green, parts of which is produced by my own solar. Hopefully I can make sure to only use green energy for my other locations as well (I haven’t had time to look into this yet).
Currently looking to purchase a decent power backup system for my main location (to make sure I’ll be able to store the electricity produced). I haven’t decided on any specifics but would love to discuss if anyone out there has some good ideas.
Community support initiatives
Highly active in the different telegram groups – always willing to both learn and to share what I know with the community.
As an active participant in the Community Testnet I have learnt a lot. It has been an invaluable experience and I would recommend any serious block producer candidate to join us in the fun ( https://t.me/CommunityTestnet ). We are currently waiting for a a stable and working dawn3 release. As soon as we have that we will start trying to optimize our servers and up the game on performance testing.
Our current tests are mostly limited to the dawn2 releases (because our dawn3 still forks the chain under heavy load).
BP Surveillance Camera
A while back I built a surveillande camera using a raspberry pi. I will set it up at all of my locations to automagically send an image (when motion is detected) to a group in telegram. This way, if someone tampers with the hardware, the community will know and can react accordingly. As soon as I have some time (and nothing worth prioritizing higher) I will make sure to create a guide and post the source code so any BP candidate can follow this example if they want to.
Currently working on EOSPortal.io – a voting portal to help token holders stay informed and be able to hold block producers accountable, among other things. More on this later.
I believe that inflation lowers the value of all existing EOS.
I believe that lowering the inflation is a way to share profit with the entire community.
I believe that the best way to increase the value of the platform is by creating value within the platform.
I also believe that those who perform work should be payed.
I think worker proposals are a great solution and I will support them heavily.
I believe that there’s a fine line between supporting work in the platform and outright paying for votes. The biggest difference for me lies within the motivation behind the act.
Is it done in the interest of the individual(s) or the community?
I will write more about what these moral values mean to me in the future.
As well as how they will affect my work if I'm voted in as block producer.