Current BEET development progress update

in #bitshareslast month

image.png

I've recently been posting about my NFT related developments; these NFT tools all integrate with the Bitshares BEET multiwallet to access Bitshares blockchain operations.

In order for these new tools to be fully operationally ready for public release the following pull requests need to be reviewed and approved by their respective repo owners:
https://github.com/bitshares/beet/pull/181
https://github.com/bitshares/beet-js/pull/44

An insight into the changes:

Summary of changes in PR:
* npm-check-updates was initially used to identify packages which could be updated
  * About half of the packages were able to be updated with minor changes
  * Some of the updated packages introduced severe breaking changes, namely vue2 -> vue3
    * The update to Vue3 required a refactoring of every (30+) components to using the composition API https://vuejs.org/api/composition-api-setup.html#basic-usage
    * Most of the vue2 related packages did/do not have equivalent vue3 packages, resulting in their replacement/removal being warranted.
      * Removed with no replacement: Password strength indicator (Custom zxcvbn component required)
      * Replaced: Bootstrap -> [balm-ui](https://material.balmjs.com/)
      * Replaced vue-multiselect with balm-ui selector component

Security changes
  * sha512 hashing password that's stored in memory after login
    * Edge case: Restoring from old beet backup would be encrypted with raw password instead of the hash, so legacy checkbox was included for anyone who might have restored an old wallet instead of creating a new wallet.
  * Removed cert stored in repo, fetches cert from beet cert repo
    * Automated tools search for these certs & report to the issuer
    * We should consider encrypting/encoding the external repo cert to further hide cert
  * Beet client doesn't respond to queries unless logged in
  * Additional store getter functions created to reduce handling of excessive data in vue components
  * Uplift of packages across the board for security vulnerability bump
  * Prompts are now much more isolated from the rest of the wallet, now launch their own electron BrowserWindow where user input data is passed as url encoded parameters. These prompts are isolated and can't access the main beet window state.
  * elliptic replaced with `secp from "@noble/secp256k1"` and @noble/ed25519 for key exchange

UI changes
  * Language selector component hidden from dashboard since there's only one language
  * Main electron window bar isn't skinned
    * pro: easier to move the window, uses system app frame
    * con: no longer goes to task tray when closed
    * Could be re-implemented
  * Balm-UI used instead of Bootstrap, deviating from the brand guide
  * Debug console can be accessed via 'alt' then view -> debug tools.
  * Sending BEET to system tray is also in the view menu.
  * Balance in dashboard and linked apps list in settings are now scroll-able lists

New functionality
  * Sign NFT_Object for NFT creation
  * Broadcast & Update assets - for NFT issuance tool
  * Prompts are now isolated popup windows instead of alert boxes within the main window

Maintenance based decisions
  * After updating packages the icons broke, so the skinned window frame was replaced with system window frame.
  * Elliptic package was replaced as it hadn't been updated in more than 2 years
  * The custom BeetWS WebSocket implementation was replaced with socket.io
    * This prove to require a large refactoring of the beetserver, blockchainfactory and beet-js library.
    * It's far more maintained & supports multiple environments

As you can see from the above, the BEET changes have been quite substantial, especially the uplift from VUE2 to VUE3 and switch from custom websocket class to using socket.io.

Shout out to the Bitshares committee for supporting the development of the above pull requests with their committee funding; more of this will keep Bitshares continuously innovating!

So hopefully within the next couple weeks the above BEET pull requests will have been merged & the Bitshares NFT tools will be built and released to the public.

Cheers
https://nftea.gallery

Sort:  

Congratulations @nftea.gallery! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s):

You received more than 500 upvotes.
Your next target is to reach 600 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Support the HiveBuzz project. Vote for our proposal!