How to make crowdfunding easy and hard to censor.
I'm the sole developer of create.flipstarter.me - a tool for creating non-custodial, decentralized crowdfunding campaigns online without any technical background using BitcoinCash!
I'd like to explain how create.flipstarter.me is able to make fundraising easy and censorship hard.
My overall objective for this project is to build an uncensorable GoFundMe alternative using BCH and IPFS.
What does it do?
create.flipstarter.me provides organizers with an online tool to create, manage, and share a crowdfunding campaign without self-hosting or trusting a centralized server.
No credit-card or signup is required.
The organizer will receive a link to their new campaign webpage which provides donors with two methods of making a contribution to the campaign:
A non-custodial web wallet (with auto-refund capabilities) for making donation easier.
Integration with the electron cash wallet and existing flipstarter plugin for making donations extremely secure.
A growing number of users have already organized and donated to a successfully funded campaign (ex: 1, 2) and many more have created a campaign (ex: 1, 2, 3).
How does it work?
Users don't need to sign up for anything because they are permissionlessly generating a custom site that they can share with the world via a single link or distribute entirely peer to peer.
IPFS is a decentralized storage network which allows organizers to avoid self-host or be locked into a particular server storing their campaign website, donations, and comments.
Both the website and donor comments are stored in a decentralized storage network called IPFS:
The flipstarter.me server participates in this network when it saves your campaign long-term and makes it accessible to other IPFS nodes.
The create.flipstarter.me site participates by connecting and publishing to multiple nodes on the IPFS network and allows the organizers full control connecting to more servers in "Show Advanced Configuration."
In both cases, a link is generated for the stored content. In the case of the organizer, the link is to their campaign website which they share with others. For donors, the link is to their comment and stored in a notification transaction to the first recipient for less than a penny in fees.
Later, these links are used to fetch the actual content from one or more nodes.
Links and Gateways
Once a campaign is created, organizers are presented with a link that includes the hash of the campaign and site (protecting forgery) and the default selected IPFS gateway - flipstarter.me being the default configured gateway for new organizers but can be changed anytime.
Gateways allow users to access IPFS content over HTTP(S). This avoids centralization because any gateway can provide the same service.
For example, Brave browser provides a local gateway for every user directly in the browser.
Generated links have the form:
https://{gateway}/ipfs/{hash}
https://{hash}.ipfs.{gateway}/
Example of gateways:
flipstarter.me
ipfs.io
dweb.link
Users can directly change the gateway portion of the link to another gateway - such as the one included in the Brave Browser. Changing the gateway is what makes content on IPFS hard to censor or locked down to a single server.
The alternate gateway uses the hash portion of the link to find the correct content and verify that other peers on the network are providing the correct content.
Organizers can also link a domain name to a hash using DNSLink records allowing any user or gateway to retrieve the hash just using a domain name (ex: bchhangouts.flipstarter.me). All without paying for hosting.
What if we go down?
create.flipstarter.me is itself an IPFS page, so if our domains go down, the content is still recoverable using IPFS.
Though, if the flipstarter.me server went down, users would experience significant slow down unless someone intervenes by regularly republishing to the other public servers (who purge their cache frequently) or by meeting the challenge head on peer-to-peer.
For peer-to-peer distribution, contributors and organizers could make use of IPFS Desktop to host their campaign entirely for free and peer-to-peer. In this case, they can make use of the free and public ipfs.io as their default gateway.
The more people that participate, the faster and more censorship resistant the data becomes.
Alternative, organizers can simply search for one of the many free or paid ipfs services in the market to pin their hash. These services do not need to know anything about flipstarter.me.
So what's next?
In the future, I would like to expand what flipstarter.me offers in terms of products and services so it's even easier to create, donate, or support a censorship-resistant fundraising campaign.
I hope this article shined some light on what's happening under the hood and why it's useful.
Anyone can build an application in a similar way.