One-click crowdfunding with BCH
It's now possible to easily create decentralized, censorship resistant, and trustless crowdfunding campaigns using Bitcoin Cash!
By the end of this walkthrough, you should have a campaign that looks similar to this:
How to get started
1) Download a Bitcoin Cash wallet:
https://electroncash.org/ (Desktop)
https://badgerwallet.cash/ (Browser Extension)
https://signup.cash/ (WebApp)
https://www.bitcoin.com/ (Phone)
2) Access a campaign creator:
http://localhost:8080/ipns/create.flipstarter.me (if you're running ipfs)
3) Fill out the title, text content, start and end dates, and recipients of the campaign.
4) Click "create" and open the url to your new crowdfunding campaign!
What just happened
If everything went smoothly and you were able to view your campaign, then that means you were able to connect to the IPFS network and a public gateway was able to fetch the site you just created - since you gave it the right url
Without that url, others won't be able to view your campaign or re-host it, so be sure to share this url with others. Every user who views the site or re-hosts the content with IPFS, will make it load faster and less likely to be censored.
What if the server goes offline
In some cases, the page at the URL won't ever stop spinning, this can happen if the public gateway ends up offline or not able to communicate with you.
When this happens, you can still download the archive of your site using the "download" link as shown below.
Once downloaded, this can be uploaded manually to IPFS whenever you're back online or by sending it to someone to upload (like a third party).
Once the content is available on a gateway/node, the same url should still work to locate and display your campaign's site.
A bit about security
By the way, that url isn't only useful for a public gateway to locate your content but also so users can check if the content is exactly the same as you expect it to be.
It's a security feature.
If a single byte of the content is changed or removed in any of the files, the whole url will also change and anyone can verify the content matches the URL with IPFS. So you can trust sharing the archive to a third party (like a friend or service) to upload, while still sharing the same URL.
Can I choose a domain
To connect your campaign to a domain name. You'll need two entries into your DNS records.
1) An A Record
to a public gateway
ex: 209.94.90.1
(ipfs.io)
2) A TXT Record
to _dnslink.@
with a value that looks like _dnslink=<hash>
ex: _dnslink=bafybeid3uzpoyjgiwo3yyzzs7vpfkrlal7fodddoq2dmsdbvd3hlbj6dmi
As shown in the example, the hash in _dnslink=<hash>
is the longest part of the URL and it does not include a domain like "ipfs.dweb.link".
Once these records are created, you can then navigate to your campaign site using your domain without a server of your own!
If anything goes wrong with your DNS at a later point, you can still share the longer url which should still work.
Final thoughts
I hope the technical details didn't get too much into the weeds since everything should work easily in most cases. The technical parts are really for advanced use cases (and worst case scenarios).
Moving forward, I plan to continue improving on the UX for those advanced use cases anyways, God willing!
Anyways, hope that's a decent introduction to get started.
This is pretty wild. I am asking some questions in DM to understand it.