Ember Biweekly Update #7

Meros Cryptocurrency
3 min readNov 12, 2018

Welcome to Ember’s Biweekly Update #7, covering 10/22/18 to 11/11/18! The reason this biweekly update actually covers three weeks is because our Lead Developer was sick last Sunday. Our next biweekly update will be on November 25th.

We spent these three weeks preparing for our Developer Testnet. It will be open to anyone who can compile the node for themselves. We’re doing it to prove the technology works and because we need to in order to continue development. We plan on launching it this Saturday.

First, we made sure every Node started with the same blockchain. Previously, they each mined a block of their own so they would have some Merit to work with. Now, with that disabled and a standardized Genesis Block, they can share a valid blockchain.

Next, we had the Node verify all Entries it successfully adds to the Lattice. With Verifications being created, Entries could finally become verified.

With a Blockchain and Verifications in place, we started rewarding people for their work. This happens via Mint Entries on the Lattice. That said, we had to decide how much to pay each Verifier. This comes down to three factors.
- How much Merit does the Verifier have?
- How many verified Entries did they verify?
- How many Entries were verified in total?
The first is answered via the blockchain’s history. The second and third are answered via Epochs. An Epoch starts every block and lasts for six blocks. Entries that first appear in a block belong to that block’s Epoch. Those Entries can only be verified inside the Epoch. At the end of the Epoch, we can definitively tell if the Entry was verified and who verified it. Then, we look at how many other Entries were in the Epoch, and pay out portions of the Block Reward.

Now that we had people earning funds for their work, we needed a way for them to receive it. We could use the Receive Entry yet it didn’t have the fields we needed. BLS Public Keys earned Ember, yet addresses were Ed25519 Public Keys. To solve this, we added the Claim Entry. It takes a BLS Signature and an Ed25519 Signature, which proves the Mint is for them and they own the address the funds are being forwarded to.

We do not expect users to keep track of when they are minted or sent EMB. To simplify the process, we had the Node automatically Claim and Receive EMB.

We also added several RPC methods
- network.connect: Connects to another Node.
- merit.getDifficulty: Gets the current Difficulty.
- merit.getUnarchivedVerifications: Gets all Verifications not in a Block yet.
- merit.getEntry: Gets an Entry by its hash.
- merit.getBlock: Gets a Block by its nonce.
- merit.publishBlock: Publishes a Block.

The reason we added most of them is to add support for our miner! We started Blaze on October 30th, and it is currently working as a single thread Ember miner! We’ll use it for our Developer Testnet, yet have a multi threaded version ready for the actual testnet.

We also cleaned and upgraded our code. We redid blocks around Block Headers, which simplifies block structure and makes mining easier. We redid the Block Serialization code, possibly the worst code in all of Ember, into some of the nicest code in Ember. We added a handshake when Nodes connect to make sure they’re on the same network and version.

In this handshake, each Node lists their Blockchain Height. If one Node has more blocks than the other, it will tell the other Node all the blocks it is missing. When the Node doesn’t recognize some Lattice Entries in these blocks, it will ask for them. This means we successfully sync both the blockchain and the Lattice!

Finally, we have news about our team! We are bringing on a new community manager, Cristiaan Brans (Memnon)! He’s worked for multiple projects in the past and we’re very excited to have him on board.

That concludes our updates! As we have said every time, we look forward to Ember’s future, and we will update you in two weeks, on Sunday, with our progress.

--

--