district0x Dev Update - November 27th, 2018

Development progress and product changes from district0x

With the recent Thanksgiving holiday keeping a few of our American service providers out with family and friends, the past two weeks have been a slow grind towards the testnet deployments of the District Registry, Meme Factory, and the district0x Tasks app we mentioned in our previous update. This has lead to a series of devops challenges across our applications in development, and has given us a unique opportunity to identify pain points and experiment with architectures that might avoid these hangups for future projects.

Meme Factory

As detailed in our last post, Meme Factory development has been focused on final improvements for the DANK faucet. This includes, among other things, better error logging and handling of all negative code paths, in addition to testing token transfers directly and hashing phone numbers within the browser. After battling some compatibility issues caused by using Ganache, we are now focused on documenting the entirety of the faucet for developers and operations staff alike.

Work on the core application has continued with the list of small style issues from previous weeks. Additionally, an automatic pull of the newest SQL compiler version rolled what were previously warnings into full errors, and caused a bit of an unexpected hurdle to clear. With some simple tweaks to handle this going forward, we were able to restore our automatic continuous integration pipleline and proceed with the set of small to-do fixes on Meme Factory.

Much like we did for Name Bazaar, Meme Factory is going to have a settings page with a blockchain-encrypted email generation service for our notification scheme. This will allow an additional way to communicate outwardly with a particular Ethereum account besides the user interface and transaction log, and can help expand notifications to include all sorts of updates and new listings or features.

District Registry

Our last update on the District Registry mentioned an ongoing effort to reduce our smart contract set down to a more manageable size. This required us to rebuild our syncer to reduce it down to size. With it completely reconstructed and compactified, we have a more reusable gameplan for making syncers that will serve us in Ethlance development and beyond.

More size reduction strategies are needed to make everything work for the Registry, and so we have extracted the majority of the staking logic and bonding curves needed and rolled them into separate libraries to be called out to. This has yielded a red herring in the form of a gas limit error. We’ll be battling this before rolling on towards deploying the new contracts for testing.

d0xTasks

With most of the core application, both front- and back-end complete, and with the majority of the styling already done, the d0xTasks app has transitioned development towards a QA deployment, which required a bit of Parity setup and configuration preparation. Once deployed to Ropsten, we’ve worked through a range of small issues and feedback on the web styling. Currently, efforts are underway to implement the mobile UI and styling as well.

Ethlance

Smart contracts for Ethlance have reached a feature complete state. We managed to retrofit these to the newest version of solidity. The major effort in the past cycle has been a schema to model data from these smart contracts out to IPFS. We are experimenting with new, expandable models. Moreover, much like Meme Factory and the District Registry, Ethlance will need it’s own syncer as well as a data generator to populate the eventual test suite with data.

As we begin to free some of our service providers from obligations with apps nearing completion, we’ve been transitioning focus back towards d0xINFRA. In particular, defining a constrained initial release specification and experimenting with new architectures are new initiatives underway. The current fixation of this research is rebuilding a district similar to Meme Factory against abstractions of libraries we can expect to need, rather than any specific set of libraries.