Helpex - Trao đổi & giúp đỡ Đăng nhập

Fluree: Blockchain, GraphQL và hơn thế nữa: Cơ sở dữ liệu tất cả trong một

Nguyễn Trọng Tấn
· 17:00 20/05/2019
6 ngày trước

“FlureeDB là một cơ sở dữ liệu có mục đích được xây dựng để phù hợp với yêu cầu của các ứng dụng doanh nghiệp hiện đại đồng thời cung cấp các khả năng blockchain để bảo mật dữ liệu, hiệu quả quy trình làm việc và khả năng tương tác trong ngành.”

Âm thanh hấp dẫn? Tôi cũng nghĩ như vậy, và nếu đội ngũ đằng sau Fluree cung cấp mọi thứ mà nó hứa hẹn, thì kết quả có thể rất đáng kinh ngạc.

Để tìm hiểu thêm về Fluree, tôi đã nói chuyện với Đồng Giám đốc điều hành của nó, Brian Platz. Hãy nghe toàn bộ cuộc phỏng vấn dưới đây.

Trong hơn hai thập kỷ, Brian PlatzFlip Filipowski đã cùng nhau xây dựng các công ty phần mềm. Họ đã giám sát hai đợt IPO - một trong số đó liên quan đến công ty lớn thứ 8 trên thế giới - và đã đảm bảo việc bán một công ty phần mềm bằng tiền mặt lớn nhất từ ​​trước đến nay. Đủ để nói rằng; họ có kinh nghiệm làm việc với phần mềm.

Fluree là dự án mới nhất của Brian và Flip, được thai nghén cách đây hơn 4 năm. Đó là một loại nền tảng dữ liệu mới cho các ứng dụng hiện đại và họ đã tạo ra nó vì họ thường xuyên gặp phải những hạn chế về cơ sở dữ liệu.

Brian và Flip cảm thấy rằng trong khi phần mềm và phân phối phần mềm (nghĩ rằng SaaS) đã có những bước phát triển nhảy vọt trong những năm qua, thì các DB làm nền tảng cho phần mềm vẫn chưa phát triển - mặc dù tầm quan trọng của dữ liệu ngày càng tăng.

Một trong những yếu tố khác biệt quan trọng nhất của Fluree là nó tách rời các quy trình liên quan đến việc cập nhật dữ liệu và truy vấn nó. Hơn nữa, một blockchain ghi lại mọi thay đổi DB từng được thực hiện, cho phép truy vấn vô hạn đối với số lượng phiên bản có khả năng vô hạn.

Fluree có khái niệm “Nhiên liệu”, tương tự như Ethereum Gas và được tính toán dựa trên mọi truy vấn DB được thực hiện, cũng như ba giao diện Fluree hiện tại: GraphQL , FlureeQL (giao diện truy vấn JSON) và SPARQL.

Fluree đã phát hành một phiên bản được cấp phép vào tháng 12 năm ngoái và cho đến nay, những người chấp nhận sớm có xu hướng là các công ty khởi nghiệp công nghệ khác - các ứng dụng dựa trên blockchain đang sử dụng Fluree làm nền tảng. Đó là bởi vì, với Fluree, bạn có thể viết logic blockchain tùy chỉnh mà không cần phải phân nhánh một blockchain khác, tức là bạn có thể bắt đầu dự án của mình trong một khoảng thời gian ngắn hơn đáng kể.

Hai người áp dụng sớm như vậy là IdeaBlock  - đang tìm cách phá vỡ hệ thống bằng sáng chế kỹ thuật số - và Fabric - đang thách thức hệ sinh thái nhà quảng cáo truyền thống và tìm cách giúp mọi người kiếm tiền từ dữ liệu của họ (thay vì bán nó bởi những người như Facebook).

Brian cũng đề cập rằng tín hiệu lớn nhất trong lộ trình 6 tháng của Fluree là nó sẽ hoàn toàn mở cửa tìm nguồn cung ứng trong quý này. Các API của nó được ổn định và hoạt động tốt.

Nhìn chung, không có gì phải bàn cãi khi Fluree có rất nhiều tính năng và tiềm năng, hãy cùng lái thử.

Thực hành

Bạn có thể tải xuống và giải nén một tệp zip được lưu trữ .

Sau đó chạy lệnh sau để bắt đầu một phiên bản Fluree:

./fluree_start.sh

Và có sẵn các vòi Homebrewhình ảnh Docker .

Sau khi khởi động, Fluree chạy trên cổng 8080 và có điểm cuối GUI và REST cho hầu hết các hoạt động bạn cần.

