district0x Dev Update - November 14th, 2017

Development progress and product changes from district0x

Since the last development update, the team has been hard at work expanding the feature set of the Name Bazaar, fixing small bugs, making optimizations, and setting the foundation for future development. As we extract more of d0xINFRA from Name Bazaar and proceed with the development of Meme Factory, these optimizations will carry over to future dApps.

Outside of Name Bazaar specific features and fixes, we’ve made several DevOps improvements in an effort to clean up our development environment and facilitate easy maintenance in the future. These initiative include getting all of our services running locally in order to build out a complete test environment, and running our entire test suite with every single commit. This has the obvious benefit of letting us detect a much broader range of issues before they make it to production.

Name Bazaar Updates

Bugfixes

Two major bugs have been fixed in the past two weeks:

An issue related to the email notification feature caused some users registered for these notifications to never receive them when a requested name was listed for sale. This has now been resolved.

An issue with node syncing was causing some newly created offerings to not be shown in the dApp (despite being properly committed on-chain). This issue has been resolved not only for Name Bazaar, but across all of our dApps.

Delete Offering Feature

One of the strongest points of feedback we received in the wake of the Name Bazaar launch was just how inconvenient it is for offering contracts to remain live indefinitely until filled, with no option for deletion. This is an understandably confusing departure from a traditional web application, where something like an offering would be stored in a central database that can have entries removed by the app itself.

Being that offering contracts are pushed live to the blockchain, it’s not as simple as calling some sort of delete function in order to invalidate and remove them from the user’s view. With a bit of improvisation, we developed some solutions around this.

For new offerings, contracts that are deleted are made invalid by transferring ownership of the contracts to a specially generated address, which executes the offering contract to the point where it becomes unusable in the future. This can only be done when ownership of the name has not been transferred to the offering contract (if already done, it must be reclaimed).

This, however, only covers half of the problem. Since the offering contracts that were already live before this change are immutable and don’t conform to these new changes, they’re not able to utilize the same delete function. Instead, when the delete button is used on these offerings, a small change is made to the offering price. The dApp UI recognizes this value, and does not surface these contracts to the user. They are, however, still live on the blockchain and technically usable outside of the dApp in their original form.

Name Offering Counter

Next up is a far simpler and self-explanatory addition to Name Bazaar — a counter for the number of names offered across the marketplace.

In the upper right of the home page, you can see the total number of offerings live at any given time.

Server Side Rendering

We’re placing the final touches on a batch of changes that will transfer much of the initial dApp’s load to a server side operation. This will not only facilitate much more consistent, faster, smoother loads when interacting with the dApp, but will also help us in our efforts to improve search engine optimization across the site.

What’s Next?

As mentioned in our last dev update, we are proceeding with a plan to build a domain registration flow directly into the Name Bazaar itself. Designing this implementation has already begun.

Additionally, we are continuing to build out the notion of a “user” as an abstraction on top of ETH addresses and owned names. By introducing reverse-resolution logic, we can combine all a user’s addresses (as an owner, bidder, and user account) into a single defined display name, rather than an address hash. This should significantly improve the experience of browsing or shopping by user, and will more closely mimic a traditional web dApp, where users can share or bookmark human readable URLs.

Finally, we are beginning to transition more resources towards Meme Factory as Name Bazaar reaches a more stable and usable state.