Hello everyone, it’s Victor!
This post will describe our latest developments!
As some of you may remember, we started our Development Update blog posts in May, and this is our second article in what will hopefully become a long series.
We are glad to share that we released the first Alpha version of our Plasma node. In addition, we have built a prototype application, which communicates with the Plasma node so that everyone can test our chain.
Check it out here - Project Alice.
In the middle of June, three of our developers met in Montenegro to attend a workshop and to hang out a bit. It was a very productive meet-up, as it was a rare occasion for our distributed team to meet each other in person.
Here is a short summary of what was accomplished on this trip….
We are very happy to announce that our Node is now fully functional. In Montenegro, a couple of things were done:
Binary Release - We have published our node to an npm registry. Anyone can install and run it on the local machine;
Activation – We finished all work on the auction mechanism. The future validator should send an activation transaction to become a validator in activationEpoch;
A couple of problems were solved:
Should we use UTXO (Unspent transaction output) in merging and UTXO consolidation? Should we automatically add it before each transaction? - We decided to add a new transaction type in parsec-library, which can merge all unspent outputs into one (preventing huge transactions with too many inputs);
Should we add colors to UTXOs? - This was probably the biggest change during the workshop. We added the support of multiple tokens into our contract, library and node so our customers will be able to deposit, transfer and withdraw not only PSC, but other ERC-20 tokens as well.
One of the workshop’s phases was centered on computation without proof; you can find the results below:
Added Transaction Type – We added a support of computation request/response transactions into the node;
JS-EVM - We just tried to run some compiled solidity code during the computation request transaction and luckily, it works. For now, it functions as the proof of concept. Here is an unfinished Pull Request for computation without proof. We will continue with that after testing the new validator’s updates.
Last but not least, the final topic of the workshop was Plasma Contract development. We have made a progress report on that as well:
Rainbow Release - our Plasma implementation now supports an arbitrary number of ERC20 tokens, which can be deposited and withdrawn from the contract. Each registered contract receives a number, which we refer to as the color of the token;
Transaction Parser Library - rather than using RLP encoding for transactions, we rely on a more efficient and static structure. A Solidity library has been completed, which allows parse transactions and the exit of any of their outputs to go through a priority queue. With these milestones, we believe we have completed the full Minimal Viable Plasma spec as discussed on ethresear.ch;
More Viable Plasma - while the Minimal Viable Plasma spec required confirmation signatures to protect funds from the mischief of a malicious operator, the 'More Viable Plasma' proposal introduces a protocol by which participants can safely withdraw their funds without confirmation signatures. This spec addresses any included transactions as well as in-flight transactions when the chain becomes byzantine. We have an in-progress implementation of MoreVP here;
Crypto-Economy Aggregate Signatures - the CAS scheme allows us to go beyond the subjective data-availability assumptions of Plasma, while continuing our research into exit games of smart contracts from Plasma chains. You can find the latest code here.
In the meantime, we have delivered a group of bounties that move us closer to finishing our milestones from the Ethereum Foundation Grant.
Max created a Basic demo app using the Ethereum testnet. Also he connected it to the Ethereum testnet through the back end and added a few hardcoded accounts that are preloaded with testnet Ether. Keep in mind that Project Alice was already switched to our PARSEC testnet. The design for Project Alice was created by Sergey. You can find the full bounty description here.
Feel free to join our Slack and start working on our open Bounties. We are an open community, which means that anyone can try to deliver a bounty and if you will pass a validation, just send your wallet address to receive ETH.
Johann built faucet service for our chain. It allows you to receive PSC tokens for testing purposes. Alex added a smooth, minimalistic design to it, which you can check out here. Stay tuned for the opportunity to receive free PSC tokens in the future.
Alex built stacking UI which you will be able to use in the future to buy a validators slot, make a deposit to a chain and also to claim some free PSC from the faucet service. For now it is just a nice extra tool that simplifies node development and testing. In the future it will be used to help our validators.
That is it for our updates! If you are interested and/or want to contribute, join us on slack: http://join.parseclabs.org