Sau khi cài đặt và bắt đầu, tôi đã làm theo phần “ Ví dụ ” của tài liệu, phần này sẽ hướng dẫn bạn cách tạo tiền điện tử. Với Fluree, bạn luôn có lựa chọn sử dụng FlureeQL, GraphQL, SparQL hoặc curl. Ví dụ: để tạo một lược đồ với curl, hãy sử dụng các lệnh dưới đây:

curl \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer $FLUREE_TOKEN" \
   -d '[{
    "_id": "_collection",
    "name": "wallet"
},
{
    "_id": "_attribute",
    "name": "wallet/balance",
    "type": "int"
},
{
    "_id": "_attribute",
    "name": "wallet/user",
    "type": "ref",
    "restrictCollection": "_user"
},
{
    "_id": "_attribute",
    "name": "wallet/name",
    "type": "string",
    "unique": true
}]' \
   [HOST]/api/db/transact

Mã thông báo ủy quyền là một trong những phần thú vị của Fluree, vì nó được gắn với cặp khóa, một thứ quen thuộc với bất kỳ người dùng Blockchain nào. Đọc tài liệu để biết thêm chi tiết , nhưng tôi đã từng ./fluree_start.sh :keygenbắt đầu với một cặp và id người dùng được tạo tự động, và lấy một mã thông báo từ đó .

Bạn có thể nhận thấy rằng Fluree không phải là NoSQL hoặc cơ sở dữ liệu không có toán học, có nghĩa là bạn cần phải đối phó với các thay đổi lược đồ, tôi không thể tìm thấy bất kỳ đề cập chính thức nào trong tài liệu về bất kỳ chức năng cụ thể nào về cách xử lý những thay đổi này.

Tiếp theo, bạn thêm dữ liệu mẫu, một lần nữa với bốn phương pháp có sẵn cho bạn. Vì Fluree là một cơ sở dữ liệu hơi quan hệ, bạn có thể thêm “quan hệ” bằng cách sử dụng cái mà Fluree gọi là “vị từ”.  Fluree cũng đóng gói một tập hợp các kiểu vị từ để xác định mối quan hệ là kiểu dữ liệu nào, hoặc bạn có thể sử dụng các hàm để xác định vị từ, đây là nơi Fluree trở nên thú vị. Ví dụ: với ví dụ về Tiền điện tử từ tài liệu, bạn có thể xác định các vị từ giống như hàm Solidity (ngôn ngữ hợp đồng thông minh Ethereum), để kiểm tra số dư hoặc bảo vệ khỏi chi tiêu gấp đôi.

Lời kết

Fluree rất hấp dẫn, nhưng vô số tính năng đi kèm áp đảo, đôi khi lựa chọn quá nhiều có thể khiến bạn hơi nản lòng và khó hiểu. Nó giống như một công cụ cơ sở dữ liệu, cộng với sự kết hợp của một gói lớp ứng dụng thành một. Tôi biết rằng nhiều cơ sở dữ liệu quan hệ cũ hơn đã đóng gói các loại tính năng này trong quá khứ, nhưng đã lâu rồi tôi không sử dụng cơ sở dữ liệu quan hệ và đã quen với sự đơn giản của các dịch vụ NoSQL. Các tùy chọn giao diện khác nhau được hoan nghênh, nhưng tôi tự hỏi liệu có thể chọn và gắn bó với một giao diện có thể là một quyết định kỹ thuật tốt hơn, đặc biệt là FlureeQL, chỉ dành cho Fluree hay không. Thêm "blockchain" vào ngăn xếp công nghệ là một lựa chọn mà tôi không chắc chắn. Tôi đã đề cập đến BigchainDB trước đây, đã cố gắng làm điều tương tự, mặc dù theo một cách khác. Tôi không chắc liệu các tính năng blockchain của Fluree có bao gồm và blockchain thực tế hay chỉ là các tính năng giống như blockchain, nhưng điều đó không sao cả, nếu bạn có trường hợp sử dụng cho chúng, bạn gọi chúng là gì cũng không quan trọng.

Tôi cũng không thể kiểm tra bất kỳ thứ gì như chỉ số hiệu suất hoặc độ tin cậy của Fluree một cách kỹ lưỡng, vì vậy liệu tất cả các tính năng có tăng thêm chi phí hay không, tôi không chắc chắn. Nói chung, tôi thực sự khuyên bạn nên thử nghiệm Fluree và xem nó có thể hoạt động như thế nào đối với trường hợp sử dụng ứng dụng của bạn.

7 hữu ích 0 bình luận 6.5k xem chia sẻ

Có thể bạn quan tâm