V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
DIYgods
V2EX  ›  分享创造

第一个开源链上博客系统 xLog

  •  5
     
  •   DIYgods ·
    DIYgod · 11 天前 · 3941 次点击

    Talk is cheap

    GitHub: https://github.com/Crossbell-Box/xLog

    官方实例: https://xlog.app

    使用案例

    动机

    我的个人博客已经运行了接近 9 年,跟着我慢慢发展,现在几乎已经成为了我的个人发展史,折腾博客也从很久以前就成为了我的一个爱好,但随着对 Hexo 的越来越不满,我决定做一个更现代化的全新的博客系统。

    我不想仅仅满足自己的需要,它需要开源和足够开放,来满足更多人的需求。

    我不想让我珍贵的数据被中心化平台绑架,又不想麻烦维护一个数据库或服务器,它需要兼顾数据所有权和便利,所以我选择了区块链。

    最后,它需要使用较新的技术栈,提供一个更好的开发和维护体验。

    功能

    区块链,所有博客数据,包括网站配置、文章、关注、评论、点赞等,都由你签名并存储在区块链上,以 NFT 的形式存在,只能由掌管私钥的你自己控制。

    Mirror.xyz 的区别:狡猾的一点是,Mirror 是通过他们的官方账号而不是用户自己发起的交易把内容存到了链上。这使得用户需要依赖 Mirror 这个中心化平台才能发布和修改自己的内容,内容在链上的控制权也是属于 Mirror 平台而不是用户自己。

    xlog4

    丰富的交互,你可以在区块链上关注你喜欢的博客,评论、点赞文章或把文章铸造为 NFT 。

    xlog2

    高度可定制,自定义域名、导航栏、自定义样式等,当然,它们都是存储在区块链上的。

    xlog3

    技术实现

    xLog 基于另一个开源项目 proselog 开发,使用 Next.js + Tailwind CSS + TypeScript + TanStack Query 构建,有着完善的 SPA 、SSR 、状态管理和优秀的开发体验。

    区块链使用的是专用于社交活动的 EVM 兼容区块链 Crossbell,速度更快且无需购买 gas 免费使用。还能与 Crossbell 其他生态项目无缝衔接,比如你就可以在 Crossbell.io feed 上以信息流的形式查看你订阅的所有 xLog 的动态。

    每个博客都是一个属于你的 NFT ,它的配置和文章都以符合 Crossbell 规范的格式存储在 NFT 中。创建一个博客就是 mint 一个 NFT ,发布一篇文章或一条评论就是对 NFT 增加一项内容,关注一个博客就是修改你的关注列表 NFT 。

    它是完全开源的,如果感兴趣可以直接去 GitHub 看源码。

    存在问题

    1. 需要安装一个以太坊钱包才能进行操作,这对没有接触过区块链概念的普通用户可能是一个较大的负担。虽然区块链是一个非常适合的解决方案,但目前区块链在很多普通人眼中已经与割韭菜、炒币画上等号,这更增加了选择区块链作为实现的 xLog 被广泛接受的难度。
    2. 链上操作都是透明和不可撤销的,这导致用户无法真正删除一篇文章,通过区块链历史可以看到文章的修改记录。

    未来计划

    目前还只是一个最小化可用产品,功能可能还不太丰富,但未来会增加主题系统和插件系统,来提供更丰富的样式和功能选择。

    另外还计划在获取收益和博客之间的连接上做更多探索,希望可以让写博客(而不是折腾博客)这件事变得更有趣一些。

    原文链接: https://blog.diygod.me/xlog

    40 条回复    2022-09-26 22:22:06 +08:00
    lookStupiToForce
        1
    lookStupiToForce  
       11 天前   ❤️ 8
    挺好,可以把黑历史持久化(。

    突然想到,有没有人基于区块链做一个公共事件记忆库,这样只能 patch 不能 delete ,就算反转再反转也能留个案底🐸
    skenan
        2
    skenan  
       11 天前   ❤️ 1
    现在 web3 博客竞争这么激烈 (卷) 的吗...

    mirror.xyz / lens.xyz / planetable.xyz / xlog.app

    这样下去把 web3 最重要的可组合性丢了..
    dianso
        3
    dianso  
       11 天前
    能上传图片吗,14T 图片想搞上去
    rizon
        4
    rizon  
       11 天前
    问个问题啊,这种链的数据谁来存储?靠某个组织还是也是靠各个参与的节点,那如果用的人很少,又怎么保证服务的呢。
    Sam99
        5
    Sam99  
       11 天前 via Android
    收藏吃灰
    wonderfulcxm
        6
    wonderfulcxm  
       11 天前 via iPhone   ❤️ 2
    挺符合国情,不会突然被微博 /微信封号,以前写的东西全没了。推荐大 V 使用(狗头
    DIYgods
        7
    DIYgods  
    OP
       11 天前
    @rizon 靠各个参与的节点,不放心也可以自己跑个节点,Crossbell 官方跑了一批节点会保证服务
    sandyzhou
        8
    sandyzhou  
       11 天前
    链上永久存储解决方案,可以考虑一下 arweave
    https://web3infra.dev
    Livid
        9
    Livid  
    MOD
       11 天前   ❤️ 1
    @skenan 不太一样,Planet 只是把一堆本来需要命令行操作的东西用 GUI 做了简化。
    rizon
        10
    rizon  
       11 天前   ❤️ 3
    其实我一直不太明白,除了几个大的区块链。
    其他的链条到底是谁在维护他们运转的,如果是某些组织,那不就还是中心化,他想关就关了,想改就改了。

    如果是去中心化了,真的有那么多人天天开着机器给你当服务器用?
    尤其是像这种博客啊等冷门的,人数又少,靠什么驱动人们给你挖矿呢,而且靠什么保证网速呢。
    GeruzoniAnsasu
        11
    GeruzoniAnsasu  
       11 天前
    不懂就问,那更新文章要交 gas fee 吗
    YadongZhang
        12
    YadongZhang  
       11 天前
    蹭个热度:

    最近参加 ETH Online Hackathon 也在做 Mirror 替代品(其实就是个玩具): https://github.com/zhyd1997/DragonLi

    博客里提到的问题是普遍的,链上的数据是 immutable 的,所以:
    1. 更新一篇文章实际上是创建了一篇新的文章
    2. 文章一旦创建是无法删除的

    另外,链上的数据也是 public 的,所以文章里不能出现 private 和 sensitive 的信息,一旦发布,任何人都可以根据 CID ( IPFS ) 找到这些信息。

    这也是我还没找到存储方案,只能开放网站只读模式的原因。
    Mitt
        13
    Mitt  
       11 天前   ❤️ 4
    @rizon #10 其实说白了,真正理想的去中心化和 web3 是达不到的,未来一定是由不同的大机构选择构成主要节点,去中心化就是无限提高作恶成本,你让每个节点的控制人联合作恶的成本越高越能达到去中心化的目的

    然后就是关链,这个其实只要有一个节点在运行,那这个链就存在,如果这个链都没人在用也没人愿意起节点了,那它的存在也没有意义了,所以与其相信什么永久存储,不如相信那些收益透明、能真正给运行节点的人好处的链(虽然用户需要付出一点代价)

    至于网速什么的,其实跟去中心化节点就无关了,就跟现在也要靠 CDN 加速一样,未来中心化 CDN 是不可能消失的,Cloudflare 都早早开始为 web3 加速做准备了,所以这点就没啥好担心的了,而且由于大部分节点设计都有离线惩罚机制,所以其实保证节点间网络正常是节点维护人的职责,跟现在服务器的服务商是一个道理

    现在区块链存储的好处是能对数据进行低成本分布式,你自己不靠区块链也能做到,只是成本很高,而且自由归自由,并不代表你发什么都能在各个国家和节点存在,合规性也是这些存储类的链需要挑战的,比方说如果你发的东西在中国违法,那么要么中国的节点选择不同步你的数据留签名,要么节点被国家打击彻底在中国消失
    qile1
        14
    qile1  
       11 天前 via Android
    有没有医疗报告区块链解决方法,现在有些医院想把报告弄到区块链上面解决互认
    rizon
        15
    rizon  
       11 天前
    @Mitt #13 非常感谢
    sujin190
        16
    sujin190  
       11 天前
    @rizon #10 当然不会有那么多人天天开着机器给你当服务器用,人家开着的原因是有收益,发文章是肯定要付钱的
    sujin190
        17
    sujin190  
       11 天前
    @qile1 #14 https://support.huaweicloud.com/productdesc-bcs/bcs_productdesc_0013.html

    华为就干这个啊,联盟链,区块链不是难点,麻烦的是组联盟节点,搞定数据安全要求以及资质,毕竟国内大概率是公立医院吧,所以搞到最后你大概率发现这事难点和区块链什么的关系不大,麻烦的是要有官方机构承认和担保
    weakish
        18
    weakish  
       11 天前
    @rizon ed2k 太多冷門資源只有很少的人在做種,下載速度很慢,但一直持續了很久,熱門資源下載就很快。這麼多年有太多博客平台倒閉了,只能靠 web archive 找回部分。去中心化的好處,就是只要作者和讀者存在,博客就存在,讀者多的網速就快。互聯網不發達的年代,熱門的書隨便跑一家書店就能買到,冷門的書就要去大圖書館借。
    ck65
        19
    ck65  
       11 天前
    @GeruzoniAnsasu 属于交易就有 fee ,比如我刚才试了下连创建一个 xlog 博客都不可以,因为钱包里 0 balance 😂
    leonshaw
        20
    leonshaw  
       11 天前
    @sujin190 如果存量数据越来越多,新发文章的收益怎么覆盖保存数据的成本?
    meeop
        21
    meeop  
       11 天前
    最大的问题是大量垃圾内容的存储,维护成本谁来支付

    如果是平台承担,那它就是中心化的,只不过提供了访问数据的 api
    如果是每个区块链全节点承担,那么显然博客类系统存储的是低价值数据,区块链模式下存储 n 份更是非常的不划算,而且数据稍微多一点显然任何单机都承受不了,作为用户我也没必要存储全网的博客啊(正常区块链可是想尽办法压缩区块大小的)
    要么就不存,区块链只存哈希,数据归根结底由用户自己维护分布式节点比如 ipfs,那这种应用可用性有问题,移动端也基本做不了,下载数据也很慢,而且数据是可删除的
    sujin190
        22
    sujin190  
       11 天前
    @leonshaw #20 btc 、eth 这样的公链区块大小和出块时间大概率是固定的,最终会是谁出价高谁能放到区块里吧,而 ipfs 这样就是存储的,经济模型是挺复杂的,你可以自己去查一查,xLog 用的好像也是 ipfs
    mokeyjay
        23
    mokeyjay  
       11 天前
    我不懂区块链,单纯提个问题:
    如果这玩意儿被坏人滥用了,商业用途、存几百 T 数据或者是儿童色情之类的东西,其成本和后果谁来承担呢?如何处理这种情况呢?
    Atlasoin
        24
    Atlasoin  
       11 天前
    @rizon
    "其他的链条到底是谁在维护他们运转的,如果是某些组织,那不就还是中心化,他想关就关了,想改就改了。"
    目前是 Crossbell 官方跑了一批节点,但是

    如果是去中心化了,真的有那么多人天天开着机器给你当服务器用?
    尤其是像这种博客啊等冷门的,人数又少,靠什么驱动人们给你挖矿呢,而且靠什么保证网速呢。
    Atlasoin
        25
    Atlasoin  
       11 天前
    @rizon
    > "如果是某些组织,那不就还是中心化,他想关就关了,想改就改了"

    目前是 Crossbell 官方跑了一批节点,但是这只是开始,未来会有更多的节点加入。而如果是云服务器的架构的话,这个未来是根本不可能的。

    > "尤其是像这种博客啊等冷门的,人数又少,靠什么驱动人们给你挖矿呢"
    Crossbell 不止服务 xLog ,目前官方的推出的一款应用是 crossbell.io 。简单来说 Crossbell 是一个 ownership platform ,主要服务社交。具体的经济模型还在探索中。
    Atlasoin
        26
    Atlasoin  
       11 天前
    @skenan 我也非常同意 Web3 最重要的是可组合性。

    但是 mirror 做的还不够好,可以参考之前我写的一篇文章:[重新定义出版:Mirror 做的还不够,我们需要继续探索]( https://crossbell.io/notes/4583-1)

    lens.xyz: 不仅注册 handle 有白名单机制,而且发布内容全都是通过中心化的代理签名的方式。

    我很喜欢 planetable.xyz ,优雅简洁,但是它是完全基于 ipfs 的系统,和 xlog.app 基于区块链是不同的探索方向。

    Crossbell 本身的可组合性的体现可以参考 protocol 设计中的 modularity 部分: https://github.com/Crossbell-Box/Crossbell-Contracts/wiki/02-Protocol-Overview#modularity
    leonshaw
        27
    leonshaw  
       11 天前
    看了一圈,感觉要么就是后人买单越来越贵直到没人用,要么就是能删除(丢弃)同时按保存时间收费。
    RealJacob
        28
    RealJacob  
       11 天前
    报错 ing
    Failed to create site
    Atlasoin
        29
    Atlasoin  
       11 天前
    @lookStupiToForce 感觉很有趣! Crossbell 可以做这种应用的!如果你是开发者有兴趣的话可以 dm 我或者 dm DIY ,或者如果其他开发者看到有兴趣的也可以 dm !官方团队可能暂时不太有精力做这个应用 qwq
    Atlasoin
        30
    Atlasoin  
       11 天前
    @GeruzoniAnsasu 需要 gas ,但是有水龙头领 https://faucet.crossbell.io/
    yuhangch
        31
    yuhangch  
       11 天前
    站点建成功了,但是感觉静态资源加载有点慢

    因为之前没了解过区块链,一些操作都要 gas fee ,那我的 0.2CSB 用完了怎么办咧
    Atlasoin
        32
    Atlasoin  
       11 天前
    @yuhangch 水龙头并没有限制领取次数 :P
    Vegetable
        33
    Vegetable  
       10 天前
    天然合订本嘛
    imMetaverse
        34
    imMetaverse  
       10 天前
    @Atlasoin #30 额 用水龙头 不就相当于测试链 那。。。
    littlewing
        35
    littlewing  
       10 天前
    @rizon 你想多了,几个大的币也基本中心化了
    SenLief
        36
    SenLief  
       10 天前
    世界上没有免费的午餐。

    去中心化也只是看山跑死马。
    mway
        37
    mway  
       10 天前
    我记得多年前就有个区块链上的博客+论坛:Steemit ,也正是因为在上面发文不可撤销不可删除没有去用。
    610915518
        38
    610915518  
       10 天前
    不是很喜欢这类博客,笔误修改,历史也会留下痕迹,黑历史持久化系列
    nicoljiang
        39
    nicoljiang  
       9 天前
    就没有人关注一下 “自由的删除权”?
    cheung
        40
    cheung  
       7 天前
    不错,学习一下。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1948 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 10:54 · PVG 18:54 · LAX 03:54 · JFK 06:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.