Swarm City - Dev Progress Review: The Path Towards Boardwalk 2.0
Soon the Swarm City dev team will update the existing dapp with a new 2.0 version. With this post, I want to share what we have been doing for the last months, and what the results are. This post might be somewhat technical as it is about the dev progress.
Swarm City Github
In June 2017, we launched the first version of Boardwalk. With it, we proved to ourselves it’s possible to create a fully decentralized app running on Ethereum. It was the first step towards realizing our vision:
Humans transact, create and share value without a middleman or third party, on a global scale.
With this first version, we inspired developers from all over the world (Will from China and Xardas from Belgium to name a few) to start working on the production version of Boardwalk. We believe in “fail fast” and don’t shy away from starting from scratch when we feel it’s necessary. While the dapp was a great Proof of Concept we needed a more solid foundation for Swarm City.
Starting last summer, our dev team first planned out the architecture in detail, the interface was fully sketched out and the infrastructure was documented (check this github wiki). We waited to start coding, so we could fully focus on discussing exactly how we would build Boardwalk 2.0. Daily meetings on fixed times helped mitigate timezones and fuzzy communication.
With Boardwalk 1.0 we found out it’s currently quite impossible to create a decentralized web based app that runs as smooth as apps people use today. After a thorough analysis, we found out the problem lies primarily with the constant polling for data from the front end to the blockchain. This is what made our prototype slow and unreliable. So we came together in Switzerland and created a new abstraction layer in Swarm City: the API layer. It consists of several Docker containers that, by working together, provide a fast and reliable data API for our front end. Remember when we talked about using firebase? With these worker nodes we don’t need it anymore.
Staying true to our values, we made sure this layer is in itself able to be fully decentralized. In the future, anyone will be able to run a worker node, and become part of the Swarm City API.
On the front end side, we completely reworked the interface and made an efficient click model out of it. Every transition was pre-animated and rendered, as to give the web app a better, smoother user experience than any other native app out there. The quality of animation we want is so high, our dev team had to make a totally new animation component for it. The result is this amazing new Polymer web component: Faffys-animated-pages. The Swarm City Dev Team really had to innovate in each layer.
Faffy explaining his animation vision
With Swarm City Boardwalk v2, we also introduce localization; we now support 10 languages. The number of languages will increase in the coming weeks as translations pour into our #translations channel in Slack.
We also upgraded Polymer to version 2. This results in more efficient coding, better tooling and easier debugging, and makes our components future proof and easily integratable in other projects.
On the smart contract level, we recreated the hashtag and reputation token contracts. We optimized and audited them to make sure the development environment is stable and reliable. A small example of a change; to create a deal we now use the approveAndCall function in the MiniMeToken. The result is that when making a deal on the hashtag it can now be done in 1 transaction, instead of 3.
While working on all this, we also solved the “I need gas to do a token transfer” problem. We built a prototype where a gas station client can transact to exchange an erc20 token to ether (gas). We are very proud and honored we could tell our friends while at devcon3. Gas Station will be integrated later on, we’re first going to build it together with MyEtherWallet. As soon as it’s fully functional, we’ll add it to Swarm City too.
Combine the revised smart contracts, the API layer and the front end web app all together, and you get a swift and powerful user experience, exactly what we expect to show the world.
We are very proud of what we created these last months since the first release and can’t wait to share it with everybody. Before we can do that however, we need to test, test and test some more.
We are looking for people who like Swarm City and want to try out the new Boardwalk. Also, we’re looking for more translators. If you’re already in our Slack, ask for Kiki Pluche in #general. If you’re not in our Slack, get an invite.
If you have questions about Swarm City’s concept / tech / architecture, talk to kingflurkel or Faffy Diggins on Slack anytime. If you would like to contribute to the development, reach out to Kiki Pluche or Will Hill. If you want to know how you can create value with Swarm City, talk to Matthew Carano, Bernd Lapp or Jenn Williams.
I look forward to transacting with all of you on Boardwalk 2.0.