A witness update: 2nd quarter

in #witness-update6 years ago

I figured it was about time to write a recap of what's been going on the last few months in the world of @jesta. So here we go.

2018 so far has been full of challenges and learning, which is both great and ultimately doesn't end up with much work to show for it. On the 1st of February I published a post about my potential roadmap and goals for 2018. This update is primarily a follow up and progress report on where I'm at in this process.

Throughout this post I'll break down 2018 so far, some perspectives I've picked up during efforts, and where I think things are heading.


2018 so far

Here's a monthly overview of the past 5 months of my efforts, besides the usual block production duties/maintenance and lively debates ranging from curation to SMTs:

  • January: January was the start of my attention towards paying the "tax man" for 2017. I created a couple tools for collecting this data using SteemData (RIP) and started the process of collecting data for tax reporting. Vessel saw a few upgrades to address node instability (which sadly still happens today) and all of my development brainpower was put towards building the "foundation" of a brand new wallet. Much of this time was spent analyzing what could have been done better in Vessel and how specifically those areas could be improved.
  • February: Wallet R&D continued, with the decision to rebrand this new wallet, choosing as "Anchor" as it's name. The initial Anchor (prototype) code was published to github and the majority of the month went into actual implementation of "better vessel" UI ideas and looking at the best parts of other wallets. Towards the end of the month, development on Anchor slowed to a halt as I continued to do research on wallet formats and the external APIs that would be needed.
  • March: My development focus shifted to backend/APIs. Three new projects emerged over the course of the month. These were all reusable core parts of what an API would need. Two of these are published on github works-in-progress, one being chainsync and the other being chainmodel. The third project, which I only spent about a week on and dubbed "chaindex" (a play on chain + index) was an experimental API for wallet synchronization (which could be expanded for other uses).
  • April: Taxes finished, but consumed a full week to knock out. chainsync is in a pretty good place at this point, but now could use a revamped http/rpc adapters - which is the next milestone. The experiments using chainsync to create the chaindex database got hung up on a few technical snags and it led to a small diversion: I needed a better hardware/server infrastructure to accommodate this kind of work. Towards the end of April I started touring various data centers in the region with the goal of deploying my own hardware - instead of the rentals I've used for the past couple years. I had also been researching server hardware and ended up pulling the trigger on a handful of servers, switches, and various equipment needed to deploy the first rack.
  • May: Towards the end of April I picked up a nasty flu/cold combo, which really kicked in hard at the beginning of May knocking me completely offline for over a week. After recovering, negotiations continued with a few data center providers - I had chosen my top candidates and it was a matter of negotiating contracts and getting a lease setup. I ended up signing my first lease. The first handful of servers had arrived, so configuration/benchmarking/setup of those resources has now started and is nearly completed. In about a weeks time, I'll be spending a couple days at the data center to finalize their installation/networking, and then start migrating a portion of my "live" services over to them. Throughout May, I've also been talking to @anyx a great deal and we have decided to partner up on a new venture - which is elaborated more further down in this post.

This leads us up to current day. I'm sure I'm missing a couple things - but it's enough to give everyone a rough idea of what I've been up to and the path I've been on.


Through 2018

The original concepts in my 2018 roadmap were never outlined as a clear path from A -> B -> C, but instead put out as a desire to see critical aspects of the system improved. As 2018 progresses, I plan on continuing (much like I have these past months) in taking steps to foster the development of these new tools and applications.

As time permits and as actual "usable" projects start emerging, you can expect to hear a lot more about these in detail.

Besides the projects mentioned - there's a few fundamental perspectives I'm trying to to sustain as I continue on:

  • Don't rush to release (unless critical).
  • Doing one thing, and do it well.
  • Don't repeat yourself.

That last one feels like an old friend that I've lost over the last few years working in this space. Which leads into a topic that I'm trying to embrace:

Abstraction

So far in 2018, I have had an intense focus on the abstraction of my work.

It's an effort to make the components reusable, not only by other developers on Steem, but hopefully to other developers on any similar blockchain. I believe it's a valuable aspect of this kind of work and one that we are sorely missing. Much of the work being done for various blockchains ends up being "open-source", but I think we soon will hit the point where we need to focus on "open-blockchain" solutions. This is a topic that if I had the time, I'd love to blog about and really engage in some discussions.

