Unmistakably Swarm City (How And What We Are Developing) by kingflurkelsteemCreated with Sketch.

in #cryptocurrency7 years ago (edited)

Swarm City is the first truly decentralized peer to peer economy, enabled by the SWT token, running on the Ethereum blockchain.

At Swarm.city, you get access to a decentralized global community of peer-to-peer service providers and consumers. The core technical offering is a decentralized app running on Ethereum. In Swarm City, anyone can easily create their own brands and hives and start doing peer to peer transactions.

To accomplish this, Swarm City combines the power of blockchain technology, open-source development, platform cooperativism, and a decentralized ‘swarm’ organizational model open to all.

At this point in time, most people think we are building the next Uber. This is not quite correct. We are building an app and ecosystem that will enable anyone to start their own Uber (or Lyft, or AirBnB, or…)

Bringing crypto stuff to everyday people by providing a simple GUI, while these people are demanding “Tools Today!” is a whole new challenge from a development point of view. It forces us to build in very small and controlled steps, releasing each step to be tested by the swarm. In this way, we create a continuous feedback loop with our Development, Business and Swarm teams making sure they are aligned and working in sync.

Many people ask us to share even the earliest stages of our production process. It all starts with the dev team having a shared culture and ideology, which is the result of an intense two-year research and development period. Learning and working together gave us the knowledge and methodology to solve problems very fast and execute these solutions in a way that might look like we’re improvising, but actually is a very focussed and controlled process.

The way we work differs from a corporate process. I strongly believe in how Steve Jobs said it; the real magic happens at the intercrossing of liberal arts and technology. If you put a graphic designer next to a backend api developer and have an atmosphere where they are inspired by each other, very soon they start creating value like you never seen before.

By using best practices like having a kanban type board on Trello, working with issues and branches on GitHub, writing out user stories and poker them we take the best of both worlds.

The speed at which we are developing and creating deliverables catches up on all these intentions and ‘best practices’. We believe we’re more like a jazz quartet than a software company, growing quickly into a Big Band.

Instead of having a score with every note in front of us, we agree on the key, the tempo, the chord progression and the overall theme of the song we want to play. Of course you can only work like this if you have a team of very talented people taking a leadership position in their own specialized fields.

So instead of writing out every detail and timebox it, we agree on what needs to be built, and in what order. We then group these features / user stories and create releases. We codename the release for easy reference.

Let me explain the releases one by one: our first release is called Terminal. Right after that, we will release Boardwalk, followed by Storefront.

Terminal

This is Terminal. It holds your wallet and identity in an encrypted vault, stored locally on your device.

Terminal, the first feature set of Swarm City is being developed and tested right now. The features being tested:
Create a new vault:

  • upload an avatar pic (it’s stored on IPFS)
  • choose a username (username + avatar are stored on IPFS)
  • a new ethereum public key (wallet) is generated
  • the vault is encrypted with your password and stored locally
    Download a backup of your vault
    Import your token sale wallet
    Import an existing wallet private key
    Delete the entire vault and start over
    SC Design testing
    Features to be tested:
    ARC to SWT exchange
    Send and receive tokens
    Import a vault backup
    Sync devices
    Boardwalk

The next set of features to be built, tested and released have the codename ‘Boardwalk’.

Once you leave the Terminal, which you used to enter Swarm City and set up your identity, you find yourself on the Boardwalk.

It’s where newcomers meet, get acquainted with the city’s structure and its citizens. Right here the first relationships and reputations are minted, the first deals are made.

With Boardwalk, we start enabling peer to peer transactions. This allows for building our reputation as true citizens of Swarm City. With every transaction, our reputation will grow.

Let me take you on a tour of how Boardwalk will work. See the pictures as illustrations to the text, not as wireframes.
Like Schrödinger's cat, the more technical parts are in a box

Hashtags popular in your area

Anyone can start a new hashtag, just by using it. A list of popular hashtags based on your geolocation will be shown. If you click it, it will take you to a listview of every offer and request that has been made on that hashtag. Let’s take "#"needaride as an example:
A hashtag is a MiniMe enabled contract, minting non transferrable reputation tokens. The contract’s address is also registered on our ‘hashtags’ contract, which basically is just an address string mapping, that we can index, read and even localize in the front end.
To start with we will pre-populate the hashtags with existing services.

