Đối với cơ sở dữ liệu chuỗi thời gian và khóa-giá trị bất biến được chia sẻ
Hôm nay, chúng tôi tự hào phát hành phiên bản mới nhất của MultiChain, phiên bản này triển khai một bộ chức năng quan trọng mới được gọi là “luồng”. Các luồng cung cấp sự trừu tượng tự nhiên cho các trường hợp sử dụng blockchain tập trung vào truy xuất dữ liệu chung, đánh dấu thời gian và lưu trữ, thay vì chuyển giao tài sản giữa những người tham gia. Các luồng có thể được sử dụng để triển khai ba loại cơ sở dữ liệu khác nhau trên một chuỗi:
- Cơ sở dữ liệu khóa-giá trị hoặc kho lưu trữ tài liệu, theo kiểu NoSQL.
- Cơ sở dữ liệu chuỗi thời gian, tập trung vào thứ tự các mục nhập.
- Cơ sở dữ liệu theo hướng nhận dạng nơi các mục nhập được phân loại theo tác giả của chúng.
Đây có thể được coi là 'cái gì', 'khi nào' và 'ai' của một cơ sở dữ liệu được chia sẻ.
Thông tin cơ bản về luồng
Bất kỳ số lượng luồng nào cũng có thể được tạo trong một chuỗi khối MultiChain và mỗi luồng hoạt động như một tập hợp các mục chỉ phụ thêm độc lập. Mỗi mục trong một luồng có các đặc điểm sau:
- Một hoặc nhiều nhà xuất bản người đã ký kỹ thuật số vào mục đó.
- Một tùy chọn chính để tiện cho việc truy xuất sau này.
- Một số dữ liệu, có thể bao gồm từ một đoạn văn bản nhỏ đến nhiều megabyte nhị phân thô.
- A dấu thời gian, được lấy từ tiêu đề của khối trong đó mục được xác nhận.
Đằng sau hậu trường, mỗi mục trong một luồng được đại diện bởi một giao dịch blockchain, nhưng các nhà phát triển có thể đọc và ghi các luồng mà không nhận thức được cơ chế cơ bản này. (Người dùng cao cấp hơn có thể sử dụng giao dịch thô để ghi vào nhiều luồng, phát hành hoặc chuyển giao nội dung và / hoặc chỉ định quyền trong một giao dịch nguyên tử.)
Luồng tích hợp với hệ thống quyền của MultiChain theo một số cách. Đầu tiên, chỉ những người có quyền mới có thể tạo luồng, theo cách tương tự như nội dung chỉ có thể được cấp bởi một số địa chỉ nhất định. Khi một luồng được tạo, luồng đó đang mở hoặc đang đóng. Các luồng mở có thể được ghi bởi bất kỳ ai có quyền gửi giao dịch blockchain, trong khi các luồng đóng bị hạn chế trong danh sách có thể thay đổi các địa chỉ được phép. Trong trường hợp sau, mỗi luồng có một hoặc nhiều quản trị viên có thể thay đổi các quyền ghi đó theo thời gian.
Mỗi blockchain có một luồng 'gốc' tùy chọn, được định nghĩa trong thông số và tồn tại từ thời điểm chuỗi được tạo. Điều này cho phép một blockchain được sử dụng ngay lập tức để lưu trữ và truy xuất dữ liệu mà không cần đợi một luồng được tạo rõ ràng.
Như tôi đã đã thảo luận trước đây, tính bảo mật là thách thức lớn nhất trong một số lượng lớn các trường hợp sử dụng blockchain. Điều này là do mỗi nút trong chuỗi khối đều nhìn thấy bản sao đầy đủ của toàn bộ nội dung của chuỗi. Luồng cung cấp một cách tự nhiên để hỗ trợ dữ liệu được mã hóa trên chuỗi khối, như sau:
- Một luồng được những người tham gia sử dụng để phân phối khóa công khai của họ cho bất kỳ chương trình mật mã khóa công khai nào.
- Luồng thứ hai được sử dụng để xuất bản dữ liệu, trong đó mỗi phần dữ liệu được mã hóa bằng mật mã đối xứng với một khóa duy nhất.
- Luồng thứ ba cung cấp quyền truy cập dữ liệu. Đối với mỗi người tham gia sẽ thấy một phần dữ liệu, một mục nhập luồng được tạo trong đó chứa khóa bí mật của dữ liệu đó, được mã hóa bằng khóa công khai của người tham gia đó.
Điều này cung cấp một cách hiệu quả để lưu trữ dữ liệu trên blockchain, đồng thời làm cho nó chỉ hiển thị cho một số người tham gia nhất định.
Truy xuất từ các luồng
Giá trị cốt lõi của luồng là lập chỉ mục và truy xuất. Mỗi nút có thể chọn luồng để đăng ký, với blockchain đảm bảo rằng tất cả các nút đăng ký một luồng cụ thể sẽ thấy các mục giống nhau bên trong. (Một nút cũng có thể được định cấu hình để tự động đăng ký mọi luồng mới được tạo.)
Nếu một nút được đăng ký vào một luồng, thông tin có thể được truy xuất từ luồng đó theo một số cách:
- Lấy các mục từ luồng theo thứ tự.
- Truy xuất các mục bằng một phím cụ thể.
- Truy xuất các mục được ký bởi một nhà xuất bản cụ thể.
- Liệt kê các khóa được sử dụng trong một luồng, với số lượng mục cho mỗi khóa.
- Liệt kê các nhà xuất bản trong một luồng, với số lượng mục.
Như đã đề cập ở phần đầu, các phương pháp truy xuất này cho phép các luồng được sử dụng để cơ sở dữ liệu khóa-giá trị, cơ sở dữ liệu chuỗi thời gian và cơ sở dữ liệu theo hướng nhận dạng. Tất cả các API truy xuất đều cung cấp Bắt đầu và tính tham số, cho phép các phần con của danh sách dài được truy xuất một cách hiệu quả (như mệnh đề LIMIT trong SQL). Giá trị âm cho Bắt đầu cho phép các mục gần đây nhất được truy xuất.
Các luồng có thể chứa nhiều mục với cùng một khóa và điều này giải quyết một cách tự nhiên sự căng thẳng giữa tính bất biến của blockchain và nhu cầu cập nhật cơ sở dữ liệu. Mỗi 'mục nhập' cơ sở dữ liệu hiệu quả phải được gán một khóa duy nhất trong ứng dụng của bạn, với mỗi bản cập nhật cho mục nhập đó được thể hiện bằng một mục luồng mới với khóa của nó. Sau đó, các API truy xuất luồng của MultiChain có thể được sử dụng để: (a) truy xuất phiên bản đầu tiên hoặc cuối cùng của một mục nhập nhất định, (b) truy xuất lịch sử phiên bản đầy đủ cho một mục nhập, (c) truy xuất thông tin về nhiều mục nhập, bao gồm cả mục đầu tiên và cuối cùng phiên bản của mỗi.
Lưu ý rằng do kiến trúc ngang hàng của blockchain, các mục trong luồng có thể đến các nút khác nhau theo các thứ tự khác nhau và MultiChain cho phép các mục được truy xuất trước khi chúng được 'xác nhận' trong một khối. Do đó, tất cả các API truy xuất cung cấp sự lựa chọn giữa thứ tự toàn cầu (mặc định) hoặc cục bộ. Thứ tự toàn cầu đảm bảo rằng, khi chuỗi đã đạt được sự đồng thuận, tất cả các nút đều nhận được phản hồi giống nhau từ các lệnh gọi API giống nhau. Đặt hàng cục bộ đảm bảo rằng, đối với bất kỳ nút cụ thể nào, thứ tự các mục của luồng sẽ không bao giờ thay đổi giữa các lệnh gọi API. Mỗi ứng dụng có thể đưa ra lựa chọn thích hợp cho nhu cầu của mình.
Luồng và lộ trình MultiChain
Với việc phát hành luồng, chúng tôi đã hoàn thành công việc chính cuối cùng cho MultiChain 1.0 và hiện đang vững chắc trên con đường chuyển sang phiên bản beta. Chúng tôi dự kiến sẽ dành vài tháng tới để mở rộng bộ thử nghiệm nội bộ của mình (đã khá lớn!), Hoàn thiện các cổng Windows và Mac, thêm một số API hữu ích hơn, cập nhật Gói Thử Nghiệm cho luồng, điều chỉnh các khía cạnh của cơ chế đồng thuận, phát hành bản trình diễn web của chúng tôi và nói chung là thu dọn mã và thông báo trợ giúp. Quan trọng nhất, chúng tôi sẽ tiếp tục sửa bất kỳ lỗi nào ngay sau khi chúng được phát hiện, để những lỗi của chúng tôi không làm gián đoạn công việc của bạn.
Về lâu dài, các luồng phù hợp với lộ trình MultiChain ở đâu? Lùi lại một bước, MultiChain hiện cung cấp ba lĩnh vực chức năng cấp cao:
- Quyền để kiểm soát ai có thể kết nối, giao dịch, tạo nội dung / luồng, khai thác / xác thực và quản lý.
- Tài sản bao gồm phát hành, cấp lại, chuyển nhượng, trao đổi nguyên tử, ký quỹ và tiêu hủy.
- Dòng với các API để tạo luồng, viết, đăng ký, lập chỉ mục và truy xuất.
Sau khi phát hành MultiChain 1.0 (và phiên bản cao cấp), điều gì tiếp theo trong danh sách này? Nếu bạn nhìn vào Lệnh API được sử dụng để tạo luồng, bạn sẽ nhận thấy một thông số dường như thừa, với giá trị cố định là stream
. Tham số này sẽ cho phép MultiChain hỗ trợ các loại thực thể cấp cao khác trong tương lai.
Các giá trị có thể có trong tương lai cho tham số bao gồm evm
(cho một Ethereum-máy ảo tương thích), sql
(đối với cơ sở dữ liệu kiểu SQL) hoặc thậm chí wiki
(đối với văn bản được biên tập cộng tác). Bất kỳ thực thể được chia sẻ nào có trạng thái được xác định bởi một loạt các thay đổi theo thứ tự đều là một ứng cử viên tiềm năng. Mỗi thực thể như vậy sẽ cần: (a) API cung cấp tính trừu tượng phù hợp để cập nhật trạng thái của nó, (b) cơ chế thích hợp cho các nút đã đăng ký để theo dõi trạng thái đó và (c) API để truy xuất một phần hoặc toàn bộ trạng thái một cách hiệu quả. Chúng tôi đang chờ tìm hiểu xem thực thể cấp cao nào khác sẽ hữu ích nhất, được chúng tôi hoặc bên thứ ba triển khai thông qua kiến trúc trình cắm thêm.
Điều gì về hợp đồng thông minh?
Theo nghĩa chung, MultiChain có cách tiếp cận trong đó dữ liệu được nhúng bất biến trong một chuỗi khối, nhưng mã để diễn giải dữ liệu đó nằm trong nút hoặc lớp ứng dụng. Điều này cố tình khác với mô hình “hợp đồng thông minh”, như được ví dụ bởi Ethereum, trong đó mã được nhúng trong blockchain và chạy trong một máy ảo. Về lý thuyết, vì hợp đồng thông minh Turing hoàn thành, chúng có thể tái tạo hành vi của MultiChain hoặc bất kỳ nền tảng blockchain nào khác. Tuy nhiên, trên thực tế, các hợp đồng thông minh kiểu Ethereum có nhiều thiếu sót đau đớn:
- Mỗi nút phải thực hiện mọi phép tính, cho dù nó có quan tâm hay không. Ngược lại, trong MultiChain, mỗi nút quyết định luồng nào sẽ đăng ký và có thể bỏ qua dữ liệu được chứa bởi những người khác.
- Máy ảo được sử dụng cho các hợp đồng thông minh có hiệu suất kém hơn đáng kể so với mã đã được biên dịch nguyên bản cho một kiến trúc máy tính nhất định.
- Mã hợp đồng thông minh được nhúng liên tục vào một chuỗi, ngăn các tính năng được thêm vào và sửa lỗi. Điều này đã được chứng minh một cách mạnh mẽ trong sự sụp đổ của DAO.
- Các giao dịch được gửi đến một hợp đồng thông minh không thể cập nhật trạng thái của một blockchain cho đến khi biết thứ tự cuối cùng của chúng, vì bản chất của tính toán mục đích chung. Điều này dẫn đến sự chậm trễ (cho đến khi giao dịch được xác nhận trong một khối) cũng như có thể có sự đảo ngược (trong trường hợp có fork trong chuỗi). Ngược lại, MultiChain có thể xử lý từng loại giao dịch chưa được xác nhận theo cách thích hợp: (a) tài sản đến cập nhật ngay lập tức số dư chưa được xác nhận của nút, (b) các mục luồng đến có sẵn ngay lập tức, với thứ tự toàn cầu của chúng sau đó được hoàn thiện, (c) quyền thay đổi được áp dụng ngay lập tức và sau đó được phát lại trong các khối đến.
Tuy nhiên, như tôi nói trước, chúng tôi chắc chắn không loại trừ hợp đồng thông minh như một mô hình hữu ích cho các ứng dụng blockchain, nếu và khi chúng tôi thấy các trường hợp sử dụng mạnh mẽ. Tuy nhiên, trong MultiChain, các hợp đồng thông minh sẽ được thực hiện trong một lớp giống như luồng trên đầu blockchain, thay vì mức giao dịch thấp nhất. Điều này sẽ bảo toàn hiệu suất vượt trội của MultiChain cho các thực thể blockchain đơn giản hơn như tài sản và luồng, đồng thời cung cấp tính toán trên chuỗi chậm hơn khi nó thực sự cần thiết. Nhưng có ít trường hợp như vậy hơn bạn nghĩ.
Xin vui lòng gửi bất kỳ ý kiến trên LinkedIn.
Phụ lục kỹ thuật
Tất cả các lệnh liên quan đến luồng được ghi lại đầy đủ trong Trang API MultiChain, nhưng đây là một bản tóm tắt ngắn gọn:
- Tạo luồng bằng
create stream
orcreatefrom ... stream
- Thêm một mục vào luồng với
publish
orpublishfrom
- Truy xuất danh sách các luồng bằng
liststreams
- Bắt đầu hoặc dừng theo dõi luồng với
subscribe
vàunsubscribe
- Truy xuất các mục luồng bằng
liststreamitems
,liststreamkeyitems
vàliststreampublisheritems
- Liệt kê các khóa luồng và nhà xuất bản với
liststreamkeys
vàliststreampublishers
- Đối với các mục luồng lớn, hãy truy xuất toàn bộ dữ liệu bằng cách sử dụng
gettxoutdata
(xemmaxshowndata
dưới đây) - Kiểm soát quyền trên mỗi luồng với các lệnh gọi như
grant stream1.write
- Xem các quyền của luồng bằng cách sử dụng
listpermissions stream1.*
Một số ghi chú khác của nhà phát triển liên quan đến luồng:
- Sản phẩm
create
quyền cho phép một địa chỉ để tạo luồng. - Các quyền liên quan cho mỗi luồng là
write
,admin
vàactivate
- Mới thông số blockchain:
root-stream-name
(để trống không có),root-stream-open
,anyone-can-create
,admin-consensus-create
,max-std-op-returns-count
- Mới tham số thời gian chạy:
autosubscribe
để tự động đăng ký các luồng mới được tạo vàmaxshowndata
để giới hạn số lượng dữ liệu trong các phản hồi API (xemgettxoutdata
ở trên). - Kích thước tối đa của dữ liệu của mục luồng được cố định bởi
max-std-op-return-size
tham số blockchain, cũng như tham số nhỏ hơnmaximum-block-size
vàmax-std-tx-size
giá trị trừ đi một vài trăm byte. - Các nút sử dụng định dạng ví cũ không thể đăng ký luồng và nên được nâng cấp.
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- PlatoData.Network Vertical Generative Ai. Trao quyền cho chính mình. Truy cập Tại đây.
- PlatoAiStream. Thông minh Web3. Kiến thức khuếch đại. Truy cập Tại đây.
- Trung tâmESG. Than đá, công nghệ sạch, Năng lượng, Môi trường Hệ mặt trời, Quản lý chất thải. Truy cập Tại đây.
- PlatoSức khỏe. Tình báo thử nghiệm lâm sàng và công nghệ sinh học. Truy cập Tại đây.
- nguồn: https://www.multichain.com/blog/2016/09/introducing-multichain-streams/
- : có
- :là
- :không phải
- :Ở đâu
- $ LÊN
- 1
- a
- Giới thiệu
- ở trên
- sự trừu tượng
- truy cập
- Theo
- hành vi
- thêm
- thêm
- địa chỉ
- địa chỉ
- quản trị
- tiên tiến
- Tất cả
- cho phép
- Cho phép
- cho phép
- Đã
- Ngoài ra
- số lượng
- an
- và
- bất kì
- api
- API
- Các Ứng Dụng
- các ứng dụng
- áp dụng
- phương pháp tiếp cận
- thích hợp
- kiến trúc
- lưu trữ
- LÀ
- khu vực
- AS
- các khía cạnh
- Tài sản
- giao
- At
- nguyên tử
- tác giả
- tự động
- có sẵn
- nhận thức
- b
- trở lại
- Cân đối
- BE
- bởi vì
- được
- trước
- bắt đầu
- hành vi
- được
- phía dưới
- beta
- giữa
- lớn nhất
- Chặn
- blockchain
- ứng dụng blockchain
- nền tảng blockchain
- Các trường hợp sử dụng chuỗi khối
- Khối
- lỗi
- nhưng
- by
- gọi là
- Cuộc gọi
- CAN
- ứng cử viên
- không thể
- trường hợp
- trường hợp
- nhất định
- chắc chắn
- chuỗi
- thách thức
- thay đổi
- Những thay đổi
- đặc điểm
- sự lựa chọn
- Chọn
- phân loại
- đóng cửa
- mã
- bộ sưu tập
- Bình luận
- biên soạn
- Hoàn thành
- tính toán
- máy tính
- bảo mật
- cấu hình
- XÁC NHẬN
- Kết nối
- Sự đồng thuận
- cơ chế đồng thuận
- xem xét
- chứa
- chứa
- chứa
- nội dung
- tiếp tục
- hợp đồng
- hợp đồng
- Ngược lại
- điều khiển
- Tiện lợi
- Trung tâm
- tạo
- tạo ra
- Tạo
- quan trọng
- mật mã
- dữ liệu
- truy cập dữ liệu
- Cơ sở dữ liệu
- cơ sở dữ liệu
- Mặc định
- xác định
- sự chậm trễ
- Demo
- chứng minh
- xác định
- Nhà phát triển
- phát triển
- khác nhau
- kỹ thuật số
- phát hiện
- phân phát
- do
- tài liệu
- tài liệu
- dont
- quyết liệt
- mỗi
- Hiệu quả
- hiệu quả
- hiệu quả
- nhúng
- trống
- cho phép
- mã hóa
- Toàn bộ
- thực thể
- thực thể
- nhập
- ký quỹ
- ethereum
- Ngay cả
- Sự kiện
- Mỗi
- Sàn giao dịch
- tồn tại
- mở rộng
- mong đợi
- rõ ràng
- Tính năng
- vài
- ít hơn
- cuối cùng
- kết thúc
- vững chắc
- Tên
- phù hợp với
- Sửa chữa
- cố định
- Tập trung
- tập trung
- tiếp theo
- sau
- Trong
- ngã ba
- định dạng
- từ
- Full
- chức năng
- tương lai
- Tổng Quát
- dữ liệu chung
- nói chung
- được
- Toàn cầu
- bảo đảm
- Có
- giúp đỡ
- tại đây
- cấp độ cao
- lịch sử
- Tuy nhiên
- http
- HTTPS
- một trăm
- if
- bỏ qua
- ngay
- bất biến
- bất biến
- bất biến
- thực hiện
- thực hiện
- thực hiện
- quan trọng
- in
- bao gồm
- Bao gồm
- Incoming
- độc lập
- thông tin
- ngay lập tức
- tích hợp
- quan tâm
- nội bộ
- trong
- giới thiệu
- phát hành
- vấn đề
- Ban hành
- IT
- mặt hàng
- ITS
- Key
- phím
- nổi tiếng
- lớn
- Họ
- một lát sau
- mới nhất
- lớp
- dẫn
- Dẫn
- LEARN
- Rời bỏ
- Cấp
- Lượt thích
- LIMIT
- Danh sách
- Chức năng
- địa phương
- dài
- còn
- Xem
- thấp nhất
- mac
- máy
- chính
- làm cho
- Làm
- nhiều
- tối đa
- Có thể..
- cơ chế
- cơ chế
- đề cập
- tin nhắn
- phương pháp
- Might
- sai lầm
- thời điểm
- tháng
- chi tiết
- hầu hết
- nhiều nhịp
- nhiều
- Tự nhiên
- Thiên nhiên
- Cần
- cần thiết
- nhu cầu
- tiêu cực
- không bao giờ
- Mới
- tiếp theo
- Không
- nút
- các nút
- Không áp dụng
- Chú ý
- Để ý..
- tại
- con số
- of
- cung cấp
- cung cấp
- Cung cấp
- Xưa
- on
- trên chuỗi
- hàng loạt
- ONE
- có thể
- mở
- or
- gọi món
- đơn đặt hàng
- Nền tảng khác
- Khác
- vfoXNUMXfipXNUMXhfpiXNUMXufhpiXNUMXuf
- ra
- kết thúc
- đau đớn
- mô hình
- tham số
- thông số
- một phần
- tham gia
- tham gia
- riêng
- các bên tham gia
- con đường
- ngang ngang nhau
- thực hiện
- hiệu suất
- cho phép
- quyền
- mảnh
- nền tảng
- plato
- Thông tin dữ liệu Plato
- PlatoDữ liệu
- cổng
- có thể
- Bài đăng
- tiềm năng
- thực hành
- cao cấp
- ngăn chặn
- tự hào
- cho
- cung cấp
- công khai
- chính công
- khóa công khai
- xuất bản
- nhà xuất bản
- nhà xuất bản
- mục đích
- khá
- phạm vi
- hơn
- Nguyên
- đạt
- Đọc
- có thật không
- nhận
- gần đây
- liên quan
- phát hành
- phát hành
- đại diện
- phản ứng
- hạn chế
- kết quả
- ngay
- lộ trình
- cầm quyền
- chạy
- tương tự
- cảnh
- Đề án
- Thứ hai
- Bí mật
- xem
- nhìn
- gửi
- ý nghĩa
- gởi
- Loạt Sách
- định
- thiết lập
- chia sẻ
- thiếu sót
- nên
- Ký kết
- đơn giản
- duy nhất
- Kích thước máy
- nhỏ
- nhỏ hơn
- thông minh
- hợp đồng thông minh
- Hợp đồng thông minh
- So
- Giải quyết
- một số
- Chẳng bao lâu
- tiêu
- SQL
- Bắt đầu
- Tiểu bang
- Bước
- Dừng
- hàng
- dòng
- dòng
- mạnh mẽ
- phong cách
- đăng ký
- Sau đó
- như vậy
- bộ
- TÓM TẮT
- cao
- hỗ trợ
- hệ thống
- Lấy
- mất
- dùng
- kỳ hạn
- thử nghiệm
- văn bản
- hơn
- việc này
- Sản phẩm
- Khối
- Nhà nước
- cung cấp their dịch
- sau đó
- lý thuyết
- Đó
- Kia là
- họ
- nghĩ
- Thứ ba
- các bên thứ ba
- điều này
- những
- số ba
- thời gian
- Chuỗi thời gian
- đến
- hàng đầu
- theo dõi
- Theo dõi
- giao dịch
- giao dịch
- chuyển
- điều trị
- tinh chỉnh
- kiểu
- loại
- cơ bản
- độc đáo
- cho đến khi
- Cập nhật
- cập nhật
- us
- sử dụng
- đã sử dụng
- Người sử dụng
- sử dụng
- giá trị
- Các giá trị
- phiên bản
- thông qua
- ảo
- máy ảo
- có thể nhìn thấy
- Đợi
- ví
- là
- Đường..
- cách
- we
- web
- TỐT
- khi nào
- liệu
- cái nào
- trong khi
- CHÚNG TÔI LÀ
- có
- Wikipedia
- sẽ
- cửa sổ
- với
- ở trong
- không có
- Công việc
- tệ hơn
- sẽ
- viết
- viết
- bạn
- trên màn hình
- zephyrnet