My problem is this: as a developer working in this space over the years, I've had to "reinvent the wheel" probably a dozen times. I'm sick of repeating myself - so I'm making one more wheel, but plan on reusing it wherever possible.

To date, Steem is by far my deepest involvement with any blockchain, but I have also contributed and taken part in a number of other DPoS blockchains including Golos, Decent, Peerplays, Muse, Karma, and most recently EOS. These blockchains (and probably a dozen more) all exist in the same "family" and have a lot of common elements - but none of the web-related technologies between them are shared. This ends up limiting how productive developers can be with each individual platform (due to the aforementioned wheel-making) and it makes it difficult for people/projects to shift between platforms/protocols. It's almost like "vendor lock-in", which could be seen as great for investors, but terrible for anyone actually working in the space (developers and systems administrators).

I want to help change that. I understand that this decision may turn out to be an unpopular one on my part, but I feel it's something I can do to help show that this strong tribalism we've seen recently isn't needed.

Why? /soapbox - The next evolution of the internet won't happen because a single blockchain did one great thing, it will happen across hundreds (thousands?) of blockchain platforms because they are collectively doing many great things. Technologies will be shared across platforms, causing each to evolve in it's own unique path, all while ultimately revolutionizing our trust in data.

The application of abstraction

Each one of these bullet points really deserves it's own post, but time is a finite resource. So, with the types of abstraction discussed above in mind, here's a bit about my efforts and how this concept applies to each of the projects I've been working on:

  • Anchor: Anchor is primarily a wallet service that runs on your computer, under your control, that will enable you to perform actions on blockchain networks. It will be able to store private key information securely and utilize any protocol that is integrated. I don't want to promise that Anchor itself will support more than one blockchain - but I want it designed so it could be adapted and used by other blockchains.
  • chainsync: chainsync's purpose is hook into a blockchain to observe some sort of activity (whether it be actual blocks, or specific things like comments/transfers/etc). chainsync itself provides an abstract interface that will allow adoption to any similar blockchain, which will allow developers to reuse chunks of code for different projects. A good example use case of chainsync is the 6 block explorers I run. These block explorers currently all require a different applications to populate the explorer's database - but with something like chainsync, I'll be able to write one common application that can sync them all.
  • chainmodel: This is another abstract interface, which is designed to be paired with chainsync (but isn't required). The concept behind this library is that it takes the data received by a sync process and can model it, transform it, and in general just help clean it up based on the needs of an application. A simple example would be changing a steem "standard date" (e.g. 2016-09-02T20:50:06) into an a format acceptable by your database (maybe a timestamp).

I am not at the point where I recommend these projects for critical use cases, but you're free to tinker with them or lend a hand. I am currently still verifying they are actually built right and will continue to evaluate their design as work begins on:

  • Block Explorers - APIs: All of the explorers will use a new set of APIs, and the new data behind them will be populated using chainsync/chainmodel. This will allow a standard process in how they sync data from their respective sources. verything related to this is still conceptual and development hasn't started yet. The goal is that anything a site like SteemDB would need, these APIs should be able to provide.
  • Block Explorers - Frontend/UI: Much like the APIs, the UIs themselves will also use a common core that allows for theming and easy adaptation. With the combination of the native explorer APIs (and potentially chaindex), I am hopeful that basic explorer interfaces could be further configured by individuals in any community, allowing for unique perspectives into the blockchain itself.
  • Anchor (key storage): The key storage engine in Anchor is going to be designed to be blockchain-agnostic. "Key Security" should be a right regardless of the chain it belongs to. I have been talking with a couple people about some of the best ways to accomplish this.
  • Anchor (defining uri scheme): The URI scheme Vessel started using needs to be established as a standard, most likely that is abstract enough for other blockchains similar to Steem to adopt. There's no standard like it right now and will have it's own set of unique challenges to overcome
  • Anchor (chaindex integration): Anchor won't require a connection to a chaindex node, but connecting to a chaindex node will certainly provide some flexibility in how Anchor can be used. Certain features may require it (filtering of transaction history), while others may just improve in performance because of it (retrieval of transaction history).

Lofty goals and a lot of work

These goals are absolutely huge. They are ideas that are larger than me alone, but I'm still up for the challenge and trying to make them happen. I'll continue to progress on them as I have, but I also am still trying my best to not go this alone.

Being a part of a team is good, but picking the right team is critical.

Since joining Steem - one of the goals I have had is building an organization that sets out to help solve the problems faced when integrating blockchain technologies. I've written about this idea in various forms many times throughout the almost two years of blogging and the posts from @greymass in late 2016 were a serious attempt kickstart something.

A number of issues ultimately stopped those efforts, but one of the most common (and arguably largest) factors always turned out to be funding.

Well, 2017 changed a lot of things with it's historic rise. During 2017 I was fortunate enough to be one of the top 20 witnesses here on Steem. I was also a top witness at times on Golos, Peerplays, Decent, Muse, and Karma. This may sound like a lot - but you have to consider the prices we see today aren't what they were. All together my "salary" in Q1/2 of 2017 was roughly $2-3k/mo (pretax). I ended up moving across the country because of this, to save money, and to prevent having to get a "real" job. Being involved in blockchain is what I was passionate about and I couldn't to lose focus.

Things have changed (obviously) and now those same rewards are worth much more. These rewards are public knowledge (e.g. steemdb.com - my powerdowns), so I'm not incredibly concerned with sharing this type of normally private information. These blockchains (your blockchains) have enabled people like me to essentially work for a community, be financially rewarded, while doing our best to support the overall good. With that said, it makes sense that the voters know what's going on.

At current market prices, provided all stay relatively stable (haha...), I am at the point now where these rewards should allow me to comfortably afford both the operation of my own enterprise-grade infrastructure (to support the networks), as well as hire at least one additional (very experienced) head-count to help keep the ship running.

This is all fantastic, but it's still peanuts compared to the funding it'll actually take to accomplish all these goals in any reasonable timeframe. The last team I professionally ran had a budget multiple times larger than what these rewards currently provide.

So, while inching closer, my plan is to continue expanding both in cooperation with others and across any network that see's the benefit in these ideas. With an emphasis on blockchain-agnostic solutions, my efforts and experience developing these open-blockchain solutions should add additional value to any and all of these developing ecosystems.

In line with this concept - I also recently joined forces with @anyx, under the @greymass name, and we announced our candidacy to become a block producer on the EOS network. Over my years on Steem, I've talked with anyx extensively and developed a great respect for him. We have similar ideals, thoughtful debates, different backgrounds, and equal passions for the application of this technology. This is the start of a new partnership, with some new and old faces likely to be a part of it.

I am optimistic that this could be the start of the organization I've been talking about for so long - but only time will tell. There's an incredible amount of factors involved, including you (the token holders, of all networks), the direction of the industry, the laws that govern us, the legitimacy of all these ideas, and the will of the markets themselves.

Thanks to all of those who have supported my efforts so far with your vote, trusting me as a block producer/witness, and to act as a representative of the best interests of these various networks. You have allowed me to undertake this journey and I truly appreciate the opportunity. I can only hope I've met your expectations.


Disclaimer: Proper grammar isn't one of my strengths and I don't have someone proofreading my gibberish (yet?).

Sort:  

I absolutely love the direction you're going, Jesta! This is the foundations of the future, and it's beautiful to see it coming together.

When I read this:

I'm sick of repeating myself - so I'm making one more wheel, but plan on reusing it wherever possible.

I couldn't help but think of this:

Heheh. Seriously though, what you're doing is important and needs to happen.

Related to "Anchor (key storage)", have you looked at what Edge Wallet is doing? I think more people using a consistent, recoverable, user-friendly approach to secure key management will help the whole industry.

For "Anchor (defining uri scheme)", are you going to create a formal RFC to piggy back off of RFC-5988? I think that would be really be helpful.

Also, for the API endpoints and surface you're building, have you considered going with a true hypermedia/REST approach? One of the problems (IMO) with the graphene family is the reliance on RPC. Most documentation systems for APIs assume people are doing a REST (ish) approach over RPC at this point. Curious what you think about that.

Keep being awesome, man. You've created more value for this space than most everyone else combined and we all really appreciate the tools you've built, and will continue to build in the future.

LOL, yeah... that comic definitely hits on multiple levels of truth.

I don't think I have looked at Edge Wallet yet - though after briefly looking at the page it looks like I've got more research to do lol. Thanks for the tip!

In reference to the URI scheme - I haven't make any decisions there, but it feels like that would be the proper way to go about it. My biggest hesitation to get really deep "formal" stuff is just a lack of experience doing so. At this point I have a pretty solid idea of how it should work, and how it should be implemented, but communicating that through a documented formal standard is something I'd have to really learn to do.

As for the APIs - yeah, I agree with the reliance on RPCs being an issue, and they most certainly will end up being rest APIs. I haven't even considered those kinds of features for this yet, but I don't see why it couldn't have HATEOAS or some newer standard applied to it. The last real consumer focused API I worked implemented it (which you can see in the docs) - so that shouldn't be too hard to remember how to do!

Thanks for all you have contributed so far. I think having tools that work across different blockchains is a great idea. Makes life much easier for developers. It's great that you can live off this work. Wishing you all the best

I started this earlier this morning, and had to grab a cup of coffee half way through to wrap my head around all the things you're taking on and bringing together here. I like seeing you take the time to write it all out like this when you're able, so that those who don't get a chance to interact with you in some of your 'native habitats' are able to throw some heartfelt appreciation your way; it's all beyond well deserved.

I have always had problems communicating effectively, so I'm glad to hear that it's at least possible for others to navigate all those interlocking trains of thought. Thanks for taking the time to do so, and coffee always makes a long read better :)

