2 điểm bởi GN⁺ 2025-02-02 | 1 bình luận | Chia sẻ qua WhatsApp
  • Earthstar là một đặc tả dữ liệu và thư viện JavaScript để xây dựng ứng dụng phân tán riêng tư do người dùng tự sở hữu và vận hành
  • Đặc tả Earthstar mới đã chuyển sang dựa trên Willow, và Earthstar v11 hiện được cung cấp ở bản beta
  • Ứng dụng mặc định hoạt động ngoại tuyến, đồng thời hỗ trợ đồng bộ trực tiếp, tài liệu tạm thời, xóa thực sự, lưu trữ nhạc, ảnh và video
  • Máy chủ là tùy chọn, nhưng mô hình vận hành luôn là tự host, không phụ thuộc vào blockchain hay token
  • Hoạt động trên trình duyệt, Deno, Node và cung cấp xác minh ed25519, quyền truy cập chỉ đọc, đồng bộ streaming, nhiều tác giả và driver lưu trữ

Vai trò và trạng thái hiện tại của Earthstar

  • Earthstar là một đặc tả mang tính cơ sở dữ liệu và thư viện JavaScript để xây dựng ứng dụng do người dùng sở hữu
  • Đặc tả Earthstar mới dựa trên Willow
  • Earthstar v11 hiện được cung cấp dưới dạng phiên bản beta
  • Tài liệu, JavaScript API, đặc tả và hướng dẫn làm ứng dụng chat là các điểm bắt đầu chính

Tính năng cho ứng dụng ưu tiên ngoại tuyến

  • Tính năng ứng dụng

    • Hỗ trợ hoạt động ngoại tuyến
    • Hỗ trợ đồng bộ trực tiếp và phương thức Sneakernet
    • Có thể lưu trữ nhạc, ảnh và video
    • Hỗ trợ tài liệu tạm thời và xóa dữ liệu thực sự
    • Có thể sử dụng một hoặc nhiều identity
  • Mô hình vận hành

    • Máy chủ là tùy chọn
    • Mô hình vận hành luôn là tự host
    • Không sử dụng blockchain và token
    • Tự định vị là “miễn phí mãi mãi theo mọi nghĩa”
  • Tính năng kỹ thuật

    • Hỗ trợ xác minh ed25519
    • Hoạt động trên trình duyệt, Deno, Node
    • Có thể cấp quyền truy cập chỉ đọc
    • Hỗ trợ đồng bộ hiệu quả và đồng bộ streaming
    • Có thể dùng một identity trên nhiều thiết bị
    • Hỗ trợ nhiều tác giả, driver lưu trữ và quyền ghi tài liệu

