Witness update & Suggestions for the future of STEEM
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.
That's an excellent set of suggestions. Let's hope you'd be able to climb in the ranks and make you voice heard. I like the vision of what Steemit Inc is going for. But their execution some of the worst and it almost resemble a project run by a government.
Whether I climb the ladder or not is an issue - thank to the blockchain and especially this very code base, I can afford to run the server for few months without earning anything. I am sure the learning is enough to make the monetary ends.
On STEEM I believe, they are on the right track & soon they should be able to add support for smart contracts and then for ICOs (SMTs). They are moving non-consensus plugins away from the blockchain (chainbase) & syncing to rocksdb. Unlike projects like Lino to which Dlive migrated, the core blockchain code is written in Formally Verified C++ and already battle tested. Even with all these glitches, there was not even on security issue or challenges to the core blockchain consensus code (DPOS). Which means, STEEM as a blockchain has a very good future even as the consensus part of private chains. Say, for example the private component of XRP. It can also become part of Hyperledger eco-system just like Stellar. So what I think is irrespective of what happens to Steemit the blockchain project is going to be a success in the long term.
I hope my witness vote gave you a needed boost!
indeed @haejin ! Much appreciate the vote. Working on a means to create test transactions on the TESTNET now. Progress report and request for suggestions from the community is here : https://hackmd.io/s/ByT1BuG5m
@haejin Wrote a small piece that might be interesting for "investors" - got access to an Intel program to test STEEM on their hardware. Technically STEEM blockchain is the first to "officially" do this. ie, there are instances of this being tested earlier but not in an "official" means that can be used for PR etc.
https://steemit.com/steemdev/@bobinson/accelerating-steem-with-intel-optane
Wow.. that is a very powerful Server... how much does it cost?
It is a EC2 instance with - Intel Xeon Platinum 8000 series (Skylake-SP) .. https://aws.amazon.com/ec2/instance-types/c5/
Since we were compiling the code back and forth, I kept one NVME to sync the code from the repo and compile on half the cores and the half the cores were running the primary witness. I am trying to get gitlab working.
This post has been rewarded with 100% upvote from @indiaunited-bot community account. We are happy to have you as one of the valuable member of the community.
If you would like to delegate to @IndiaUnited you can do so by clicking on the following links: 5SP, 10SP, 15SP, 20SP 25SP, 50SP, 100SP, 250SP. Be sure to leave at least 50SP undelegated on your account.
Please contribute to the community by upvoting this comment and posts made by @indiaunited.
Looking good my friend. Keep up the good work and we will together move up the rank.
Have a nice weekend.
deal :)
Good update @bobinson. We are with you. 😀
Posted using Partiko Android
thank you ...
Thank you!
And, just signed the first block
Excellent, and for what it's worth... I agree with you on gitlab.
nice- i will be following you to learn more and see how your witness node goes :) please keep us updated- i like your style!
thank you :-)
Grate update!
Posted using Partiko Android