Beet - The BitShares companion

in #beet2 years ago

Hello everyone,

A little while back, I decided to do some research on a standalone key-management/signing app for BitShares as it was obvious that it was something sorely missing from the BitShares ecosystem. Any interaction with the blockchain required the user to use one of the trading/DEX frontends which can be overly complicated and due to this, integration with standalone BitShares-based applications was clunky and slow at best.

My initial thought was to develop something like MetaMask for BitShares. However, the sheer number of possible operation types on BitShares, the multiple keys and permission schemes as well as the difficulty in cross-browser compatibility and potential security issues off a browser add-on made it look almost impossible to get right.

It was around this time I learned that Scatter (https://get-scatter.com/) dev nsjames was considering the same issues while working on it and was moving to a standalone desktop app called Scatter desktop.

I looked at the code in GitHub to see how he went about it and for inspiration and it all clicked. It is such a simple, elegant and portable solution that immediately seemed ideal.

Armed with some new knowledge I started working on a rough proof-of-concept to go along with a worker-status widget that @sschiessl had developed and we had been discussing adding voting capability to.

I meant to only use the concept/architecture from Scatter Desktop and rewrite it blind but the truth is that it is so well-written, I ended up lifting a few chunks of code verbatim.

I've also been in contact with nsjames regarding various issues that we both were looking for solutions to and those conversations helped us both.

The result was the ALPHA proof-of-concept version of Beet showcased along with the voting widget as you can see below: (right-click and open in new tab to view full-size)

companion-update.gif.

Since then, I've open sourced the proof-of-concept code, given it a name (Beet), MIT-licensed it and transferred it over to the BitShares organisation github here: https://github.com/bitshares/beet

You can check it out there and use with the voting showcase at http://www.bitsharesvotes.com/

I will continue working on this as there are still many things to be done and added.

The current rough roadmap (in no particular order) is as follows:

  1. Refactor some less than ideal code parts
  2. Introduce Vuex state-management and make use of vuex-bitshares(https://github.com/TrustyFund/vuex-bitshares)
  3. Introduce origin verification and authorisation persistence to avoid multiple access requests by the same client app
  4. Introduce more specific API methods such as transfer() instead of raw operation signing
  5. Localisation
  6. Multiple accounts per wallet support (as per reference UI)
  7. Reference wallet importing.
  8. Extra information & features on dashboard as needed
  9. Port to mobile
  10. Fork for graphene multi-chain support

If you like this, please consider casting your votes for Committee Member and/or Witness "clockwork" on BitShares.

Sort:  

"I meant to only use the concept/architecture from Scatter Desktop and rewrite it blind but the truth is that it is so well-written, I ended up lifting a few chunks of code verbatim."

Well thank goodness a mainstream bitshares dev finally discloses how much development comes about and hopefully the FUDsters will get off of Jared Rice's case and stop the nonsense that he does not know how to code or do development.

The dWeb and Bench are very real and phenomenal innovations.

Good catch. Both clockwork and jared are to be commended for making good use of their time and proliferating great open source code to new applications. Resteeming this post.

Looks great clockwork, nice work. Just curious why beet? Naturally I like it 😊 but I want to see your logo.

no real reason :) I want to see the logo too :P

Maybe this calls for a logo contest!

way ahead of you

Amazing work, simply awesome @clockwork .... you rock!

Dope ! Good work... love to see that finally things are happening. 💪

Solid work here @clockwork. Making BTS more friendly to the average user is sorely needed.

Very interesting project. Let's chat and see what we can do together?