Henry Ma's Website
12 Feb 2019 - Henry Ma
“Everyone is an entire world, yet no one could be a lonely island.”
An episode of Exploration of the Decentralized World
TTL;DDR
step 0: Enable Jekyll to generate for IPFS(URL, etc)
JEKYLL_ENV=ipfs bundle exec build
step 1: Add the generaetd website directory to IPFS
ipfs add -r _site
https://ipfs.io/ipfs/$WebSiteHash
step 2: Publish through the generated hash(the last in step 1) to /ipns/$MYPK
ipfs name publish --key=$MyPK $WebSiteHash
https://ipfs.io/ipns/$MYPK
Optional Optimizations
- Setup DNS/DNSLink to make the addressing more human friendly
DNS TXT Record:my.domain => dnslink=/ipns/$MyPK
https://ipfs.io/ipns/my.domain- Setup DNS/DNSLink to make the entrypoint all the same to traditional web
DNS TXT Record:_dnslink.my.domain => dnslink=/ipns/$MyPK
DNS A/CNAME Record:my.domain => ipfs gateway
http://my.domain- Use Files/MFS to track the publishing history
ipfs files cp /ipfs/$WebSiteHash /blog
?
【TBD】
【TBD】
Disclaimer: The entire world of IPFS is drifting dramatically, please be aware of it and engage with caution, especially when you’d like to use something for production.
- Distributed Hash Tables
- Block Exchanges - BitTorrent
- Version Control Systems - Git
- Self-certified Filesystems
IPFS synthesizes many of the best ideas from the most successful distributed systems to date, with its main contribution of coupling theses systems and the synthesis of designs.
- Minimum: As a global, mounted, versioned filesystem and namespace.
- Best: Push the web to a new horizon, where publishing valuable information doesn’t impose hosting it on the publisher but upon those who interested, where users can trust the content received without trusting the peers where they are receiving it from, where old but important files do not go missing.
The world of web really needs to be shifted to distributed/decentralized(p2p), permanent, offline(local)-first structure underneath. The Distributed, Permanent Web
- FileSystem as a special folder on all of your computers where the same contents are available on every machine.
Discussion - Bazil - Brig
- WebApp deployed locally(on builder’s device), distributed globally, and used as-if locally(on user’s device).
I want such an app for the idea of
Love: Living over Earth
- Resource/Data controlled fully(by original owner), used directly and completely on-demand, without intermediate brokers.
- Ownership&Permanence Really Counts
Problems: Accidents like these are happening very frequently.
- Emoji@Github CDN Link Broken
- Sandstorm Free Plan Discontinuation
- …
- Web SpaceTime Continuum where we may beat time(the speed of light), in exchange of some reasonable (storage) space.
IPFS is designed to be used in a number of different ways. Here are just some of the use cases I(@Juan Benet) will be pursuing:
The IPFS implementations target:
(a) an IPFS library to import in applications.
(b) commandline tools to manipulate objects directly.
(c) mounted file systems, using FUSE [?] or as kernel modules.