June 2019 MIX Update – MIX Blockchain – Medium
Brian Heishman implemented the close button and the collapse comments functionality.
Further translations can be added quite easily.
Conversion from electron-vue to electron-webpack
When I created the Acuity project I used a template called electron-vue. This was extremely helpful to get the project started. However electron-webpack is much more actively maintained and is part of the excellent electron-builder project that we already use to build Acuity for Windows, Mac and Linux.
Switching to electron-webpack has upgraded Acuity to Babel 7 and provides a much improved developer experience.
Future Acuity milestones
Website
As you can see from the screenshot at the top of this post, the web site is coming along well. Once we reach the 1.0 milestone one of the first things to will be to get this live. Ethan Fisher created the design and content in Webflow.
Native video
I have quite extensive experience with web video. Adding video functionality to Acuity seems fairly straight forward. This would make Acuity an uncensorable version of YouTube.
FFmpeg is still the best open source transcoding software. Video will be transcoded to multiple resolutions either locally with FFmpeg, or using a hosted transcoding service, before being published to IPFS.
It will probably use the AV1 codec, assuming support for it in FFmpeg and Electron is mature enough.
User tagging
Mentioning people in messages is extremely important. This will be implemented as a smart contract, enabling rich functionality such as notifications.
Topics
It will be possible for any content item to be added to any number of “topics”. This will add subreddit-style functionality to Acuity.
Creator Tokens
Enabling every content creator to have their own freely tradable token is an extremely exciting concept. See the original blog post for details.
It will be possible to rank content creators in a Sybil-resistant way by comparing how much revenue they earn per day.
Token holders will be able to up/down vote content relative to how much of the token they own.
Acuity itself will have its own token called ACUITY.
Account whitelist / blacklist
Currently there is just the on-chain Trusted Accounts system. However, it does make sense to be able to override this with an off-chain whitelist / blacklist system.
Search
Individual instances of Acuity will index the content they see using Elasticsearch. When searching, Acuity will recursively contact other instances of Acuity in the users trust network. This will not rely upon any centralized entity.
Content language tagging
MIX has a language mixin. This will be exposed to the UI so the content creator can specify the language their content is written in.
Revisions
The Item Store smart contract has built-in support for content revisions, but this functionality is not yet exposed in the Acuity UI. This will be an extremely powerful feature.
Feed item pinning
A common functionality in other social networks and CMSs is the ability to pin posts to the top of a feed. MIX should have this ability also.
Unified content viewing / editing
Currently Acuity enables creation and editing of different “content types”, but MIX is not supposed to work this way. Content can be created by adding whatever mixins are required. Each mixin type will have 2 Vue components: a view component and an edit component. This will enable dynamic content creation.
WYSIWYG
Acuity currently uses Markdown for rich text. This is great, but of course a lot of users prefer a WYSIWYG experience. Tiptap is a strong candidate for this.
Historic Avatars
It seems that every social media platform always shows the latest user avatar, even for content that was published when the user had a different avatar.
It’s desirable to to show the correct historical avatar that the user had at the time the content was posted. Because full history is preserved in blockchain state, this can be implemented in Acuity.
Light Client
Currently, Acuity runs a full MIX node. Because there are not yet a lot of transactions this is not a major burden on the device. Once MIX gets more popular the time to catch up with the network may become detrimental to the user experience. Acuity will need to run as a “light client”. This is standard Ethereum functionality.
However, because every blockchain query would be over the Internet rather than local, Acuity would feel very slow. The solution to this issue is to deploy read-only smart contracts that perform all the queries in one request. This will also add further complexity to the Acuity codebase, but will ultimately result in excellent user experience.
TypeScript
Currently Acuity is written in JavaScript, but it will gradually be converted to TypeScript for greater robustness and security.
Other MIX news
Crowdfund issuance reduction
The Revenue smart contract was hard-wired in the genesis block to release project revenue for 2000 days. This is how the project is crowdfunded.
Initially (April 27th 2017) 50k MIX was released per day. This is reduced automatically by 5k every 200 days. Currently revenue is being released at 35k per day. This will reduce to 30k around 5th July. By co-incidence, 30k MIX is also approximately what the miners receive every day from the block reward.
On October 18th 2022 the project revenue will have ceased completely and the block reward will be the sole source of increased supply.
See Issuance for more information.
MIX Book
The MIX Documentation is very out of date. I will be hiring a technical writer to analyze all the progress already made and synthesize it into a book explaining in detail how MIX works. This will be an open source project with its own creator token.
It will probably use the same Read the Docs system as the current documentation. It can compile documentation into many formats including web, ebook and printed form.
Physical copies of the book will be available for purchase.
MIX Base
Komodo recently had a major security incident. This relates to the extensive use of third-party JavaScript libraries. Acuity is susceptible to this also.
The solution is the creation of another piece of software, MIX Base. It will handle everything that all MIX apps need, i.e. running Parity and IPFS, and account management. If a MIX app wishes to send MIX, change account controller, or spend gas too quickly, Base will prompt the user to confirm the transaction.
Because MIX Base will be written in Rust with much less use of third-party libraries, it will be much less susceptible to this attack.
This functionality will be gradually transitioned from Acuity to Mix Base.
Published at Sun, 16 Jun 2019 15:14:38 +0000
