June-July Development Update

LatestDevelopmentUpdate

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.

Our Plasma Chain

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.

ProjectAlice

Montenegro Workshop

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….

JohannKostaAlex

Our Blockchain Node

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;

  • Documentation - This part is usually the most important one, as it simplifies our developers’ lives a lot. We added Documentation for our JSON RPC interface and for the node;

  • 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.

Computation Without Proof

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.

Plasma Development 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.

Finished bounties

SpaceBounty

In the meantime, we have delivered a group of bounties that move us closer to finishing our milestones from the Ethereum Foundation Grant.

Bounty 005 - Plasma Consensus Rules

Johann and Alex have extended the node developed in Bounty 1 into the Plasma consensus rules in order to enable block submission in our node. You can find the full bounty description here.

Bounty 006 - Plasma Consensus Rules

Kosta created a JSON RPC server that is compatible with the Ethereum specification. You can find the full bounty description here.

Bounty 010 - Project Alice

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.

Bounty 011 - Project Alice - Parsec Testnet

Alex switched over Project Alice from the Ethereum Testnet to the Parsec Testnet using JSON RPC Server implementation with Web3. 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.

Parsec Faucet

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.

Stacking UI

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

Send