/Klatch

An attempt at creating a decentralized peer to peer Meetup.

Primary LanguageJavaScriptMIT LicenseMIT

Klatch

A distributed peer to peer Meetup app

What is Klatch?

Klatch means "a social gathering, especially for coffee and conversation."

Klatch is designed to be a peer to peer meetup application.

Why can't the community host its own platform?

Think of it as Bittorrent meets Meetup.

People collaborated to steal music back in the early 2000s. Why can't they collaborate to host a decentralized network to meet each other in real life?

Meetup is fine. Why do we need this?

What if Meetup decides to start charging each of their member to generate cash?

You know, due to a failed IPO, a yoga doing, tequila drinking ex-CEO and a desperate Japanese visionary trying to shore up a multi-billion dollar VC mega fund?

Just hypothetically, you know ;).

More pragmatically, Meetup is the perfect candidate for a decentralized application because its about connecting people to people.

It can be seen as a commons where the peer to peer communication can scale a network.

Users are the clients and the servers. So the infurastructure costs are low.

Is that really why?

Also, I think it would be cool just to create one.

I'd like to create an app that attempts to seperate the programmatic value (cryptocurrencies) and peer to peer communication to establish better design patterns for a distributed web.

Think of this as a bubble gum and duck tape case study in building a practical distributed/decentralized app.

The errors will be as valuable as the key insights.

Are you an expert or something?

Hell no.

But tinkering is how progress happens. So, let's tinker.

Is Klatch decentralized?

Yes. And it goes one step further. It is distributed. Meaning that the users are both the clients and the servers. Imagine if Bittorrent was also a meetup application.

Decentralization still has bottlenecks.

Blockchains, are you using them.

Not for the backend logic.

They will be used for payments and experiments in programmtic value. Say if you don't show up your money is sent to those that did.

What will be using for the back end?

Instead of using say ExpressJS for a traditional client server app, I will be using js-libp2p.

Why not just keep it decentralized?

I don't want to pay any sever fees. This means the overhead is as low as possible.

I don't want users to pay mining fees for every transaction.

Why not just create an Ethereum Dapp (decentralized Application)?

Ethereum as of 2019 does not scale. Plus, there are all these mining fees that would incur each transaction. Smart contract platforms are great for programmatic value, ie programmatic money. Not infurastructure.

Klatch goes one layer lower and eliminates the crypto incentives and mining and uses the peer to peer networking protocols that distribute the blockchain.

Where did you come up with such a preposterous idea?

Have you tried to build a scalable dapp on a smart contract platform?

Why not side chains?

Then we are right back where we were with centralization. The more centralized the faster.

Yet, somehow Bittorrent doesn't suffer from these problems.

Are there any other platforms that could work?

This probably could work as a Blockstack Dapp. Most of the logic is pushed client side and it barely touches the blockchain.

I might port over the UX/UI to Blockstack.

However, for now, I am building it using js-Libp2p for fun.

So, why do this?

Dapps should seperate their networking and back end logic to p2p stack and only use smart contracts layer for value transfer.

Touching the blockchain should be kept to a minimum. The more critical the transaction to long term functioning of the application, the closer it should be to the main chain.

This can be a case study to help others create distributed applications.

Any other crazy ideas?

This can be a case study in a search for a business model on open networks.

How can one establishing an economy to balance leechers (file receivers) and seeders (file givers).

This could serve as an experiment to test out models that incentivize cooperation.

This is where smart contracts could play a role. Not really in the routing of data, but of value.

Such findings could benefit other peer to peer applications.

It can help discover new business models in managing open networks.

Think of how Red Hat makes its money with open source software.

How can a company make money helping to manage an and free network

Aren't you a wise guy. Seriously, is this thing going to work?

Who knows? Won't know until we try. So let's try.

There really isn't a good manual for creating peer to peer apps. So, lets stumble our way forward and make a small million mistakes.