1 bình luận

 
GN⁺ 2025-02-02
Ý kiến trên Hacker News
  • Hơi giống nostr nhưng có khác biệt. Dữ liệu không được định địa chỉ theo nội dung mà là dựa trên tên, nên hỗ trợ ghi đè và xóa; kiểu dữ liệu thô cũng không phải là tập hợp thông điệp mà là một mảng kết hợp ánh xạ từ tên sang tài liệu.
    Tài liệu được gom thành các "shares", và để máy chủ thừa nhận rằng nó có tài liệu của share đó thì trước tiên phải biết "share address". Cách tiếp cận trong đó một số là riêng tư, một số là công khai khá thú vị; các dự án chọn cực đoan trên trục này thường gặp khó, và tôi nghĩ phần lớn là như vậy.
    Có vẻ sẽ thành công trong việc chặn spammer và kẻ lừa đảo, nhưng tôi vẫn thận trọng với các nhóm lớn khi phải đối mặt với kẻ tấn công có động cơ rõ ràng. Nếu một người dùng làm lộ share address nằm ở vùng lưng chừng giữa công khai và riêng tư, có vẻ mọi người dùng của share đó đều bị lộ.
    Web of trust sẽ tốt hơn, nơi kẻ tấn công phải xuyên qua từng bước nhảy trong đồ thị tin cậy trước khi tìm được mục tiêu, nhưng độ phức tạp mà người dùng phải gánh sẽ lớn hơn, nên tôi cũng hiểu vì sao họ chấp nhận thiếu độ chi tiết để đổi lấy sự đơn giản. Tôi mong những thứ như thế này thành công; tôi có cảm giác chúng ta đã đánh mất web, và nếu không có thứ gì giống web thì trong những thời điểm quan trọng, rất nhiều người sẽ khó phối hợp ở quy mô lớn.

    • Nếu là một thiết kế dựa trên năng lực đúng nghĩa, thì mỗi người dùng phải có một share address riêng và có thể vô hiệu hóa bất cứ lúc nào.
      Share address nên được đối xử như khóa ssh.
  • Tôi không chắc chính xác đây là gì.
    Đây có phải là một cơ sở dữ liệu tài liệu·media nào đó dùng nhiều JavaScript không? Có vẻ hơi hướng tự host, rồi nhân bản sang các node ngang hàng kiểu Mastodon? Có vẻ có tầm nhìn lớn, nhưng tôi chưa thấy rõ.

    • Điểm mạnh của Earthstar có vẻ là tính phân tán. Nếu không thì nó không có bề rộng chức năng cơ sở dữ liệu bằng PGlite hay SQLite, vốn có thể chạy offline, lưu cục bộ và chạy trong trình duyệt.
      Tôi không rõ tính phân tán của Earthstar đem lại điều gì. Nếu là sao lưu thì SQLite và PGlite cũng khá đơn giản. Tôi không thấy đây là lợi ích lớn với phần lớn người dùng cơ sở dữ liệu.
      Có vẻ có lợi cho những người muốn lưu dữ liệu trên thiết bị của mình, đồng thời chia sẻ dữ liệu đó với những cá nhân khác và muốn họ cũng có bản sao cục bộ. Có khi cũng dùng để chia sẻ nội dung bất hợp pháp.
    • Theo nghĩa tương tự có thuật ngữ local-first, và mảng đó có vẻ sôi động hơn.
    • Tôi cũng vào đây để viết điều này. Tôi không biết use case là gì, dùng thế nào, và vì sao nên dùng.
      Rõ ràng có những tính năng thú vị, nhưng tầm nhìn có cảm giác bị mờ đi giữa danh sách tính năng.
  • Tôi xem thứ này đã được thay thế bởi giao thức Willow [0] từng được đăng trước đây.
    Tôi đã cố đọc Willow nhưng thật sự không nắm bắt được [1]. Nó trông như một kho khóa-giá trị phân cấp gắn thêm rất nhiều trường cho timestamp và token mật mã, nhưng lại quá thiếu ví dụ hoạt động.
    Ngay cả thư viện Rust gần đây [2] về cơ bản cũng chỉ là một bó lớp trừu tượng, còn phần triển khai thì chỉ ném lỗi. Có thể đùa về hiện trạng mức độ tinh tế của công nghệ châu Âu, nhưng tôi sẽ chỉ lịch sự mỉm cười cho qua.
    [0] https://willowprotocol.org/earthstar/spec/
    [1] https://willowprotocol.org/specs/data-model/index.html#data_...
    [2] https://github.com/earthstar-project/willow-rs/tree/main

    • Đây là dự án được NLnet hỗ trợ. Danh sách các dự án được NLnet hỗ trợ nằm ở [1], và bất kỳ dự án tự do·mã nguồn mở nào cũng có thể nộp đơn [2].
      [1] https://nlnet.nl/project/current.html
      [2] https://nlnet.nl/funding.html
    • Tôi cũng định nói giống bình luận anh em kia. Không cần mỉa mai đâu; NLnet thật sự tài trợ cho rất nhiều dự án tuyệt vời.
      Nếu đánh giá chất lượng phần mềm do Thung lũng Silicon tạo ra bằng các dự án nhận vốn VC nhưng không thành công, thì chịu thôi.
    • Những người đứng sau Willow có vẻ cũng là cùng một đội: https://earthstar-project.org/docs/future#willow-protocol
      “Tất cả các tính năng trên sẽ được hiện thực nhờ Willow General Purpose Sync Protocol mới mà chúng tôi đang phát triển. Đây là một giao thức mới lấy cảm hứng từ Earthstar, tinh chỉnh và mở rộng các khái niệm của nó. Chúng tôi sẽ ra mắt một website mới chứa đặc tả đầy đủ của giao thức này.”

      https://willowprotocol.org/more/compare/index.html#compare_e...
      “Nếu Earthstar đem lại cảm giác rất giống Willow thì đó không phải là ngẫu nhiên. Willow bắt đầu từ việc hình dung lại Earthstar; các phiên bản Earthstar trong tương lai sẽ được xây dựng trên Willow, và maintainer cốt lõi của Earthstar là một trong hai tác giả của Willow.”
    • Banner ở đầu website ghi nguyên văn “Earthstar has a new specification powered by Willow.
    • Một dự án mã nguồn mở một người làm đâu thể nói lên toàn bộ trạng thái tinh tế của công nghệ châu Âu.
  • client Python không? Trong tài liệu, thứ duy nhất trông liên quan đến Python là đoạn này:
    # Earthstar timestamps in python
    timestamp = int(time.time() * 1000 * 1000)

  • Thà khuyên dùng jellyfin, immich, còn lại thì cứ sftp. Đồng bộ, à không, phân tán hóa thì có thể làm bằng git, syncthing, rsync
    Vẫn chưa thấy trình quản lý danh tính tự host hay SSO nào ổn. Tôi biết bluesky đang làm một cái, nhưng không rõ có thể tự host được không. Tự động hoàn thành đã đổi theo kiểu Freud thành self hostage
    Một vấn đề khác vẫn chưa giải được trong homelab/private cloud là làm sao tự làm CA và quản lý quyền truy cập vào máy của mình mà không phải dạy người khác dùng ssh
    Tôi muốn một thứ giống meshnet của NordVPN, nơi những người đăng nhập trong gói gia đình có thể nhìn thấy máy của nhau như trong mạng cục bộ. wireguard có làm được không? yggdrasil cũng có vẻ giống vậy nhưng tôi chưa xem sâu

    • Đây chẳng phải là thư viện để tự làm ứng dụng của mình sao? Tôi không hiểu những thứ như jellyfin liên quan gì ở đây
      Nếu nói quản lý danh tính “tốt” thì có phải ý là không phải OpenLDAP hay 389 không? Nếu phải tính cả Windows thì tôi không rõ nó phù hợp đến mức nào
      Tự làm CA thì dễ, nhưng phần cài CA đó lên mọi máy mình muốn mới không hay. Dùng Let’s Encrypt thì mọi thứ chạy ổn
      Wireguard có thể nối hai LAN qua Internet, nhưng sẽ tốt nếu có hai router hỗ trợ wireguard như pfsense ở hai đầu. Nếu không thì phải cài thiết lập định tuyến đặc biệt trên từng máy client. Tôi vẫn chưa tìm ra cách chuyển tiếp avahi để tự động khám phá qua liên kết đó
    • Nếu bạn muốn chia sẻ VLAN với gia đình thì tailscale có thể là thứ bạn đang tìm
  • Tôi vẫn tiếc là chỉ tham gia bữa tiệc SQLite sau khi trình duyệt đã ngừng hỗ trợ SQLite

  • Cái này có lẽ rất cần một bài blog hữu ích. Ví dụ như vì sao thiết kế như vậy, các phương án thay thế là gì
    Ấn tượng đầu tiên là thú vị. Danh tính là cặp khóa, và việc có thể truy cập theo tên vào tệp và nội dung cũng hay

  • Có khả năng sẽ có bản triển khai bằng ngôn ngữ khác như Python không? Tôi thích mọi thứ, chỉ vướng mỗi chỗ là JavaScript, và tôi vẫn còn thận trọng khi dùng JavaScript cho mục đích như thế này

    • Vì những ứng dụng kiểu này nên tôi thích các ngôn ngữ như nim hay gleam, biên dịch được sang cả JavaScript lẫn các target khác. Như vậy có thể chạy app ở bất cứ đâu: Raspberry Pi, ESP32, hay một tab trình duyệt
      Tiếc là cả hai đều không quá phổ biến, nên cuối cùng lại phải yêu cầu triển khai bằng nhiều ngôn ngữ, và có lẽ đó là gánh nặng cho maintainer của dự án kiểu này. Dù sao thực tế là vậy, và nếu không phải những ngôn ngữ như thế thì tôi cũng quan tâm đến thư viện client Python
  • “Luôn tự host. Máy chủ là tùy chọn. Không blockchain. Không token. Miễn phí mãi mãi theo mọi nghĩa.”
    Đây là bản tóm tắt luận điểm tuyệt vời