APEX Network — Development Progress Update

APEX Team
APEX Network
Published in
8 min readDec 19, 2018

After the successful launch of the APEX Network testnet on November 30th we have been hard at work on stability testing and further upgrades and feature implementations. However, it seems prudent to update the community on what has been going on and what our plans are going forward.

We would like to take some time to provide an update on the blockchain team, the wallet development and the state of the testnet — as well as a few notes on dApp development.

The growth of the blockchain team

First off, we are happy to announce that we have been hiring aggressively as planned. Our stated expectation for EOY 2018 of 35 members for the blockchain team has been surpassed, as we currently have 40 employees working on the blockchain team. These employees work exclusively on blockchain related tasks, and have no responsibility for other projects or products.

Compared to our previous update, we have optimized the role allocation — and we now have three product managers and 37 developers divided between the wallet, blockchain and ecosystem branches of the blockchain division.

In line with our ambitions (and part of the reason why we needed new offices) we are still aggressively hiring, and are expecting the blockchain division to total around 60 employees around the time of mainnet launch.

We are quite proud of how our developers have expanded their knowledge and skillsets. Coming from a solid background of infrastructure development and crossing into blockchain territory there are some important challenges that must be overcome. Firstly, they needed to achieve a good understanding of some of the core algorithms, such as digital signatures, zero-knowledge proofs, p2p networks and virtual machine development. Secondly, they needed to understand the principles behind constructing an economic model for the blockchain. Considerations such as balancing interests of miners, developers and users are important to enable healthy operation of the entire blockchain ecosystem. Thirdly, it is important to understand the core usage scenarios, including which value is provided for each role in the ecosystem.

While the blockchain team is working hard internally and making good progress, we recognize that community participation is important. After the mainnet has been launched we plan to gradually open up for community participation in the construction of the blockchain project.

How about that APEX wallet?

The wallet development has been a learning experience for us. The latest version of the wallet has seen less bugs due to a comprehensive upgrade of the stability, availability and error tolerance of the backend services combined with improving the usability of the app. Future versions will see more focus put towards the data service of the app, which naturally is a core functionality considering the vision of APEX Network.

Impression of the APEX Wallet with full functionalities

Four of the main challenges we encountered during development so far relates to the nature of the Ethereum and NEO blockchains, these are;

  • The acquisition of nonce while making ETH/ERC20 transactions can be difficult to control, especially when making multiple transactions continuously.
  • The full node synchronization of the Ethereum blockchain was not synchronized to the latest block on the whole network. We later used a third party Parity open source client to solve this problem. We have also upgraded the backend service architecture and use both fast and full nodes to ensure stable operation.
  • NEO transaction analysis can be problematic at times, as the block explorers such as Neoscan and Neotracker have intermittent difficulties with the transaction records. So far we have mostly overcome this issue after several iterations of code.
  • NEO’s node synchronization is occasionally unstable, and it has been difficult to find the exact cause of this. To compensate for this we added multiple nodes to ensure the stability of the backend service.

The APEX wallet will gradually become more biased towards the main purpose of APEX Network. Product Manager Qi Zhen Zhang is working diligently on the top-level design of this, to create a new business model that allows consumers, enterprises and service providers to achieve proper value. The next big version update is planned for early next year, combined with launching on the app stores. The main focus is working on the link between the wallet and the APEX Network blockchain.

Testing… Testing… Testnet!

The testnet is currently very stable, producing new blocks every 0.5 seconds and blocks being confirmed by the consensus nodes within a few seconds. Compared to Ethereum’s 15 second blocks and EOS’ 0.5 second blocks we are on par with the leaders of the industry. The consensus module is actually the part of the blockchain code that we have been the most satisfied with so far. It is extremely important to get this part right in the early stages to avoid cumbersome attempts to update it later.

Node log screenshot from one of the testnodes run by a community member

The current version of the testnet website allows users to view the latest blocks and amount of transactions, recent trading volumes and number of active accounts. These statistics may help users better understand the status of our testnet. We are working on the development of the full public block explorer. To facilitate data collection during this testing phase, our back-end server has a special module to parse the block generated by the main network and write the block data to the database.

