We followed and participated in the live stream of a March’s meetup in Amsterdam that featured Waves Platform and fresh updates coming from their dev shop about the upcoming smart contracts. The meetup was held at a Primalbase shared office space which is also one of the biggest and successful ICO projects funded through Waves platform.
Ralph Manheim, CEO of Primalbase, kicked off the meetup and showed the innovative approach of their tokenized membership via waves platform.
It is amazing to see how projects like Primalbase have rolled out their products in the real sector and how they are striving to promote blockchain communities with their technology which is also a part of the whole domain. Waves Amsterdam office is also situated at Primalbase. A valuable network effect indeed.
The presentation then moved onto a general presentation of the Waves Ecosystem with key features and aspects that are working together to create Blockchain for the people. You can read a more in-depth overview of waves in our dedicated post on that subject.
Waves from PM perspective
Next on the scene was Alexy Kofman, product manager of Waves Platform. Alexy is working with an amazing development team, and for those who didn’t know the team consists of:
- 8 Scala developers
- 5 JavaScript developers
- 4 Testers
- 3 Designers
- 3 Devops
- 2 Analysts
This is a very concrete and big software engineering team and based on already delivered work, we can definitely see that they are functioning very well together. The whole Waves team is actually over 50 members.
Development cycle
The development cycle from waves team is quite interesting. It requires passing several stages of approvals until it finishes on the MainNet.
Most strong features in a new release can break backward compatibility so Waves has an activation period which allows miners to signalize they have accepted the new features and everything is running smoothly in “real-life” production environments. This happens in the timeframe of 10000 blocks from the start of the activation period.
It takes roughly 2 months for a finalized feature to arrive on the waves main-net.
On the above image, you can actually see the planned phases which we will briefly run down below. These releases are the runner-ups towards the 1.0 release that will include the building grounds for smart contracts.
Release 0.10
Released just a few days ago (5th of March) and features a much more optimized system for mass transactions a.k.a Mass Pay feature inside the Waves Platform. Mass transfer is now using much fewer resources for computation on the waves blockchain and to quote the words of Alexey, it has been reduced a hundredfold time. Miners and big nodes that are using leases are welcoming this feature as they are making mass payouts on a weekly basis. Currently, the feature is in voting stage and should be up and running on the MainNet in approximately 2 weeks.
Some specifics regarding the Mass Transfer Transaction:
- Lower transaction size 5 kb / per 100 transfer = 50 bytes / one transfer
- Higher through output – with full blocks, it gets even to 20 000 transfers/minute
- Lower cost – standard fee is twice lower – 0.0005 waves/transfer
- Waves in fee only (no asset fees supported)
Release 0.11
This is the next release scheduled for April and has a big scope of features and functionalities that are the laying ground for the upcoming smart contracts. Those include:
- Fair Proof of Stake
- New transaction fee rules in consensus
- Data Transactions
- Major optimizations for LevelDB
- Preparations for smart contracts
Fair Proof of Stake
At the moment there is a lot of divergences between the big mining pools and this was already initiated by miners itself to find solutions that would level the playing ground for all participants.
Transaction Fees
As waves have indeed very low transaction fees, this opens gates for spammers that are congesting the network with various transactions of custom made tokens. The dev team is proposing limiting amount of transactions in a block to 100 (with custom tokens) which opens a more stable bandwidth for the waves tokens.
Data Transactions
One of the biggest technical changes are the data transactions which are essentially expanded transaction functionalities that allow putting a wide set of custom data to the waves blockchain. This is essential for Smart Accounts which will be one fragment of the whole smart accounts logic. Data transactions will allow smart accounts to read scripts and data submitted as this is necessary for Oracles and Notary Applications that are linking “real-world” info towards the blockchain.
Node 1.0 – Smart Contracts
All the above mechanisms are paving the way towards the 1.0 release which carries the first building blocks of the smart contract system and those are Smart Accounts. This release is scheduled to be on the TestNet in April 2018 and live on MainNet in May 2018. Exciting times are ahead!
Smart Contracts dive in by Ilya Smagin
The final speaker of the meetup was Ilya Smagin, Lead Scala developer in the Waves team. He gave a broad overview of current state of smart contracts in Bitcoin and Ethereum which was an introduction to how waves is approaching their smart contract.
Basically, Bitcoin has already “smart-contract” logic via simple protective scripts where the transaction cost is known upfront. This allows for simple data inputs and manipulations via the above-explained data transactions. This concept will be used for the Smart Accounts.
Smart Accounts
These simple scripts allow or decline outgoing transactions from an account. This allows for simple business logic to be implemented on the smart accounts. The current default lock is very simple. A provided signature in a transaction should match transaction bytes and sender public keys and this allows for a simple transfer of tokens.
With Smart Accounts you will be able to create a custom lock which takes more data input to release or send some transaction. They are predicated based on:
- TX type and fields
- Height / timestamp
- Data on the blockchain (Data transactions and Oracles)
Each account also has a key value and this data can be also accessed via an outside API (Oracles)
Multi-Signature Wallets
This whole logic will be expanded also for Multi Signature Wallets. Yes, you heard right. Multi-sigs will also be supported via smart accounts allowing multiple users / key holders to move and manage the funds on some wallet.
Atomic Swaps
Atomic Swaps will also be supported as well and this will be an extraordinary and very promising implementation for Waves Gateways. The logic behind is somewhat universal and if you are interested in depth about those, venture to our article dedicated to this subject.
Time Locks
Users will be able to freeze tokens for a limited time. This is one of the core features in Ethereum when distributing tokens in stages and giving everyone the same starting ground but can also be used for a various set of use cases.
Developers are not forgotten
There will be an Advanced IDE powered by Visual Studio Code with compilation errors, text & run hints
A whole language was developed and I believe it has been named RIDEON. The key characteristics are as following:
- Inspired by F#
- Strong, statically typed, expression-based
- Immutable, lazy evaluation
- Limited pattern-matching
- Version 1: Predefined data structures and functions
- Version 2: Custom data structures, functions with loops, recursion
Security is priority
The development team is focusing a lot on security and testing backward compatibility so the whole smart contract aspect will be rolled out in versions:
- Version 1: Smart Accounts
- Version 2: Turing Complete Smart Contracts
- Gas-like cost computation system
- Ready for Crypto-Kitties ?
Good job Waves Team. We are happy to be a part of this amazing platform.