Witness Introduction - Part 1 - Balancing Witnesses

I am dividing this introduction into two parts: pre and post server setup. I have already setup my witness account; I shall be using the same username but a "witness account" requires separate keys to be generated. So you can already vote for me on the witness page.

However, I am now waiting for a server to be free at the target hosting company. But, you may ask, what am I waiting for? Aren't there plenty of other hosting companies? So, let me explain. . .

Back to the Future

Let me rewind a little, back to about 3 weeks ago, to those few days of the "bandwidth limit exceeded" problem. It was during this period that @personz and @reggaemuffin urged me to put myself forward as witness. I was flattered and honoured, but mainly I was plain shocked!

I had been thrust from a geeky corner of Steemit, curating mathematics and physics articles, to suddenly being centre stage. Well, maybe not exactly in the centre, but at least on the stage. I thought about this for a couple of days and it dawned on me that I was enjoying it. What I have always loved is solving puzzles, whether they be mathematical, psychological or social. And Steemit still has a lot of puzzles to solve!

Never mind the techie side of running a witness server; I have supportive teachers and, anyway, nothing is that hard to learn - it is just another puzzle. What I would like to do is understand the codes. Just as I have written about the rewards algorithm and the bandwidth issue, both of those articles involved trying to understand the underlying rules. And although algorithms and formulas may look cold and analytical, they are the rules that govern the behaviour of this platform.

What I would like, is to see a community that is vibrant and creative, and a user experience that is fast, simple and rewarding. I would seek to support whatever can be done at the witness level to achieve all of this.

Balancing Witness Locations

The term "load balancing" tends to refer to balancing processing power on computer networks so as to maximise throughput and avoid overloading any single node. But our network of witnesses is not wholly about their servers, it is also about the people themselves. The Steem blockchain, and all the user interfaces such as Steemit and chainBB, operates every second of every day non-stop. If there is a problem, it requires human intervention, but if many witnesses are clustered in the same timezone of the world, and most of them happen to be asleep, then it can take longer to resolve any issues.

This seemed to have happened during the bandwidth crisis, when only a limited number of witnesses were visible in the chatrooms. Let me stress, some may well have been active, they were just not visible. With so many Steemians in China, Korea, Japan and India, I think we really need more witnesses in South-East Asia. I currently live in Thailand and can see the change in traffic between the Americas going to sleep and Europe waking up; we need more witnesses in this part of the world to manage any issues that happen during these hours.

Balancing Server Locations

And so I come to the issue that is slightly holding me up: where to locate my witness server? I have taken the advice of @personz, who uses a hosting service in Luxembourg. It is modestly priced for the spec and located in a fairly "safe" country; it is also close to one of Amazon AWS's nodes in the UK. The service is so good that they need to get more hardware! I know, there are other hosting services with great support; this is just a choice to decentralise as much as possible the distribution of witness servers.

Indeed, I have experience of hosting problems. Some years ago I had issues with a website and, to cut a long story short, the hosting company had to admit there were errors on the hard-drive and that they had to physically change the drive. These things happen; nobody to blame but, again, it is better that any risks of physical problems be spread around different servers in different countries.

Witness Communications

The art of a good online environment is that the users are blissfully unaware of all the activities behind the scenes. How many people really want to understand the complexities of blockchain technology? Rule number one in marketing: sell the benefits, not the features. But glitches happen, exposing the user interface as a mask behind which runs a web of code.

Users obviously notice the glitches, like the bandwidth limit or a sudden inability to interact with the blockchain, but are largely bemused as to the cause. This is where some swift communication with the Steemian community is important. As there does not seem to be a functioning communications department on Steemit, it is up to the witnesses to step forward and keep the community informed.

It is important to have someone articulate any problem in a langauge everybody understands. Even if it just to say, "We are aware of problem P. You may carry on doing A, B and C. Avoid doing X and Y as this may make the problem worse. More updates soon." That wasn't so hard, was it! There are some notable exceptions of witnesses with good communication skills, but sending out updates during a problem is just as important as announcing its eventual solution.

And Finally...

In summing up, what I'd like to achieve is an understanding of the underlying code so that any proposed improvements are feasible and genuinely beneficial to the platform. This firstly means understanding the roles and functions of the witness server in detail. I would like to see a decentralisation of witnesses, both in terms of where they live and where their server lives, so that new witnesses can be spread more evenly around the world. And I would like to improve communication, especially during any problems, between witnesses and the community.

Part 2 coming soon. . .


As you may know, to vote for a witness outside the top 50, go to the witness page, scroll down to just underneath the 50th name, type in my name "rycharde" and click VOTE. The name will then appear just below that text box. Thanks!

H2
H3
H4
3 columns
2 columns
1 column
11 Comments