jesta witness update (2018-Q3)
I wanted to take a while today to update the Steem community on what's been going on over on my side of the blockchain. This post will be part progress report, part transparency report, and a touch of standing on my soap box.
June/July Recap
The first thing that makes sense to dive into is an update of what's happened since my last update, which was about 6 weeks ago. It's been an incredibly busy time and I'm very grateful that a number of different projects have been coming to a close within the last week. From a birds eye view, my time has been split between:
- Rolling out my own dedicated/owned infrastructure.
- Negotiating/selling the startup I worked on before joining Steem.
- Wallet tech/development.
- Building up the business and team behind @greymass.
- Exploring the intricacies of the EOS DPoS implementation.
- 2x Steem "emergency" maintenance upgrades.
- A number of discussions around Steem politics.
Dedicated/owned Infrastructure
I completed the paperwork, signed a 3-year lease, installed the hardware, and configured the cabinet to finally own a small portion of infrastructure I provide. It may not look like much yet, but it's progress and I'm pleased with it thus far:
"It's only two servers and a switch, easy!" - @jesta, May 2018
Walking into this undertaking a few months ago I really underestimated the effort it would end up taking to actually rack and configure this small amount of hardware. What I initially thought would just be "a day at the data center" turned into about 6 long days of driving back and forth to complete the various installations. I was an idiot for thinking it'd be so easy.
So why go through all this trouble? This new hardware/cabinet for my Steem witness node means:
- Dedicated internet connection to 13+ Tier-1 internet providers via fiber, guaranteeing 99.99% network uptime and diverse connectivity.
- A physically secured Tier-3 data center with redundant power and an on-site generation capacity of 3x it's usage (guaranteeing 100% power uptime).
- A full rack worth of space, providing plenty of room for additional assets.
The hard part is over at this point luckily, and as of yesterday my primary Steem witness is now running 0.19.10 on one of those two dedicated machines (the bottom one).
Note: In terms of actual Steem block production resources, that single server will be the only actual witness server at this location, since it's better to diversify locations rather than put all the eggs in one basket. The plan is to replicate this setup in another data center, in a different geographical location, to build and own a fully distributed setup. Until that's completed, I'll continue to operate a number of rentals (still dedicated) to act as backups.
Expanding the amount of servers in this cabinet is the next step - with plans on adding another 2-3 larger servers and a handful of low-power consumption devices (NUCs maybe) to act as workers. Currently the entire cabinet exists as a walled garden with no public access - but as the resources are added, the network will be segmented in such a way to allow the private existence of block production resources while also allowing public access to any APIs the new servers host.
Offloading responsibilities and Selling an old business
For the past 2 weeks, out of the blue, @paxmagnus and I have been negotiating the sale of a non-crypto business we built out between 2015/16 together. This business spawned from a hobby project I started back in 2013. It's been a rollercoaster of emotions to say the least, and has involved digging up a lot of old information and hashing out forgotten conversations.
With a set of mixed feelings (including, but not limited to, happy/proud/sad/confused), the paper work is finished and we're in the process of transitioning all of our live services to the new owners. Once this is complete, the management of this non-blockchain business will be off my plate, freeing up a little additional time and money to keep focused on the my efforts into the blockchain space.
Wallet Tech
With the time I've had available to do application development, I've made some significant strides on a path forward on the foundation of a new wallet platform. I am also no longer alone in this effort, I've been joined by one of @anyx's close friends, dafuga, and have been in talks with a handful of other developers to join the effort in a more official capacity.
Now - this is where this post becomes controversial - since all this progress to date has been made on the EOS version of the wallet tech. At this point we are approximately 60% "feature complete". We are continuing to refine the techniques and technologies we use in creating a modern desktop wallet application.
I know - and before anyone even says it, I understand how many of the hardcore Steem users view this type of work as a threat or some sort of betrayal. I have had more conversations on this topic recently than pretty much anything else - it's a political minefield that I'm willfully walking into because I think I can see a path forward, a "win-win".
I hope I can at least bring some sense of perspective as to why I am making these decisions, as I continue to provide these updates when time permits.
Why not Steem first?
The first topic I wanted to dive into is "why isn't this being built on Steem?" - which is a mix of practicality and timing.
In the practical sense it doesn't make much sense to be build Vessel 2.0 right now. From what I understand, HF20/SMTs is going to fundamentally change Steem all the way down to it's core/UX, which will create a brand new set of needs/wants from the you, the community. These unknowns could invalidate much of the Steem-specific implementation at this point, and I fear wasting time writing something that'll just need to be replaced in a few months.
What makes the most sense to me is to start creating this new version of Vessel as soon as there's something tangible to develop against. Going from a triple token wallet (SBD/SP/STEEM) to a variable currency wallet (unlimited SMTs + 3) is a tall order, and one that I have serious concerns about with the way Vessel currently works
At this point I am convinced that this is a fundamental enough change to warrant the complete rewrite of the code. There are an incredible amount of unknowns and the flexibility a fresh app will provide will prove crucial in rapidly adopting this new tech.
Now it's just a matter of waiting for these features to even be testable.
In the mean time, I've adopted the same technology that I planned on using for Vessel 2.0, to create Anchor 1.0, which will directly benefit in Vessel 2.0's construction.
The names, Anchor vs Vessel.
In my last post I went into detail about how I wanted to retire the name Vessel and replace it with Anchor. As time has progressed, and the more I've thought about it, I've come to believe having those two independent names is an important distinction to have.
So as of today, the naming of these two projects will be as such:
- Vessel - a Steem desktop wallet
- Anchor - an EOS desktop wallet
They both play off each other rather nicely I think!
Vessel 2.0 and Anchor 1.0 will both be based on the same foundation of code and essentially end up as siblings - sharing the same DNA but with their own distinct goals. Vessel 1.0 (current day version) is the parent and the inspiration for both of these new products.
One other important distinction I'd like to make is that Vessel is a jesta - the steem witness project, where as Anchor is a greymass - the eos witness project (which I am a part of). This may change in the future, but that's the current division of responsibility in these projects. Luckily both my sole efforts, as well as the Greymass team efforts, are all open source and can be shared between these projects, learning from one another.
What sort of wallet advances have been made?
The majority of the actual foundation code designed over the last few months is meant to be explored in a blockchain-agnostic ammer, with very little being specific to one platform or another. Many of the components themselves still need further abstraction, but things are starting to shape up.
To give you a sense of some of the advances made while working on Anchor, here's a brief list:
- Wallet Switching: Instead of loading trying to look at all accounts at the same time, this new wallet focuses on one account at a time, with a quick switcher to allow easily swapping to a number of different accounts.
- Wallet Modes: Each individual wallet within the application can exist in one of 3 modes, "Hot" (meaning online, like current day Vessel), "Cold" (an offline cold storage device for signing transactions), and "Watch" (a wallet that can create unsigned transactions, and broadcast signed transactions).
- Safer Storage: Improvements to how private keys are encrypted and stored locally, and how keys while in-memory are handled.
- Easier on-boarding: A nicer "welcome" experience for new users that guides them through setting up one of the various wallet modes.
- Support for Multiple Tokens: A restructured accounts/balances system that allows for an unlimited number of additional tokens.
- Locked/Unlocked: Instead of entering a password on every transaction, the wallet itself now exists in a Locked/Unlocked state. Unlocking requires a password, and while unlocked, transactions can be performed without a password prompt.
- Localization: an implementation of i18next combined with the crowdin platform to open source the translation of the application.
Our next steps include creating:
- A robust key/permissions management system for each account
- An account creation system that encourages creation of accounts for friends.
- A secure custom URI scheme handler.
I hope by listing the kinds of progress being made - those even on a non-technical level can begin to understand how much of this work doesn't care which blockchain it's for. When you boil it down, the interface into a specific blockchain is a relatively small portion of what it actually takes to build an application like a wallet.
Greymass - the new business
The final portion of my effort over the past few months has been building out Greymass, the business @anyx and I are starting, which is also an EOS Block Producer. We have started down the path of incorporation, have started recruiting additional members to the team, and are on our way to creating an business entity with the advancement of DLT in mind.
I bring this up because it has also consumed a portion of my time. I am not here to speak on behalf of the business, but more to disclose it in an act of transparency.
The one thing I will say about Greymass though is that we are building it with a longer term vision in mind. EOS is the businesses primary focus right now and will be for the immediate future, but that doesn't mean it will be forever. The speed at which crypto moves and changes is both unbelievable and unpredictable.
Both @anyx and I have a deep passion for this entire new industry of technology and have a desire to impact not only one blockchains success - but many.
jesta - the steem witness
To wrap it up - I figured I'd bring it all back down to what this is about, my candidacy as a witness on the Steem blockchain.
The range of conversations I've had on the topic of "being a witness" over the past months have yielded a vast range of opinions. It's an incredibly nuanced topic and you'll be hard to find someone that shares exactly your same opinion on what a witness should be/do.
These conversations have elements of pride, justice, logic, dedication, jealousy, admiration, and many more - all in a mix of perspective that really comes off unique to that person. There are no rules and we're all making this up as we go along. We all have one tool though - our votes, and every one of us should vote based off that unique perspective.
So I'd ask this of anyone voting for me: if you don't approve my recent activity/goals, or even if you can find 30 people who are better Witnesses for Steem than me, please don't vote for me or vote for someone else instead. The last thing I want is to get into philosophical arguments and end up making enemies.
As the time of this writing, I am not planning to retire my witness or to "step down" (as quite a few have suggested). Those options to me equate to quitting Steem completely, which is not something I'm looking to do. It's my hope by providing insights into these matters that people will see my perspective on these things and continue to support my efforts. I owe where I am today in part to Steem, and I owe it to all of you, the voters, to better explain these situations and decisions I make.
I'll gladly accept a lower ranked position if the community decides it to be, but have no desire to quit Steem or quit working on Steem related projects moving into the future. Steem still has a bright future (as do many other blockchains) and I plan on contributing however I can, in whatever capacity I can muster.
I'm happy to retain your witness services on the Steem Blockchain. I don't really understand those who feel there is a conflict of interest.
In any case, thank you for the update. I for one am interested and invested in both projects, and I see no reason you shouldn't be also.
I don't really understand it either - but I've come to realize it exists, it's part of human nature, and it at least deserves respect. My gut tells me it's centered around some sort of conflict between "those who invest" and "those who build" - but I haven't been able to put a pin in it.
I think your decision to hold onto developing Vessel 2 until the structure of HF20 & SMTs is more clearer - is actually quite smart.
I've initially removed my witness vote from you, as I wasn't sure about your prioritisation towards Steem - due to Greymass and EOS in addition with being in the TOP 3 and thus quite secure rank-wise.
But what you've written here is enough for me to approve you again. Alone that you've taken the time to create your own dedicated server rack is amazing!
Making sure that the production of blocks and thus the blockchain is secured in a decentralised manner - is the most important task of a witness.
And you're doing exactly that
Yeah - completely agreed, if witnesses have one defined responsibility, it's to maintain block production at the highest levels and to keep the network secure at all costs. Everything else is icing on top of that.
With regards to Vessel 2 - I appreciate the bit of confirmation, and am glad I'm not crazy for thinking this way. It was quite the internal struggle to pick this direction, and with so much unknown coming for Steem at an unknown date, it was really hard to get motivated to go hard on it. It's one of the biggest struggles for 3rd party developers, whether it's in blockchain, gaming, or open-source in general!
It's logical to wait for SMT's before starting on Vessel 2.0 it's also a wise move to put your knowledge to use at EOS - this will only make you stronger in every possible way as a Steem witness as you gain experience, influence, financial security and power.
My only concern is that you listen what the jealousy in other people have to say too much and that affects your thinking. It's just not time well spent.
Yeah, I agree, I'm concerned with that as well. Being able to vocalize (or post) about these concerns has helped me personally come to terms with a lot of the conversations I've had and reinforce my beliefs about how this could all play out. It will just have to be something to keep in mind and be observant of.
Thanks igster! I hope (and think) you're right here - these experiences should only strengthen what I can offer, so long as it's all done properly. There are a number of things these different ecosystems can benefit from by learning from each other.
Excellent content friend, congratulations for this update.
The @agoric.systems proxy isn't giving your witness vote up anytime soon (ever!). You've done way too much for this chain to have your position shift, imo. If the witness pay is deserved anywhere, it's with you. Keep killing it!
@jesta- I've followed your posts and transparent discussion of what you are working on. Last week I put all of my vote on you. Your dedication, work ethic and transparency is incredible. Thank you for this post to give some perspective.
Thanks for the good work. I'm going to have to check and see whether or not I've voted for you, and if not, then, that definitely needs to be fixed. Speaking on your concerns regarding conflict of interest? Not sure where people are getting that from, honestly. Nothing at all wrong with putting your efforts towards multiple projects; the more stuff you contribute to, the more well-rounded you look.
Ill be honest, I do not read too much on steem anymore. At least a lot less than before. But this was an excellent insight into you, jesta. Thank you for being dedicated to steem and I think I can speak for everyone, please continue to dedicate your self to steem for the long haul. Albeit long, was a very intriguing and one of the best updates I have seen. Keep it up.
Now you just need another switch and router but in a lot of instances, that is overkill, especially if you have other sites for DR. You do have plenty of room for expansion though, now you can lease a couple of U's to some of the other witnesses, or drop some of your EOS gear in there as well.
A trick I learned, completely configure everything, routers, switches, servers, storage, before going to the remote location. Much of the time you can get it all done, then just change the external on the router and be ready to go. (I know easier said than done.)
When you bring the witness back online about how long does it take to sync up? (just gathering intel and weighing some options.) I have a datacenter 2 miles from my house, I have some concerns about it. Mainly, they have just one pipe in and it's on the XO network, but they are working on getting two more from different regions. They will offer a 99.99% SLA but in a previous career, I received several days of free service.
I'm relatively new but from my perspective, you have a business to run. Unfortunately, politics do play a part in most businesses, but you have to do what is best for you and your business, whether others understand that or not. Investing time and resources in multiple blockchains is smart. If you were buying stock in a company, would anyone expect you to just buy stock in one company? No, and I don't really see a difference here. In my opinion, you are just diversifying your business to reduce risks. Just ask the people who are concerned about it, if the only cryptocurrency they own is Steem or SBD.
A full replay at this point probably takes somewhere between 3-5 hours (provided you're doing it all in RAM), which is just downloading a snapshot of the chain, then replaying it to rebuild the shared memory files.
The one concern about getting other witnesses is that it would end up centralizing things to some degree, but you're right, I could probably host a few backup nodes for other witnesses in case of emergency. I do plan on dropping some other block production resources on the other server (EOS as one, probably Decent/Muse/etc in the future).
A very good point - the hard part is that being a witness is a completely unknown business model, with currently EOS leading the pack on that grand experiment. It is a business that has to be run, so hedging bets is a great move, but without an actual product/customers the business is completely depending on the DPoS votes and the political process.
The conversations we've been having while building Greymass have been incredibly interesting in this regard. As an organization, we're completely reliant upon the stakeholders, which almost makes it more like a political party/organization. However it's run more like a software company on the inside in order to run the infrastructure and create the products that the community is in need of.
What an exciting time to be involved in this space. It's uncharted territory and we're all a part of it, figuring out how best to move through the space.
To listen to the audio version of this article click on the play image.
Brought to you by @tts. If you find it useful please consider upvoting this reply.
I appreciate all you are doing and have done for steem. Of course you have to look to your own future and that can involve other projects. Wishing you all the best