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:

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.

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.

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.