Updates From the Qchain Dev Team: 3/31/18

As Q1 comes to a close, we find ourselves nearing the completion of a much-anticipated update: In April, we’ll roll out a comprehensive website makeover that clarifies our focus on authentic marketing — as well as why we’ve chosen to orient our platform around branded content, influencer marketing, and sponsorships.

Along with our routine slate of tasks, the team is also in the process of co-organizing a conference to promote the concept of NEMcubator. The event will take place in May, near our headquarters in Orange County: Look out for an official announcement next month.

Of course, we’d also like to share what we’ve been working on day-to-day for the past month. Scroll down for our March dev update.

Biz Dev

This month, our CEO, Wally Xie, met with Cybernaut Zfounder Ventures, a Los Angeles based high tech venture fund. The meeting helped us glean insight into developing future long-term strategies for entering the Chinese market, and we look forward to cultivating further relationships with Chinese VC in the event that we pursue funding down the line.

We’ve added two notable figures to our growing rolodex of superstar advisors. Wall Street veteran and MuleChain CEO Ralph Liu has joined Qchain as a business advisor, and seasoned entrepreneur Pu Shi will be advising us on capital management. In turn, Wally Xie will be advising MuleChain on their ICO, marketing, and business development.

Tech Dev

On the tech side, we’ve completed our full internal NEM API, with a complete implementation of the NEM models described here. Each model supports conversion to and from Python, JSON, and serialized byte data, allowing for seamless integration between our back-end NEM code, off-chain infrastructure, and the NEM public networks. This includes a full implementation of the various NEM transaction types and server diagnostics, high-level utilities for interacting with the NEM API, and integration of our NEM models into a client for the NEM Infrastructure Server (NIS). We have also developed a SecureString implementation for storing secret data, with toggle-able memory access to the underlying buffer. This enables us to securely store private keys and protect them from unauthorized access.

Based on these developments, we have completed our testnet XQC faucet, which has been successfully deployed and is fully functioning. To give some perspective on the modularity and extensibility of our APIs, we’ve reduced the amount of code required to securely implement the testnet faucet to around 150 lines of code, down from around 2000 lines for a standalone implementation. After we add a few checks to limit the amount of testnet XQC transferred per day, we will connect the faucet to our demo front end. Users will be able to enter their NEM address to receive testnet XQC to use in our upcoming marketplace beta. We expect the testnet XQC faucet to be deployed on the front end in the next few days.

Moving forward, we are working to implement high-level functionality into our internal API to simplify interfacing with Ethereum’s JSON-RPC API. Additionally, we are building off of our APIs for our Marketplace Host system, which will improve the performance, decentralization, and security of the Qchain platform. In conjunction with this, we are working on our importance algorithm for Qchain’s XQC and EQC tokens, named Proof of Interaction, to fairly reward active accounts in the Qchain community.

Examples

  • Basic Models
>>> from qchain import nem
>>> message = nem.Message("Hello World!", nem.NotEncrypted)
>>> message
Message(payload='Hello World!', type=1)
>>> message.to_json()
'{"payload": "Hello World!", "type": 1}'
>>> message.to_dict()
{'payload': 'Hello World!', 'type': 1}
>>> nem.Message.from_json(message.to_json())
Message(payload='Hello World!', type=1)
>>> message.payload = "Enjoy some testnet XQC!"
>>> message
Message(payload='Enjoy some testnet XQC!', type=1)
  • NIS integration
>>> from qchain import nem
>>> client = nem.Client('http', '176.9.68.110', '7890')
>>> client.namespace.namespace('qchain')
Namespace(fqn='qchain', owner='NDY75BUUEB257O3NOUEIED4LJEGSISY5RG7NOZZI', height=1340640)
>>> client.namespace.namespace('qchainx')
Error(time_stamp=94302496, error='Not Found', message="invalid namespace 'qchainx' (org.nem.core.model.namespace.Namespace)", status=404)