Development Update — 13th Oct, 2017
Happy Friday Rocket Poolers! With the RPL presale in the rear view mirror, efforts over the last few weeks have been concentrated on working on some core elements of Rocket Pool that will be required for its beta release hopefully on the Kovan testnet in the first quarter of 2018. Some of these core elements are the smart node service scripts and the design / functionality of the Rocket Pool beta UI.
Following up on the previous development update, more work has been done on the smart node service scripts. Rocket Pool isn’t only made of smart contracts, but also a network of nodes that can listen to the main smart contracts and receive instructions from those contracts. These scripts also allow the smart nodes to check in with the main contract on a regular basis to report on their server load which helps with load balancing users who stake with Rocket Pool + more.
Currently these beta scripts are functional and will run as a background service on a node. They will automatically run when the smart node is booted up and will wait for the Parity node software to initialise, they will then add event listeners to the Ethereum blockchain which allows for two way communication between the Rocket Pool smart contracts and themselves. The scripts will also process past events in case they incur downtime, so no instructions are missed in the case of hardware faults. Still more work to be done, but the initial beta versions of these scripts are promising and working well initially.
Rocket Pool Beta UI
Development has largely taken a backseat over the past few weeks as we near part one of the Metropolis hard fork, the Byzantium fork. With this upgrade to the Ethereum blockchain happening soon, it will also bring with it several new notable upgrades for smart contracts that will allow huge optimisations to Rocket Pool that I’ll discuss a bit further on. Waiting for these changes to come into play allowed for some initial design work on the beta version of the Rocket Pool user interface for users that wish to stake with Rocket Pool and earn interest on their ether holdings.
The aim of the UI is to be big, simple, effective and attractive. A lot of Web3js apps using Metamask and ethereum browsers currently in the ecosystem are fairly clunky, so the aim is to make this UI as smooth and easy to use as possible. Here’s two screenshots of very early prototype designs of the beta style.
Not only have designs been undergoing work, there’s also been some initial work on the actual UI animations and JS framework that will power the UI. Currently this is Vue.js, similar to React in some ways, but very powerful and flexible when combined with a global Event Bus (I’m a huge fan of Pub/Sub frameworks and design concepts).
While a lot of the recent focus has been on the UI, a few but important contract updates have been made.
Rocket Pool was originally designed according to the Mauve Paper specs which specified that Casper would require some parameters that identified a node by a validation code (EVM byte code, like a mini contract). This has since been changed to a normal node account address for the first version of Casper, so Rocket Pool has been updated accordingly and is now compatible with this approach.
The first part of Ethereums next major upgrade, Metropolis; is set to begin in just a few days. This update brings with it several new features which will enable Rocket Pool to do across the board optimisations and even some contract restructuring.
Two of the most useful updates are some new opcodes which will now allow contracts to send variable length data between each other. Until now this wasn’t possible and often resulted in some inefficient methods to get the job done. This update will allow dapps that use a modular contract structure, as Rocket Pool does, to achieve much more efficiency. We’ll be looking at starting these optimisations in the near future.
Ethereum Brisbane — Anatomy of a dapp.
Rocket Pool got a special invitation to give a talk on our Dapp + Network to the Brisbane Ethereum Meetup group on the 4th October. Gave a high level overview of the differences betwen PoW/PoS as well as a rundown on what Rocket Pool is, how it works and some general info on decentralised apps.
Had a great turn out of 60-80 people and spent a good hour going over all Rocket Pools tech, how it was made and what it was made using. If anyone wants to view slides from the events, there’s a pdf version available here.