On each hashtag, there are requests and offers.
Here we can see several incoming ride requests. People are offering Swarm City Token (SWT) to get from A to B. As you can see, in this release we are just replicating the functionality that is being used successfully today in facebook ridesharing groups.
You can set your reference currency as a preference, indicating the value in USD, EUR, ETH and BTC.
The requests you see here are not stored on a smart contract. It is real time messaging over Whisper. It’s basically like chatting with your wife, but receiving ipfs hashes of json objects instead of the usual 'plz take garbage out'.
We are broadcasting these ipfs hashes over channels which topics are geohashes. A geohash is a short alphanumeric string with a really cool feature: greater precision is obtained with longer strings. This makes for a fun and snappy zooming experience later on a map view (Storefront).
The user’s current geohash is the topic we subscribe to. Requests come floating in. We resolve the ipfs hash, display the content and cache it in the device’s local storage.
The reference currencies (EUR / USD / ETH / BTC) are being calculated using a simple API. Later that would be an oracle.
With the big plus button, a user can make a new request on this hashtag. It’s as simple as typing in what you want, when you want it.

In Boardwalk, creating a request is as simple as writing what you want.

On the offer detail view, a driver responds with a counter-offer.
On the detail view of the request, a service provider can reply with the same amount, or make a new offer.

The driver replies with the same offer, or a new offer.
When a new reply is done, the requester gets a notification.

When a driver responds to the request, a notification pops up at the requester’s device.
How we do notifications: it’s as easy as setting up a Whisper channel for the device, and sending messages to it – not the user profile or the pub key, but the device. We also use this channel to do multi-device syncing.
To do device to device communication we first do a handshake over Whisper, sharing keys. A new end-to-end encrypted tunnel is setup between these devices. Over it we can send encrypted information.
By clicking the notification, the requester is taken to the detail view of the request.

Two drivers responded to the rider’s request
The requester now has two service providers offering to resolve the request. The user can click on each offer and make a choice. Before choosing a service provider, the requester can check the reputation and identity of the provider.

Reply detail from a driver offering his services
When the requester chooses a service provider, they enter in a deal with each other. A deal is valid when both parties send the amount of tokens to a holding contract that will store the tokens until the deal is completed successfully.

In making a deal, both parties send the same amount of tokens to a holding contract.
From the moment the deal is registered and the balances are set, both requester and provider are literally invested in this deal. They can start chatting with each other to make more detailed or practical arrangements.

Making practical arrangements over chat
After arranging the last details (if necessary) the deal is executed, the ride takes place. Upon completing the deal, the driver triggers a countdown. The requester now has a certain period of time to ‘protest’ the transaction, which would lock the tokens in the deal.
"#"conflictresolution might become a very popular hashtag. Some people are very talented in resolving conflicts using certain proven techniques. They can come in and resolve the situation by creating consensus. With a successful intervention, the tokens are released and all parties involved will gain reputation in "#"conflictresolution.

When the deal is executed, the requester and the service provider trigger the payout.
When the hashtag contract registers the transaction, it will mint new reputation tokens and send an equal amount to both parties. The total token supply of the hashtag contract increases, this value indicates the hashtag’s popularity. The hashtag token contract triggers the payout function, and the deal’s status in the array of pending deals is updated.

Reputation Token Balances indicate this identity’s activity and reputation

Reputation in Boardwalk is nothing more than displaying the amount of reputation tokens a user has created in a hashtag token contract. It will give requesters a rough idea of what kind of person the potential provider is, while leaving open the human factor of interpreting self chosen indicators to calculate trustworthiness. MiniMe contracts make expanding the functionalities of our reputation system possible.

Next up: Storefront

So to recap: with Terminal, we create our Swarm City citizen identity. With Boardwalk, we start doing transactions, building reputation on our identity. With every transaction on a certain hashtag, our reputation in that hashtag grows.
However, we only imitate the behaviour already showing in the facebook groups.
With Storefront, requesting a ride will become easier. We will start providing easy interfaces for certain hashtags, starting with "#needaride". It will give users a simple way to quickly set up a request, with a nice map view to pick from and to locations, driver profiles and many more features already being planned on by our Swarm.
By developing things in a specific order, we make sure we release the full potential of each step. At the start of Boardwalk, we might see "#dev-tasks" being more popular than "#needaride". We might see there’s a real potential for "#swarmbnb".
We want to find out which Storefronts are most important to our Swarm, so we make sure we start building those first and fast. This approach will also enable us to further decentralize the development of Swarm City: anyone can work on different Storefronts, as Boardwalk will indicate where’s the most potential to add value to the project.

Become involved

Swarm City’s population has been increasing very fast the last couple of weeks. Everywhere we see people start building, organizing and adding value to the Swarm City token. For entrepreneurial developers, now is the time to start learning how to build Storefronts.

Get over there and meet these amazing people. It’s not so different from a real city: if you want the full experience, you have to be there for yourself.

Author: kingflurkel

Join our Slack channel - Find us on facebook - Github

We have a unique and great welcoming of new people in our slack. You can now even have the Swarm City Tour, where our Swarm members take you on a tour through the different Slack channels, facebook groups, etc.
You get to meet people that are actively adding value to the project, giving you a feel to what Swarm City is.

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.030
BTC 64814.42
ETH 3450.94
USDT 1.00
SBD 2.52