Witness update & Suggestions for the future of STEEM

avatar
(Edited)

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.

20180929_134618.png

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

#Suggestions

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.



0
0
0.000
21 comments
avatar

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.

0
0
0.000
avatar

Looking good my friend. Keep up the good work and we will together move up the rank.

Have a nice weekend.

0
0
0.000
avatar
(Edited)

Conductor is a good tool to update the witness status, failover etc. For example, an update is as simple as follows:

ME@COMMAND_CENTER$ conductor update
What should be your witness URL? [https://steemit.com/witness-category/@bobinson/my-witness-thread]: https://steemit.com/witness-category/@bobinson/witness-update
How much do you want the account creation fee to be (STEEM)? [0.100 STEEM]:
What should be the maximum block size? [131072]: 65536
What should be the SBD interest rate? [0]:

Configuration:
---------------
{
    "witness": {
        "name": "bobinson",
        "url": "https://steemit.com/witness-category/@bobinson/witness-update"
    },
    "props": {
        "account_creation_fee": "0.100 STEEM",
        "maximum_block_size": 65536,
        "sbd_interest_rate": 0,
        "account_subsidy_budget": 797,
        "account_subsidy_decay": 347321
    }
}

Do you want to commit the updated values? [y/N]: y

EDIT: conductor needs updates and its better to go with cli_wallet for now.

0
0
0.000
avatar

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.

0
0
0.000
avatar

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.

0
0
0.000
avatar

Wow.. that is a very powerful Server... how much does it cost?

0
0
0.000
avatar

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.

0
0
0.000
avatar

0
0
0.000
avatar

Thank you!
And, just signed the first block

  • Witness bobinson recovered on block 26407973, total miss= 2. 2018-9-30 21:15:51 (UTC)
0
0
0.000
avatar

Excellent, and for what it's worth... I agree with you on gitlab.

0
0
0.000
avatar

nice- i will be following you to learn more and see how your witness node goes :) please keep us updated- i like your style!

0
0
0.000
avatar

I hope my witness vote gave you a needed boost!

0
0
0.000
avatar
(Edited)

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

0
0
0.000
avatar

I myself am trying my level best to make others give witness vote to you. You soon gonna reach top 50

0
0
0.000