Also - LOL, my native habitats...

We need a Steem zoo-keeper who's job it is to show new people around to point out all the various witnesses cages.

😂...

cripes, that might actually be me; I should tell people "Hi, and welcome to the zoo" when they get to the server.

'Please be aware as we pass the project promotion area, you may find there is occasional poop flinging.'

What? Chatting with you never felt that way.. Are you sure? lol. I guess it's time for me to start having some projects on EOS too and not just STEEM!

Limiting yourself to just steem and not venturing into EOS is like only using DC power and never even TRYINg to use AC power, and calling tesla a "traitor" for inventing AC power, thats what some Steem and most ethereum people remind me of when they arent FULLy 110% open to EOS. How could they ignore this amazing new tech that was ALWAYS going to work? I cant believe how many morons doubted that we would even get a Main net luanch. What a bunch of losers, right? We need to call these people out to their face and announce who the losers are so people KNOW to stay away from them! Anyone who has been purposefully doubting Dan and EOS in an attempt to just make them look bad, WITHOUT having actual real questions or real doubts, they deserve to be downvoted, called out, and ridiculed. We dont need losers on our platform constantly talking shit about the WINNERS like Dan and All of EOS! Steem is just NOT as powerfu as EOS but it is STILL great! You dont HAVE to have EVERYTHING but we MUStface that EOS is superior in EVERY way to Steem., Its ok! Steem and bitshares will survive after EOS replaces them for themost part, but we will , or NED will, have to work harder, If steemit inc wants to allow steem to be relevant at all, if theydont want steem ending up like Golos, well, they haveto work harder and become more self interested and they need to hire a bigger team. Its insane to have 2 developers at steemit inc. We need actual YOUNG talented peopel who can become SELF tauight and MOSt of all we need CONFIDENT developers who are SURE of themselves and who FIND ways to build solid software, SO MANY HUMANS out there are capable of this bvut we have this narrow tunnel viision where we act like theers a fuckjing limited amount of blockchain developer son this planet when we ALL HAVE TEH SAME FUCKING BRAINS we can ALL learn this shit ENOUGh of this LIMITINg attitude, WE CAN ALL learn C++ we can ALL learn programming , we can fuycking lern orbital phyics with kerbal space program! a 6 year old can ACTIVELY ENGAGE with orbital mechanics and KNOW IT IINTYITIUVELY bette rthan fucking neil armstrong or buzz EVER could! peopel become SMARTER over time!
Programming, Condensor, hgithub, the more I personally learn about it the more i become disapointed at the complete lack of people managaing skills here on steem\

