NEAR Protocol - behind the scenes update for runtime and contracts.
Flashy updates such as a project launching are very visible, but there is an enormous amount of work happening behind the scenes.
Thread 👇
1. Fungible token standards. We’re working on the new fungible token standard that improves on the complexity of the NEP-21 by removing implicit storage attachments and replacing approvals with transaction-time authorization. Also fungible token metadata standard.
2. Account Storage standard. NEAR has a concept of locked balance for the storage that prevents contracts/account states from growing indefinitely. It makes the storage operations much cheaper in gas. This standard covers user storage allocation to prevent sybil attacks.
3. Non-fungible token standard. There are debates happening for redefining the NFT standard. While some advocate for a simpler basic standard and adding separate escrow contracts, others suggest to merge them into one standard.
The later allows NFTs to be listed on multiple marketplaces and maintain ownership. While the basic standard will remove storage managements from NFT contracts and simplify it.
4. We’ve recently made a protocol upgrade to decrease the storage price per byte by 10X. This will increase the amount of storage you get for 1 NEAR token from 10kb to 100kb.
5. We’re in the process of switching our native WebAssembly VM from @wasmerio 0.17 to wasmer 1.0, which improves compilation and deserialization times for cold cache. This will increase TPS for contract calls.
6. We’re refactoring nearcore primitives crates, so we can publish them and release the new version of NEAR SDK. This will also help with developing of new tools, e.g. near-cli in Rust.
7. Switching to on-disk contract compilation cache. This allows to compile contract at deploy time and during the state sync instead of at the runtime. This change will decrease the cost of a simple function call and result in increased TPS and cheaper transactions.
8. We’re updating NEAR SDK for Rust contracts to include helper methods and remove some boilerplate. It also includes a simulation testing framework, that allows to simulate contract execution like on a local blockchain, without having to spawn the node.
9. There is a work on updating runtime fees config, that updates costs of certain transaction actions. E.g. it decreases the cost of a function call and cross-contract dependencies. This will make transactions cheaper.
10. Finally, we’re working on `no_std` support for Rust contracts, which will decrease the cost of the contracts and by doing this improve TPS.
And these are only updates from the runtime and contracts work that is remember. NEAR wallet had a huge update recently, block explorer landed a redesign, sharded NEAR network achieved 4000TPS, rainbow bridge demonstrated a working token transfer and NEAR EVM makes fast progress.
NEAR Protocol Usability Summary:
- Account Names instead of hashes of public keys.
- There can be multiple Access Keys per account.
- Function call limited access key.
Thread 👇
NEAR uses readable account IDs instead of a hash of a public key. It’s similar to twitter handles. Also Account IDs work like domains. E.g. only account “alice” can create a sub-account like “app.alice”, and now only “app.alice” can create a “beta.app.alice”.
Account ID has a minimum length of 2 characters. NEAR charges recurrent tax from the account balance for short account IDs with exponentially decreasing rate based on the length. IDs with length more than 10 chars don’t pay it. It’s needed to avoid squatting short account names.