Some may be wondering whether the APEX Network mainnet will be prone to forking issues. To avoid this we have adopted a consensus model similar to that of the EOS mainnet (instead of BTC, BCH etc), which basically has no major fork issues.

Developing a quality blockchain does not come without its challenges, and during development we have encountered two relatively large difficulties. Firstly, the block rollback mechanism. Whenever there is a fork during block production, you may want to roll back the block produced at this point in time. The logic of block rollback is very strict. While the logic itself may be very simple, the actual operation can cause problems. Secondly, the block consensus. It is very difficult to produce new blocks in as little as 0.5 seconds while ensuring to the greatest extent possible that there are no forks. After repeated code iterations we feel confident that these issues have been resolved.

We still have a lot of work ahead of us, optimizing the current testnet and adding essential functionality. The critical smart contract module is expected to take around three months to complete, and supporting Turing’s complete virtual machine development is also a work intensive task. While some components of the smart contract architecture are easy to complete like the logic layer, others are more complex. The logic layer is basically similar to an oracle, and the oracle is connected to an external network.

Over the next few months we will focus heavily on smart contract support as well as developing the economic model of the ecosystem. To illustrate; Ethereum introduced gas, and EOS introduced memory, CPU and bandwidth. The way the economic model of APEX Network is designed will contribute to the sustainable operation of the ecosystem. The proper operation of the data cloud nodes are dependant on the implementation of smart contract support, hence they are not yet operational.

Encrypted data is routed from the blockchain (using SHA-256 hash) and stored offchain in a DHT (distributed hash table) run by a collection of Data Cloud Nodes

Lots of people focus on TPS when evaluating blockchains, so it seems fair to mention what we are working towards in this area. As some of you may know, the world’s fastest processing system by far is Alibaba’s transaction processing system, with a TPS of approximately 390,000. Our mainnet TPS will gradually achieve this goal.

As far as programming languages go, we recognize that Go is a very effective language. Scala brings important aspects to the table though, and is a good fit to satisfy the need of APEX Network’s mainnet to support big data applications. Scala integrates various features of object-oriented and functional programming, providing important functionality for the bottom layer of our blockchain. This is also the reason why our blockchain division has a large number of expert level Scala developers.

Keeping in mind the developers in the community, we are considering introducing support for more programming languages to lower development threshold for smart contracts. The aim is to gradually build a technical community, and to harness the power of the community to aid in providing support for the various languages. Whether we use Ethereum’s EVM or EOS’ WebAssembly, support for various languages is naturally very convenient for developers.

What about the dApps?

dApps are an integral part of a successful blockchain platform, and to properly develop and deploy dApps on the blockchain, certain features must be implemented. As soon as the network is fully functional we will develop enterprise dApps, focussing on enabling enterprises to quickly start using our blockchain and become part of a growing ecosystem. These initial dApps will be used in our marketing towards other potential enterprise customers, both to existing APEX Technologies customers and as part of the cross marketing efforts for APEX Network and NEXUS to new enterprises. With increasing demand we will also consider standardizing blockchain services. As part of this effort we will consider releasing pilot dApps as SDKs for new interested enterprises to use and further develop.

APEX runs via the NEXUS suite — one of the three tech solutions APEX Technologies is offering

The intention is not for APEX Network to develop all dApps that are deployed on our mainnet, and for this reason we will focus on supporting the community and lowering the threshold for developing data dApps as much as possible. Lowering the threshold for developers to start developing dApps and allowing them to join the APEX Network ecosystem is, in our opinon, perhaps even more important than us developing dApps ourselves.

Final words

We would like to take this opportunity to congratulate all those in the community who have successfully managed to deploy a testnet node during the CPXmas games — and we were thrilled to learn that there is an active community of developers who have already launched the first iteration of an APEX Network Global Community Testnet! At the same time, we would also like to extend our deepest gratitude to all those who have had faith in our vision all along, and have patiently waited to see the fruits of our labour. We hope this update has provided you additional insight into our work so far and how we plan to proceed towards mainnet launch. We will aim to update the community regularly to enable you to track our development efforts going forward, and are confident that you will be pleased with what you see!

In nodes we trust,
Team APEX

APEX Network

--

--

APEX Team
APEX Network

Blockchain Powering the Next Generation of Consumer Applications