we have no mondays,com style work managing system, utopian KIND of has a system like that but its way too complicated and bloated,

utopian needs MUCH more simple version, and it need sto create jobs, simple tyasks peopel can do to promote steem on legacy socialmedia,i myself can think of 1000 different jobs for peopel to do full time work promoting steem on social media STRICTLY to BTC investors... theres WORK to be done to promote steem to peopel who HOLD bitcoin! ITS NOT BEING DONE AT ALL right now. We NEED to Levegae our MASSIVE unamployed user base of SMART people, to fucking become aMARKETING HIVE that will be liek a swarm opf bees just leaving teh steem name all across the internet.

but no oone is thinking about leveraging the power of steme users using upvotes and ddlegation to rewraduser who make posst proving theirpromoting of steemon legacy systems. I could orgtanize a MASSIVE effort using Mondays.com or dapulse or similar work management Apps/websites t... id givepeopel tasks... and id follw up on them... peopel would only get paid if they deliver results... u only get paid if u get someone to buy SP, we can gamify this, and we can produce MASSIVE swarms of people promoting steem on 4chan youtube reddit facebook twitter instagram, SOOO much fertile ground toplan seeds across those 6 platforms... i havent even MENTIONED the Chinese RUssian Brazialina nd otehr non english platforms, just imagine the 900 million spanish speakers on the planet learning about steem... even if 1% joins, we will have 90 million people... i mean we should have tens of millions of users by now.

