Witness appeal written in Why-How-Who format
So, I must say that I am "witness resurrected". It so happened that, I joined STEEM last year, setup a witness server on the 4th day, requested @gtg for 0.02 STEEM or so for broadcasting signed message to the chain. Then, waited for a few days as per his instruction and went live.
My intention was to "Make Money" & donate it to a cause and that was clearly communicated too.
Over a period of time I started working full time on the blockchain as opposed to the financial project I was working for almost 9 years and many other projects. The witness server was not stable as it ended up as the development server for first Python code, later Graphene/Chainbase code base written using Boost libraries. (Well, popular names of Graphene are bitshares and Chainbase is Bitshres 2.0, STEEM as well as EOS.)
Neither making money, or supporting the NGO happened.
Now, (Selfish) Reasons why I am a witness:
- I believe, there is great potential learn from the witness (consortium) process
- Technical know-how on the BFT distributed state machines can be improved. Even a BFT solution with 2 nodes is very difficult and the 21 node scenario gives an opportunity to learn much more.
- The nitty-gritty details of patches, Hard Forks, TESTNETS and software development process should not be impacting the end users
- While we should not be Facebook like or Microsoft like who is often quoted for the questionable privacy practices, Monopoly practices, Blue Screen of Death (BSD) etc, there is no doubt that they always created user friendly products. While I am personally much more comfortable with a terminal, there is no argument when it comes to the usability of Windows XP. So, lets learn from the best/worst on the usability and this is an opportunity to support the masses by providing them with a usable social network.
- Personally I would prefer Diaspora based network over a STEEM based network, but considering the practical aspects, front ends based on STEEM like STEEMPeak.com are excellent products and cann support the content economy in the long term.
- Though there are tons of "blockchains" out there, I still believe Graphene - Chainbase derived solutions like STEEM and SCORUM can be the best choices for social networking and also with some more maturity, this can be extended to Open Data initiatives where a public block chain is required.
- My home province faced a natural calamity in August. I was part of a volunteer group of 1900 engineers who created a technology platform for rapid disaster rescue. One of the many things we have learned in the process is the need for a blockchain platform which is open and public to avoid corruption, bring transparency, ensure that relief items including medicines are reaching the needy, make sure that the medicines which are expired are NEVER again sent to any other needy people anywhere else in the world.
How ?
I happen to code for a living and looking for code changes in STEEM code base is one of my daily chores. This experience will be used to bring up and maintain the STEEM blockchain node. There are tools like Tinman from STEEM Inc which can be effectively used to test the code changes. Going forward, I am hoping to work closely with the community and create methods based on gamification to test the code base much more rigorously. I am not sure how "gamification" can be effectively used for the testing, but I am sure we will be able to find fun and rewarding means to do the same.
Infrastructure
- A primary server with enough CPU and 128 GB RAM
- Feed update using Conductor on a small AWS instance
- Secondary will go live shortly.
Patch application
The code changes in Github is synced to the Primary for now and major versions will be compiled and kept ready. Switching to a new version without replay requirement is quick. Once the secondary goes live, I will be creating a gitlab based CI pipeline to automate the workflow and do fail-over using conductor.
Familiarity with the code
- Hands on experience with code base till 19.0.2, Tinman code base, SSO using Steemconnect, Stream computing of the blockchain using a Python code base similar to @jesta's chainsync, to Redis, Transformations and long term storage into MongoDB.
- Familar with code base till 19.0.5
- No familiarity with RocksDB but an attempt to replace the MongoDB component to RethinkDB or something better is underway.
- Appbase - no familiarity
- Hivemind - familiar with the high level architecture.
- Hands on Experience with Steem-Python
- no JavaScript background & Jealous about all those who can use Steem-JS
Why don't everyone - community, witnesses and STEEM Inc take this opportunity to create a truly decentralized, community driven project by introducing a QA process which will be independent of the blockchain development ?
The Goals can be formulated from the witness testaments regarding HF20 written by the developers.
A DAO can be created and this can do the following but not limited to it:
- help the developers to run the TESTNET
- ensure that the code has enough test coverage
- maintain the CI-CD pipeline
- generate transactions mimicing the MAIN-NET
- publish test reports on a periodic basis
- help to bring in bug bounties
- create a code of conduct
- Attempt to join various blockchain consortiums
- work with Academicians in research
A starting point can be using something like https://gitlab.com/SBCDAO/
Summary
If, the above given selfish reasons are good enough to be a witness, I would love to get more votes to climb from the 200+ position to something meaningful.