关于本站

IPFS 是什么

IPFS 全称是 Interplanetary File System,星际文件系统,简单来说,就是类似 BitTorrent 的文件存储系统。

用户可以通过 ipfs 节点将内容广播到 ipfs 网络,并生成唯一的 hash 值,当有用户从其他 ipfs 节点查找这个 hash 所代表的文件时,其节点便会在这个网络中通过 hash 寻找相应的内容,将内容返回给用户的同时在本地节点存储一份。

IPFS 真的可以实现内容不被删除么

对于任何一个 ipfs 节点均可通过设置 “StorageMax” 和 “GCPeriod” 两个参数来控制节点 Garbage Collector 的运行机制,当这个两个参数中的任何一个达到出发条件时,GC 则会运行并开始清除本地访问历史较为久远的文件,其与互联网应用中常见的 CDN 或其他缓存机制类似。

而热点文件或拥有较高访问量的文件则会一直刷新访问时间,其在 ipfs 网络中保存的分数也最为多,这种机制下,使得 ipfs 中的数据较难像传统的数据库或文件系统一样被轻易删除。但是,当发布文件的 ipfs 节点下线,且这个文件在 ipfs 网络中并没有被访问过,或其已经在其他节点被 GC 回收后,这个文件将在 ipfs 网络中不可访问,这也就在一定程度上实现了“删除” ipfs 网络中的文件。

虽然有互联网世界中拥有 infura这类「天使」节点供大家免费发布和存储 ipfs 内容,但经过一段时间的测试,其上传稳定性稍显不足,最为稳妥的当然是自建节点或购买提供付费 ipfs 节点的服务,以保证其高可用

如何在 IPFS 网络上搭建博客

对 IPFS 有过基础了解后,发现可以利用 ipfs 搭建个人博客,摆脱常规博客数据库或硬盘容易损坏导致数据丢失的情况,也可以利用公共的 ipfs gateway 有效降低带宽及流量费用,使其运营成本降到接近于零。

The Complete Beginner’s Guide to Deploying Your First Static Website to IPFS这篇博客较为详细的讲解了在 IPFS 网络搭建博客的过程,简要来说有两点:

将域名解析到 cloudflare 后,配置如下四个环境变量,然后运行 ipd -p infura -p pinata -d cloudflare 即可将博客通过 infura 和 pinata 两个 ipfs 节点发布到网络,并通过 cloudflare 自动配置 dnslink,以实现通过域名访问博客的目的。

IPFS_DEPLOY_SITE_ZONE=example.com
IPFS_DEPLOY_SITE_RECORD=_dnslink.example.com
IPFS_DEPLOY_CLOUDFLARE__API_KEY=paste-your-cloudflare-api-key-here
IPFS_DEPLOY_CLOUDFLARE__API_EMAIL=the-email-you-used-to-sign-up

如何通过 IPFS 网络访问本站

除了常规的通过域名,https://thefucking.netlify.app/ 访问之外,还可以通过 ipfs 网络进行访问。对于支持 ipns 的节点,可以通过如下方式访问本站”ipfs 节点 url” + “ipns” + “域名”。

或通过下述 ipfs gateway 查找适合自己的 ipfs 节点,对于不支持 ipns 的节点,则可通过 hash 的方式访问,首先通过 curl -v https://cloudflare-ipfs.com/ipns/thefucking.net/ 获取到 etag 值,即为这个站点在 ipfs 中的唯一 hash,在本文当写作时为Qme9EEfLXhuwGTV4Ta7bzsf75zPSXWH4bnbaiWLnUdLLXn,(该值会随着每次编译而生成一个全新的 hash 串),如: https://cloudflare-ipfs.com/ipfs/Qme9EEfLXhuwGTV4Ta7bzsf75zPSXWH4bnbaiWLnUdLLXn/。

Public IPFS Gateways

这样做有什么好处么

由于众所周知的原因,在国内网络环境中,无论或大或小的组织或个人,面对某些强大权力或富可敌国的组织机构时,往往难以抵抗其压力,而进行言论审查,进而出现下述的情况。

11月30日,微博收到通知称“您好,这边是新浪微博客户服务中心,系统检测到您于2019-11-29 22:56:58发布的微博内容,当前是您自己可见的状态了,建议您近期避免发布此类内容,感谢您使用微博。”

之后我发现微博上几乎所有《华为13年老员工离职索要赔偿被关押251天》的信息都被删除了,难怪有人编了个段子“出身985,工作996,离职251,维权404。”

摘自 华为删帖一时爽 一直删到火葬场

而将博客通过 Netlify (一个静态文件服务,本站所依赖的服务提供商) 自动编译部署,将博客通过 IPFS 网络发布,在满足高效与速度(Netlify + CloudFlare CDN)的同时,提供一种基于分布式的内容发布渠道,让内容有更多的方式进行保存和传播,也通过这种方式记录这个时代所发生的与你我息息相关的事情。

本站采用了如下技术或服务

  1. 静态文件生成器:hugo
  2. 主题: Cayman,基于需求进行了简单的开发
  3. 静态文件服务商:Netlify,支持 CICD,结合 Git 使用体验满分
  4. IPFS 节点:Infura, pinata,infura 免费,但稳定性一般,pinata 提供 1G 免费容量
  5. DNS 及 CDN 服务商: Cloudflare
  6. 邮件服务: mailgun 配置 email forwarding,将邮件转发至常用的邮箱中
  7. 域名商: Google Domains, 谷歌家的服务自不用说
  8. Git 服务: Github
  9. 本地开发工具: Docker, Nginx 开发过程不可避免的需要实时查看更改的效果,两个 Docker 容器,一个跑 hugo 实时编译,并将静态文件通过 Nginx 提供对外访问。一般情况下只需要一个 Hugo 容器即可,但是在一些奇葩场景下 Hugo 与 Nginx 所呈现的结果略有不同

如若想参与到本站的内容维护中,可通过 hi#thefucking.net 与本站取得联系