Commerce happens when two or more people trade goods or services for other things of value like cash or cryptocurrency and it requires two things:
- the ability to communicate
- the ability to transact
Swarm City enables people to securely communicate and transact in a completely decentralized way - without the middlemen.
Users can create a profile and digital wallet, convert ARC to SWT, send and receive SWT, see the SWT and ether balance and the equivalent USD value, place an offer, communicate privately, and complete a transaction exchanging SWT.
More details can be found in "System Architect Newsflash"
Creating a blockchain based app that’s fast and as responsive as a bee is hard. That’s why the Swarm City architecture consists of several layers that interoperate, to create an experience that enables a decentralized peer to peer sharing economy.
The protocol is the most important part; making sure layers can communicate by speaking the same language using the same grammatical rules. These layers are isolated so they can be changed without disabling the app.
One of these layers enables the communication between devices, the blockchain, and IPFS. Before data is stored on IPFS or the Ethereum blockchain, it needs to be available on every user’s device so it can interact with it. In the current live version, this part is played by Whisper.
With the development and release of Boardwalk (June 2017) the dev team reached and pushed the limits of what you can use Whisper for today.
To create an awesome user experience, Boardwalk 2.0 will use Firebase to enable the communication layer. In the meantime our dev and lab teams keep working on optimizing the Whisper solution, and when ready, will swap out the components on this layer. Firebase knows what’s going to be on IPFS before it’s there. But it needs to have the hash later on, so everyone can verify what is true.
IPFS stores all data — Firebase caches
There is a unique IPFS bridge constructed within Firebase, and its function is to listen to changes made to the Firebase database and storage. This bridge is a caching layer and hash index to the IPFS. All changes to Firebase will be saved to IPFS, and IPFS will generate a hash from the data, which in turn is saved back to Firebase updating the stored data with the IPFS hash.
Data is stored in the browser’s local storage via IndexedDB and Firebase database. This data is then synced to the IPFS. Firebase functions trigger updates to the Blockchain.
Public servers are used to interacting with geth, leaving the app completely infrastructure free with exception of the IPFS server.