Thank you very much for this detailed update, which even includes a bunch of private information. I've always been a fan of your creations on steem and definitely curious what you'll come up with for us in the near future, especially now after you joined forces with @anyx.

I'm happy to hear that steem made your dreams come true, just as it did for me. Let's hope it'll go on like this and many more people will be able to live their dreams through the power of steem.

Wow @jesta I somehow missed this a couple days ago, but I have to say I’m blown away by the thoughtful roadmap and your inspired, yet analytical approach that I think this whole space could greatly benefit from. The care you put into your dev initiatives and your views to the future are what will help make the distributed ledger space rise above and change the world. Thanks for all you do and... Keep on keepin’ on!

thanks for the updates, I have one question, do you think I can be a witness just like you, well obviously not like you but still, I would rellly like some rewards from a witness is it still worh it for a new account ? or is the space already too saturated?

It's a continuous marathon where, with enough time and dedication, I think pretty much anyone could be a witness. A newer witness may have a harder time making an impression these days than it those who started years ago, but I don't think it's impossible.

thanks for the reply, you are truly an inspiration for a minow like me.
I will definitely give it a try. I might not win but I will learn, that is for sure.

Yeah, but other than that what exactly do you do around here?

Well written, well conveyed, good plans, thanks for your efforts in the space.

LOL, well... I write the TPS reports.

Thanks man - I'm hoping the next time you ask me to participate in one of the forums I'll actually be available. Not looking for the 3rd strike in a row :)

There's zero consquence. I don't see you losing number witness spot any time soon. You make good shit. I just think the people should hear you and will benefit from that. it's all voluntary. Hopefully it works out and thanks for your hard work.

I know nothing's at risk, but it's still a meaningful way to participate in the community and I'd like to be able to do that more. Hopefully as all these plans progress and come together - that'll open up the opportunities to engage with people in these chats and contribute to the conversation!

Do you take holidays? I am looking forward to see your work on EOS.

Btw, have you consider adding hardware wallet support to your wallet? I have been thinking on working on steem support for the ledger nano S. I also thought I should integrate it with Vessel. But I never got around to actually do it. I can take care of the cryptography part but the rest of the wallet would be too much work from me.

@netuoso was working on something like this at one point - but I think it required a change to the firmware by the hardware vendor or something out of our control. It's something I think we need sooner or later.

Thanks I will take a look at @netuoso work.
I will try to write a proper article on how steem would work with a HW. Then I can go try to actually start and see who can give an hand and on which part.

Hello @jesta
I have a little trouble using the vessel.
I recovered the steem power I leased using the vessel, but it has not been able to return to my account even though it has been more than 7 days.
The account that recovered the steem power was normally recovered.
Do you have a solution to this problem?

Without digging into your account history, I'm not entirely sure. Was it a delegation used to create a new account? If so, those delegations take 30 days to return, as opposed to the 7 in a normal/manual delegation.

oh, thank you!!!
i created a new account 24 days ago!

Nice article and greatest post of you thank you dear for the big great post @jesta