June was an exciting month for Enigma, as the Discovery developer testnet was released. Many more details about this release, including Discovery’s features and how to get started building secret contracts, are available in our report post from last month.

Over the second half of the month, Enigma’s developers’ attention turned to refining its protocol as the networked testnet release of Discovery approaches. Its technical team efforts are now split between doing incremental improvements to the protocol codebase and developing the infrastructure needed for the Genesis Game. Here are some of the improvements made over the last couple weeks:

Mitigated the peer-to-peer network message limit of 1MB in the underlying pubsub (publish/subscribe) implementation from libp2p reported in the May Development Update by implementing gzip compression of the precompiled secret contract code that gets sent across the network (p2p pull request and enigma.js pull request) and optimized message encoding for binary precompiled code using Base64 that introduces up to 30% overhead instead of the previous hex encoding that was adding a full 100% overhead, or byte arrays that were introducing between 100% and 150% when transmitted as JSON strings.

Added integration tests across the three main repositories to the existing unit tests for each repo. This is a critical improvement to bring code stability across the three main interdependent repositories to ensure that new features introduced in one component do not break the functionality when it interoperates with other components across the network. These integration tests run in two different Continuous Integration (CI) environments: Drone with SGX Hardware mode support, and Travis running in SGX Simulation/Software mode: core PR#176, core PR#178, contract PR#115, contract PR#116, p2p PR#205, p2p PR#206. This collection of Pull Requests (PR) also automatically push docker image builds to DockerHub once a PR is merged into either the develop or the master branches of each repo.

Maintenance and upkeep of repositories testing and upgrading support for Node.JS from version 10 to version 11 (p2p pull request and enigma.js pull request).

In terms of preparing for the Genesis Game, Enigma is working on the following items:

Implementation of a faucet for ENG tokens on an Ethereum testnet with social validation. The purpose of the faucet is for any developer interested in deploying secret contracts on testnet to have test-ENG to pay for the gas required to run computations.

Utilities to both take a snapshot of token holders and their amounts of real ENG tokens on mainnet, and scripting the distribution of test-ENG corresponding to their holdings on mainnet.

Analysis of available Ethereum testnets to choose the best match to deploy its Enigma testnet.

Scripting the automatic deployment of contracts and computations to provide computational loads to benchmark uptime of those nodes participating in the Genesis Game, and getting measurements of the required parameters used to quantify that uptime.

If you are anxious to begin running nodes and participate in the Genesis Game. Please ensure you read previous post on ENG Snapshots and the Genesis Game so that you are prepared to participate. Enigma will release the dates of the ENG snapshot window very soon.

See also:

If you want to get started building your own secret contracts and privacy-preserving applications, check out our Developers blog, where Enigma team curates the protocol dev updates, code walkthroughs, and developer guides.