文是 Parity 核心开发者 Kian Paimani 从技术角度解读波卡最新提出的 JAM giao thức,以帮助人们更好地了解 JAM 如何为波卡生态系统带来全新的可扩展性。
Viết bởi: Kian Paimani, Nhà phát triển chính của Parity
Biên dịch: Polkadot Labs
"Bảng tri thức Polkadot" là bài viết cơ bản dành cho người mới bắt đầu về Polkadot. Chúng tôi cố gắng bắt đầu từ phần cơ bản nhất của Polkadot, cung cấp kiến thức toàn diện về Polkadot cho mọi người. Đây là một dự án lớn, cũng đầy thách thức, tuy nhiên, chúng tôi hy vọng thông qua nỗ lực này, mọi người có thể hiểu đúng về Polkadot và người không biết về Polkadot có thể nhanh chóng nắm bắt kiến thức liên quan đến Polkadot. Hôm nay là số thứ 148 của chương trình này, bài viết này được viết từ góc độ kỹ thuật bởi Kian Paimani, một nhà phát triển lõi của Parity, để giúp mọi người hiểu rõ hơn về giao thức JAM mới nhất của Polkadot và cách JAM mang lại khả năng mở rộng hoàn toàn mới cho hệ sinh thái Polkadot. Bài viết này được viết từ góc nhìn cá nhân của tác giả."***
*Dưới đây là một giải thích chi tiết về Polkadot1, Polkadot2 và cách chúng phát triển thành JAM. (Xem chi tiết tại: ****) Bài viết này dành cho độc giả kỹ thuật, đặc biệt là những người không quá quen thuộc với Polkadot nhưng có hiểu biết nhất định về hệ thống blockchain và có thể hiểu về các công nghệ liên quan đến hệ sinh thái khác.
*Tôi nghĩ rằng, việc đọc bài viết này trước khi đọc JAM Whitepaper là một sự chuẩn bị tốt. (Xem chi tiết tại: ***)
Kiến thức về nền tảng
Bài viết giả định người đọc hiểu rõ các khái niệm sau:
Đầu tiên, hãy xem lại các đặc điểm tôi cho rằng Polkadot1 là đặc điểm sáng tạo nhất.
Mặt xã hội:
Polkadot là một Tổ chức tự trị Phi tập trung (DAO) lớn. Mạng lưới này thực hiện việc quản trị hoàn toàn dựa trên chuỗi, thực hiện tự thực hiện, bao gồm cập nhật thời gian chạy không cần fork.
SEC xem DOT là phần mềm chứ không phải chứng khoán. (Chi tiết xem tại: )
Hầu hết công việc phát triển mạng được hoàn thành bởi Học viện Polkadot (chi tiết xem tại:), chứ không phải bởi các công ty được hỗ trợ tài chính (như Parity:).
Mặt kỹ thuật:
Polkadot thực hiện việc chia sẻ an toàn và thực thi Phân mảnh.
Sử dụng giao thức meta WASM (xem chi tiết tại: _sdk_docs/reference_docs/wasm_meta_protocol/index.html), lưu trữ mã byte của mã nguồn blockchain trong trạng thái. Điều này cho phép hầu hết các cập nhật không cần fork và cũng có thể thực hiện Phân mảnh bất đồng loại.
Vui lòng xem các chương tương ứng để biết thêm thông tin về 'Phân mảnh' không tương đồng.
Phân mảnh thực hiện: Điểm cốt lõi
Hiện tại, chúng tôi đang thảo luận về một mạng Layer1 lưu trữ mạng Layer2 "blockchain" khác, tương tự như Polkadot và Ethereum. Do đó, hai từ Layer2 và Parachain có thể được sử dụng thay thế cho nhau.
Vấn đề cốt lõi về khả năng mở rộng của Khối liên quan đến việc tồn tại một nhóm Người xác thực, họ có thể đảm bảo việc thực hiện mã nguồn một cách đáng tin cậy thông qua tính kinh tế của Bằng chứng về cổ phần (Proof-of-Stake) của Crypto. Mặc định, những Người xác thực này cần phải thực hiện lại toàn bộ công việc của nhau. Do đó, miễn là chúng ta buộc tất cả Người xác thực phải luôn luôn thực hiện lại mọi thứ, hệ thống toàn bộ sẽ không thể mở rộng được.
Vui lòng lưu ý rằng, chỉ cần nguyên tắc thực hiện tuyệt đối được giữ nguyên như trước, thì việc tăng số lượng Người xác thực trong mô hình này sẽ không thực sự cải thiện khả năng xử lý của hệ thống.
Trên đây là một mạng Khối đơn (so với mạng Phân mảnhKhối). Tất cả các Người xác thực mạng sẽ xử lý đầu vào (tức là Khối) một cách tuần tự.
Trong hệ thống như vậy, nếu Layer1 muốn đặt cược nhiều hơn Layer2, tất cả Người xác thực hiện tại đều phải thực hiện lại tất cả công việc của Layer2. Rõ ràng, phương pháp này không thể mở rộng. Rollups lạc quan là một cách để tránh vấn đề này, vì chỉ khi có người tuyên bố xảy ra gian lận thì mới thực hiện lại (bằng chứng gian lận). Rollups dựa trên SNARK bằng cách tận dụng sự thấp hơn rất nhiều chi phí của việc xác minh bằng chứng SNARK so với việc tạo ra nó, do đó cho phép tất cả Người xác thực xác minh rằng bằng chứng SNARK là hợp lý. Vui lòng xem thêm thông tin chi tiết trong phần 'Phụ lục: Bản đồ không gian mở rộng'.
Một giải pháp đơn giản của Phân mảnh là chỉ chia nhỏ tập hợp Người xác thực thành các tập con nhỏ hơn và cho phép các tập con nhỏ này thực hiện lại các Khối Layer2. Vấn đề của phương pháp này là gì? Chúng ta đang phân mảnh việc thực hiện và tính bảo mật kinh tế của mạng. Tính bảo mật của Layer2 như vậy thấp hơn Layer1 và khi chúng ta chia tách tập hợp Người xác thực thành nhiều phân mảnh hơn, tính bảo mật càng giảm đi.
Khác với rollups optimistic không thể luôn tái thực hiện chi phí, Polkadot đã xem xét việc thực hiện phân mảnh từ khi thiết kế, do đó nó cho phép một phần người xác thực tái thực hiện Lớp 2 Khối, đồng thời cung cấp đủ bằng chứng kinh tế Crypto cho tất cả các bên tham gia mạng, chứng minh tính chân thực của Lớp 2 Khối và sự an toàn tương tự khi tất cả người xác thực tập hợp tái thực hiện nó. Điều này được thực hiện thông qua cơ chế ELVES mới lạ (vừa được phát hành chính thức gần đây). (Chi tiết xem tại: )
Nói một cách đơn giản, ELVES có thể được coi là một cơ chế 'Rollups nghi ngờ'. Bằng cách các người xác thực hỏi các người xác thực khác về tính hợp lệ của một khối Layer2 cụ thể qua một số vòng, chúng ta có thể xác nhận với mức độ chắc chắn cao tính hợp lệ của khối Layer2 đó. Trong thực tế, khi có tranh cãi xảy ra, việc yêu cầu sự tham gia của toàn bộ tập hợp người xác thực sẽ được đưa ra một cách nhanh chóng. Rob Habermeier, người đồng sáng lập của Polkadot, đã giải thích điều này một cách chi tiết trong một bài viết. (Xem chi tiết tại: )
ELVES giúp Polkadot có thể đồng thời có hai tính chất trước đây được coi là đối lập lẫn nhau: 'Phân mảnh thực hiện' và 'Chia sẻ an toàn'. Đây là thành tựu công nghệ chính về khả năng mở rộng của Polkadot1.
Bây giờ, chúng ta tiếp tục thảo luận về việc so sánh với "CORE".
Một chuỗi Khối thực thi Phân mảnh rất giống một CPU: giống như CPU có thể thực thi nhiều hạt nhân lệnh song song, Polkadot có thể xử lý song song các Khối Layer2. Đó là lý do tại sao Layer2 trên Polkadot được gọi là parachain, trong khi môi trường thực thi lại từng Khối Layer2 bằng tập con người xác thực nhỏ hơn được gọi là "CORE". Mỗi CORE có thể trừu tượng hóa thành "một nhóm Người xác thực hợp tác".
Bạn có thể tưởng tượng mạng lưới Khối đơn lẻ như việc chỉ cần xử lý một Khối trong một khoảng thời gian bất kỳ, trong khi Polkadot lại xử lý một Khối Chuyển tiếp và một Khối Parachain cho mỗi khoảng thời gian.
Đa dạng hoá
Đến nay, chúng ta chỉ đã thảo luận về tính mở rộng và Phân mảnh thực thi được cung cấp bởi Polkadot. Đáng chú ý, mỗi Phân mảnh của Polkadot thực tế là một ứng dụng hoàn toàn khác nhau. Điều này được thực hiện bằng cách sử dụng một giao thức meta được lưu trữ trong byte code: một giao thức xác định Khối chuỗi được lưu trữ trong trạng thái của chính Khối chuỗi. Trong Polkadot 1.0, WASM được sử dụng làm byte code ưu tiên, trong khi JAM sử dụng PVM/RISC-V.
Tóm lại, đó là lý do tại sao Polkadot được gọi là một blockchain phân đoạn không đồng nhất.(Chi tiết xem tại:) Mỗi Layer2 đều là một ứng dụng hoàn toàn khác biệt.
Polkadot2
Một phần quan trọng của Polkadot2 là làm cho việc sử dụng nhân tố cốt lõi linh hoạt hơn. Trong mô hình Polkadot gốc, thời hạn thuê nhân tố cốt lõi có thể dao động từ 6 tháng đến 2 năm, điều này phù hợp với các doanh nghiệp giàu tài nguyên, nhưng không phù hợp với các nhóm nhỏ. Tính linh hoạt của việc sử dụng nhân tố cốt lõi trong Polkadot được gọi là "thời gian cốt lõi linh hoạt" (agile coretime) (Xem chi tiết tại: ). Theo mô hình này, thời hạn thuê nhân tố cốt lõi trong Polkadot có thể ngắn chỉ cần một Khối, cũng có thể lên đến một tháng, và đảm bảo mức giá tối đa cho người dùng muốn thuê dài hạn.
Các tính năng khác của Polkadot 2 đang được chúng tôi thảo luận và dần hiện ra, vì vậy không cần phải nói nhiều ở đây.
Hoạt động trong cốt lõi và trên chuỗi
Để hiểu về JAM, trước tiên cần hiểu những gì xảy ra khi một Khối Layer2 vào lõi của Polkadot.
Nội dung sau đây đã được rất nhiều sự đơn giản hóa.
Để xem lại, trung tâm chủ yếu bao gồm một nhóm Người xác thực. Do đó, khi chúng ta nói 'dữ liệu được gửi đến trung tâm', thực tế là dữ liệu này được chuyển đến nhóm Người xác thực này.
Một phần Layer2 và trạng thái Layer2 được gửi đến lõi. Những dữ liệu này chứa toàn bộ thông tin cần thiết để thực hiện Khối Layer2 đó.
Một phần của các nhà xác minh trong nhân văn sẽ thực hiện lại Khối Layer2 và tiếp tục xử lý các nhiệm vụ liên quan đến Nhận thức chung.
Người xác thực核心 sẽ cung cấp lại dữ liệu cần thiết cho Người xác thực khác (ngoại vi của Người xác thực核心). Các Người xác thực khác có thể quyết định liệu họ có cần phải thực hiện lại Khối Layer2 theo quy tắc ELVES và họ cần dữ liệu này để thực hiện thao tác.
Lưu ý, cho đến thời điểm hiện tại, tất cả các hoạt động đều diễn ra bên ngoài khối chính và hàm chuyển trạng thái của Polkadot. Mọi thứ đều xảy ra trong lõi và tầng khả dụng dữ liệu.
Cuối cùng, một phần nhỏ của trạng thái Layer2 mới nhất sẽ được hiển thị trên chuỗi chính trung gian của Polkadot. Không giống như tất cả các thao tác trước đó, thao tác này rẻ hơn nhiều so với việc thực sự thực hiện lại Khối Layer2, nó sẽ ảnh hưởng đến trạng thái chính của Polkadot, có thể nhìn thấy trong Khối Polkadot và được thực hiện bởi tất cả các Người xác thực của Polkadot.
Từ nội dung trên, chúng ta có thể thảo luận về một số hoạt động mà Polkadot đang thực hiện:
Trước tiên, từ bước 1 chúng ta có thể kết luận rằng Polkadot có một phương thức thực thi mới khác với hàm chuyển đổi trạng thái truyền thống của blockchain. Thông thường, khi tất cả người xác thực trong mạng thực hiện một công việc nào đó, trạng thái blockchain chính sẽ được cập nhật. Chúng ta gọi trường hợp này là hoạt động trên chuỗi (on-chain operation), đó chính là điều xảy ra trong bước 3. Tuy nhiên, trường hợp xảy ra trong lõi (bước 1) khác biệt với điều này. Chúng tôi gọi phương pháp tính toán blockchain mới này là thực thi trong lõi (in-core execution).
Tiếp theo, từ điểm số 2, chúng ta có thể suy luận rằng Polkadot đã cung cấp một lớp Data-Availability (DA) nguyên bản và Layer2 tự động sử dụng nó để đảm bảo rằng bằng chứng thực hiện của nó có sẵn trong một khoảng thời gian. Tuy nhiên, các khối dữ liệu có thể được phát hành vào lớp DA là cố định và luôn là bằng chứng cần thiết để thực hiện lại Layer2 Khối. Ngoài ra, mã của parachain chưa bao giờ đọc dữ liệu lớp DA.
Việc hiểu nội dung trên là cơ sở để hiểu JAM. Tóm lại như sau:
CORE (in-core ution): Đề cập đến các hoạt động xảy ra bên trong CORE. Đặc điểm của nó là phong phú, mở rộng và đảm bảo an toàn tương tự như việc thực hiện on-chain thông qua công nghệ Crypto và ELVES.
on-chain ution (on-chain ution): Đề cập đến tất cả các hoạt động được thực hiện bởi Người xác thực. Mặc định, Người xác thực được đảm bảo an toàn bằng cách kết hợp với các biện pháp bảo mật kinh tế, nhưng điều này tăng chi phí và hạn chế hơn vì tất cả mọi người đều phải thực hiện tất cả các hoạt động.
Tính khả dụng của dữ liệu: Khả năng của Polkadot Người xác thực cam kết tính khả dụng của một số dữ liệu trong một khoảng thời gian nhất định và cung cấp dữ liệu đó cho Người xác thực khác.
JAM
Sau khi hiểu rõ phần trước, chúng ta có thể dễ dàng chuyển sang giới thiệu về JAM.
JAM là một giao thức mới được thiết kế theo cảm hứng từ Polkadot và hoàn toàn tương thích với nó, nhằm thay thế chuỗi trung gian của Polkadot và làm cho việc sử dụng cốt lõi trở nên hoàn toàn phi tập trung và không hạn chế.
JAM được xây dựng trên nền tảng Polkadot2, cố gắng làm cho lõi của Polkadot dễ truy cập hơn, nhưng cách tiếp cận linh hoạt hơn và không có hạn chế cố định như agile-coretime.
Polkadot2 làm cho triển khai Layer2 trên cơ sở bên trong linh hoạt hơn.
JAM nhằm mục đích cho phép mọi ứng dụng triển khai trên cơ sở Polkadot, ngay cả khi những ứng dụng này không giống như blockchain hoặc Layer2.
Điều này chủ yếu được thực hiện thông qua việc tiết lộ ba khái niệm nguyên thủy chính đã được thảo luận ở phần trước về thực thi trên chuỗi, thực thi trong lõi và lớp DA.
Nói cách khác, trong JAM, nhà phát triển có thể tiếp cận được:
完全Khả năng lập trình化核心内和on-chain的工作。
Cho phép dữ liệu bất kỳ được đọc và ghi vào lớp DA của Polkadot.
Đây là mô tả cơ bản về mục tiêu JAM. Không cần phải nói nhiều, ở đây đã được rút gọn rất nhiều và giao thức có thể vẫn sẽ phát triển.
Với sự hiểu biết cơ bản này, chúng ta có thể tiếp tục khám phá một số chi tiết về JAM trong các phần tiếp theo.
1 Dịch vụ và các mục công việc
Trong bối cảnh của JAM, những gì trước đây được gọi là Layer2/ parachain hiện được gọi là "Dịch vụ (Service)", những gì trước đây được gọi là Khối / Giao dịch hiện được gọi là "Mục công việc (Work-Item)" hoặc "Gói công việc (Work-Package)". Cụ thể, Mục công việc thuộc về một dịch vụ nào đó, trong khi Gói công việc là sự kết hợp của Mục công việc. Những thuật ngữ này được thiết kế cố ý đủ thông dụng để bao quát các trường hợp sử dụng vượt qua các trường hợp sử dụng của chuỗi Khối / Layer2.
Một dịch vụ được mô tả bởi ba điểm nhập, trong đó hai điểm là fn refine() và fn accumulate(). Điểm đầu tiên mô tả nội dung được thực hiện trong lõi của dịch vụ, điểm thứ hai mô tả nội dung được thực hiện on-chain.
Cuối cùng, tên của hai điểm nhập cũng là lý do tại sao giao thức được gọi là JAM (Join Accumulate Machine). Join chính là fn refine(), khi tất cả các nhân vật chính Polkadot xử lý song song công việc lớn của các dịch vụ khác nhau, giai đoạn này được gọi là Join. Dữ liệu được lọc trước khi chuyển sang giai đoạn tiếp theo. Accumulate chỉ đề cập đến quá trình tích lũy tất cả các kết quả trên vào trạng thái JAM chính, cũng chính là phần thực thi on-chain.
Các mục công việc có thể được xác định một cách chính xác về mã mà chúng sẽ thực thi trong lõi, on-chain và chỉ định cách / liệu / từ đâu đọc / ghi nội dung từ Hồ dữ liệu phân tán.
2. Bán đúng phần
Xem lại tài liệu hiện có về XCM (Ngôn ngữ giao tiếp parachain được chọn bởi Polkadot), trong đó tất cả các giao tiếp đều là bất đồng bộ. (Xem chi tiết tại: ) Nghĩa là sau khi gửi tin nhắn, không thể đợi phản hồi.
Bất đồng bộ là hiện tượng không nhất quán của hệ thống, là một nhược điểm chính của các hệ thống Phân mảnh vĩnh viễn (như Polkadot 1 và Polkadot 2 cũng như hệ sinh thái Layer2 hiện có của Ethereum).
Tuy nhiên, như mô tả trong phần 2.4 của Sách màu xám, một hệ thống hoàn toàn nhất quán luôn đồng bộ với tất cả các người thuê nhà của mình chỉ có thể tăng lên đến một mức độ nhất định mà không cần phải hy sinh tính phổ quát, tính sẵn có hoặc tính linh hoạt. (Xem chi tiết tại:)
Đồng bộ ≈ Nhất quán || Bất đồng bộ ≈ Không nhất quán
Đây cũng là một lĩnh vực khác mà JAM nổi bật: thông qua việc giới thiệu nhiều tính năng, JAM đã thực hiện một hệ thống trạng thái trung gian mới, gọi là hệ thống bán nhất quán. Trong hệ thống này, các hệ thống con giao tiếp thường xuyên có cơ hội tạo ra môi trường nhất quán với nhau mà không buộc phải duy trì sự nhất quán của toàn bộ hệ thống. Điều này được mô tả tốt nhất trong cuộc phỏng vấn của tác giả sách màu xám Gavin Wood: (Xem chi tiết tại: _referring_euri=https%3A%2F%2Fblog.kianenigma.nl%2F&source_ve_path=OTY3MTQ)
Một cách hiểu khác là coi Polkadot/JAM là một hệ thống Phân mảnh, trong đó biên giới của những Phân mảnh này là linh hoạt và được quyết định động.
波卡一直是Phân mảnh的,并且完全异质化。
Bây giờ, nó sẽ được Phân mảnh, không đồng nhất và ranh giới của những Phân mảnh này có thể được quyết định linh hoạt, như đã được Gavin Wood gọi là hệ thống 'một nửa nhất quán' trên Twitter. (Xem chi tiết: _src=twsrc%5Etfw、)
Các tính năng làm cho điều này trở nên có thể bao gồm:
Truy cập vào việc thực thi lõi không trạng thái, song song, trong đó các dịch vụ khác nhau chỉ có thể tương tác đồng bộ với các dịch vụ khác trong cùng một lõi và trong cùng một Khối cụ thể, và thực thi on-chain, trong đó các dịch vụ có thể truy cập kết quả của tất cả các dịch vụ trên tất cả các lõi.
2.JAM không bắt buộc thực hiện bất kỳ lịch trình dịch vụ cụ thể nào. Dịch vụ giao tiếp thường xuyên có thể cung cấp động lực kinh tế cho bộ sắp xếp của chúng, tạo ra các gói công việc chứa các dịch vụ giao tiếp thường xuyên này. Điều này giúp các dịch vụ này có thể chạy trên cùng một lõi, việc giao tiếp giữa chúng giống như trong một môi trường đồng bộ.
Ngoài ra, dịch vụ JAM có thể truy cập vào Lớp dữ liệu DA và sử dụng nó như một lớp dữ liệu tạm thời nhưng rất rẻ tiền. Một khi dữ liệu được đặt trong DA, nó sẽ được lan truyền đến tất cả các nhân tố, nhưng có sẵn ngay tại cùng một nhân tố. Do đó, dịch vụ JAM có thể tận hưởng mức độ truy cập dữ liệu cao hơn bằng cách lập lịch cho chính nó trong cùng một khối liên tục.
Cần lưu ý rằng, mặc dù nội dung trên JAM có thể, nhưng không bắt buộc thực hiện ở lớp giao thức. Do đó, dự kiến một số giao diện trong lý thuyết là bất đồng bộ, nhưng thông qua sự trừu tượng tinh tế và biện pháp khích lệ, có thể thể hiện đồng bộ trong thực tế. Phần tiếp theo sẽ thảo luận về CorePlay là một ví dụ điển hình cho điều này.
3 CorePlay
Bài viết này giới thiệu về CorePlay, một ý tưởng thử nghiệm trong môi trường JAM, có thể được mô tả như một mô hình lập trình hợp đồng thông minh mới. Đến thời điểm viết bài, CorePlay vẫn chưa được mô tả chi tiết và vẫn chỉ là một ý tưởng.
Để hiểu CorePlay, trước tiên chúng ta cần giới thiệu Máy ảo PVM được JAM chọn.
4 PVM
PVM là một chi tiết quan trọng trong JAM và CorePlay. Chi tiết cấp thấp của PVM vượt ra ngoài phạm vi của bài viết này, tốt nhất là tham khảo mô tả của chuyên gia trong sách trắng. Tuy nhiên, với mục đích của bài viết này, chúng ta chỉ cần mô tả một vài thuộc tính của PVM:
Đo lường hiệu quả
Khả năng tạm dừng và khôi phục thực hiện
Đối với CorePlay, điều này quan trọng hơn.
CorePlay là một ví dụ về môi trường Hợp đồng thông minh đồng bộ và có khả năng mở rộng được tạo ra bằng cách sử dụng ngôn ngữ lập trình linh hoạt JAM. CorePlay đề xuất triển khai Hợp đồng thông minh dựa trên Actor trực tiếp trên nhân JAM để họ có thể tận hưởng giao diện lập trình đồng bộ và có thể viết mã giống như fn main() thông thường và giao tiếp thông qua let_result=other_coreplay_actor(data).await? Nếu other_coreplay_actor đang chạy trên cùng một nhân JAM trong một khối, cuộc gọi này sẽ đồng bộ; nếu nó đang chạy trên một nhân khác, Actor sẽ bị tạm dừng và được khôi phục trong khối JAM sau này. Điều này chỉ làm được nhờ dịch vụ JAM và khả năng lập lịch linh hoạt của nó cùng với thuộc tính của PVM.
5 CoreChains dịch vụ
Cuối cùng, hãy tóm tắt các lý do chính mà JAM hoàn toàn tương thích với Polkadot. Sản phẩm chính của Polkadot được vận hành theo cách thời gian cốt lõi linh hoạt của parachain và sản phẩm này được tiếp tục trong JAM.
Dịch vụ triển khai sớm nhất trong JAM có thể được gọi là CoreChains hoặc Parachains. Dịch vụ này sẽ cho phép các parachains kiểu Polkadot -2 hiện có chạy trên JAM.
Dịch vụ tiếp theo có thể triển khai trên JAM và các dịch vụ CoreChains hiện có có thể giao tiếp với chúng, nhưng các sản phẩm hiện có của Polkadot vẫn sẽ tiếp tục mạnh mẽ và chỉ mở ra cánh cửa mới cho các nhóm Parachain hiện có.
Phụ lục: Dữ liệu Phân mảnh
Phần lớn nội dung của bài viết được thảo luận từ góc độ Phân mảnh thực thi khả năng mở rộng. Chúng ta cũng có thể xem xét vấn đề tương tự từ góc độ dữ liệu. Điều thú vị là chúng ta nhận thấy rằng điều này tương tự như trường hợp một phần nhất quán đã đề cập trước đó: lý thuyết, hệ thống hoàn toàn nhất quán tốt hơn, nhưng không thể mở rộng; hệ thống hoàn toàn không nhất quán có thể mở rộng, nhưng không lý tưởng, trong khi JAM đã đưa ra một khả năng mới với mô hình bán nhất quán của mình.
Hệ thống tương thích hoàn toàn: Đây là những gì chúng tôi thấy trên các nền tảng Hợp đồng thông minh hoàn toàn đồng bộ như Solana hoặc những nền tảng dũng cảm chỉ triển khai trên Layer1 của ETH. Tất cả dữ liệu ứng dụng được lưu trữ trên chuỗi và có thể dễ dàng truy cập vào tất cả các ứng dụng khác. Đây là một thuộc tính hoàn hảo từ chương trình hóa nhưng không mở rộng được.
Hệ thống không đồng nhất: Dữ liệu ứng dụng được lưu trữ bên ngoài Layer1 và được phân chia thành các Phân mảnh cách biệt khác nhau. Có tính mở rộng cao, nhưng hiệu quả kết hợp thấp. Mô hình Rollup của Polkadot và Ethereum thuộc loại này.
Ngoài hai chức năng đã đề cập ở trên, JAM còn cho phép nhà phát triển xuất bản dữ liệu bất kỳ lên lớp DA của JAM, đây là một vùng trung gian giữa dữ liệu on-chain và off-chain trong một mức độ nào đó. Có thể viết ứng dụng mới sử dụng hầu hết dữ liệu ứng dụng từ lớp DA, đồng thời chỉ lưu trữ dữ liệu cực kỳ quan trọng vào trạng thái JAM.
Phụ lục: Bản đồ Khả năng Mở rộng
Phần này giải thích lại quan điểm của chúng tôi về lĩnh vực khả năng mở rộng của blockchain. Điều này cũng được mô tả trong cuốn sách màu xám và đây là phiên bản ngắn gọn hơn.
Khả năng mở rộng của blockchain theo một phần lớn tuân thủ các phương pháp được sử dụng trong hệ thống phân tán truyền thống: mở rộng theo chiều cao (dọc) và mở rộng theo chiều rộng (ngang).
Mở rộng lên là công việc mà các nền tảng như Solana đã thực hiện. Thông qua tối ưu hóa cực độ mã nguồn và phần cứng để đạt được công suất xử lý tối đa.
Mở rộng ra bên ngoài là chiến lược mà Ethereum và Polkadot sử dụng: giảm thiểu khối lượng công việc mà mỗi người cần phải hoàn thành. Trong các hệ thống phân tán truyền thống, điều này được thực hiện thông qua việc tăng cường thêm máy chủ sao lưu. Trong Blockchain, "máy tính" là tập hợp các Người xác thực của toàn bộ mạng. Bằng cách phân phối công việc giữa chúng (như ELVES đã làm), hoặc thông qua việc giảm nhẹ trách nhiệm của chúng một cách lạc quan (như Rollups lạc quan đã làm), chúng ta giảm bớt công việc của toàn bộ tập hợp Người xác thực, từ đó thực hiện việc mở rộng ra bên ngoài của hệ thống.
Trong chuỗi Khối, việc mở rộng ra ngoài tương tự như việc "giảm số lượng máy cần thực hiện tất cả các hoạt động".
Tóm lại như sau:
Mở rộng lên: Tối ưu hóa phần cứng hiệu suất cao + blockchain đơn lẻ.
Mở rộng ra ngoài:
Rollups lạc quan
Rollups dựa trên SNARK
ELVES: Rollups châm biếm của Polkadot (Cynical Rollups)
Phụ lục: Cùng phần cứng, cập nhật nhân hệ điều hành
Bài này dựa trên sự giống nhau mà Rob Habermeier đưa ra trong Sub02023: Polkadot: Kernel/Userland|Sub02023-YouTube (xem chi tiết tại: ), thể hiện việc JAM được nâng cấp cho Polkadot: cập nhật kernel trên cùng phần cứng.
Trong máy tính điển hình, chúng ta có thể chia ngăn xếp thành ba phần:
Phần cứng
Nhân cấu trúc
Không gian người dùng
Trong Polkadot, phần cứng, tức là nhân tạo tính toán và khả năng sử dụng dữ liệu, luôn là cốt lõi (như đã đề cập trước đó).
Trong Polkadot, nhân hệ thống thực tế là[9]Đến nay đã bao gồm hai phần:
parachain(Parachains)giao thức:một cách để sử dụng cố định và phi tập trung cốt lõi.
Một nhóm chức năng cấp thấp, chẳng hạn như DOT Token và tính khả chuyển, thế chấp, quản trị, v.v.
Cả hai đều tồn tại trong relay chain của Polkadot (Relay Chain).
Ứng dụng không gian người dùng là các ví dụ của parachains, các Token bản địa của chúng và nội dung khác được xây dựng trên đó.
Chúng ta có thể hình dung quá trình này như sau:
Polkadot đã luôn tưởng tượng sẽ di chuyển nhiều tính năng cốt lõi hơn đến một lớp người dùng đặc biệt - parachain. Đây chính là mục tiêu mà Minimal Relay RFC đang cố gắng thực hiện. (Chi tiết xem tại: )
Điều này có nghĩa là Relay chain của Polkadot chỉ xử lý giao thức parachain, từ đó giúp thu hẹp không gian lõi một cách đáng kể.
Một khi kiến trúc này được thực hiện, việc trực quan hóa quá trình chuyển đổi JAM sẽ trở nên dễ dàng hơn. JAM sẽ giảm đáng kể không gian lõi của Polkadot, làm cho nó trở nên phổ dụng hơn. Ngoài ra, giao thức Parachains sẽ được chuyển đến không gian người dùng, vì đây là một trong số ít các cách có thể viết ứng dụng trên cùng một lõi (phần cứng) và lõi (JAM).
Điều này cũng một lần nữa chứng minh tại sao JAM chỉ là một sự thay thế cho chuỗi relay trong Polkadot, chứ không phải là sự thay thế cho parachain.
Nói cách khác, chúng ta có thể coi việc di chuyển JAM như là một việc nâng cấp nhân hệ thống. Phần cứng cơ bản vẫn giữ nguyên, phần lớn nội dung của nhân cũ đã được di chuyển sang không gian người dùng để đơn giản hóa hệ thống.
Để tham gia vào cuộc thảo luận về bài viết này, hãy đăng ý kiến của bạn trên diễn đàn:
Về cách tham gia thảo luận trên diễn đàn, vui lòng xem Hướng dẫn Sử dụng Diễn đàn Polkadot mà chúng tôi đã phát hành:
《Cách tham gia thảo luận về Polkadot: Hướng dẫn sử dụng diễn đàn chính thức của Polkadot》
Nội dung chỉ mang tính chất tham khảo, không phải là lời chào mời hay đề nghị. Không cung cấp tư vấn về đầu tư, thuế hoặc pháp lý. Xem Tuyên bố miễn trừ trách nhiệm để biết thêm thông tin về rủi ro.
Tiết lộ JAM của Polkadot từ góc độ kỹ thuật
Viết bởi: Kian Paimani, Nhà phát triển chính của Parity
Biên dịch: Polkadot Labs
"Bảng tri thức Polkadot" là bài viết cơ bản dành cho người mới bắt đầu về Polkadot. Chúng tôi cố gắng bắt đầu từ phần cơ bản nhất của Polkadot, cung cấp kiến thức toàn diện về Polkadot cho mọi người. Đây là một dự án lớn, cũng đầy thách thức, tuy nhiên, chúng tôi hy vọng thông qua nỗ lực này, mọi người có thể hiểu đúng về Polkadot và người không biết về Polkadot có thể nhanh chóng nắm bắt kiến thức liên quan đến Polkadot. Hôm nay là số thứ 148 của chương trình này, bài viết này được viết từ góc độ kỹ thuật bởi Kian Paimani, một nhà phát triển lõi của Parity, để giúp mọi người hiểu rõ hơn về giao thức JAM mới nhất của Polkadot và cách JAM mang lại khả năng mở rộng hoàn toàn mới cho hệ sinh thái Polkadot. Bài viết này được viết từ góc nhìn cá nhân của tác giả."***
*Dưới đây là một giải thích chi tiết về Polkadot1, Polkadot2 và cách chúng phát triển thành JAM. (Xem chi tiết tại: ****) Bài viết này dành cho độc giả kỹ thuật, đặc biệt là những người không quá quen thuộc với Polkadot nhưng có hiểu biết nhất định về hệ thống blockchain và có thể hiểu về các công nghệ liên quan đến hệ sinh thái khác.
*Tôi nghĩ rằng, việc đọc bài viết này trước khi đọc JAM Whitepaper là một sự chuẩn bị tốt. (Xem chi tiết tại: ***)
Kiến thức về nền tảng
Bài viết giả định người đọc hiểu rõ các khái niệm sau:
Lời nói đầu: Polkadot1
Đầu tiên, hãy xem lại các đặc điểm tôi cho rằng Polkadot1 là đặc điểm sáng tạo nhất.
Mặt xã hội:
Mặt kỹ thuật:
Vui lòng xem các chương tương ứng để biết thêm thông tin về 'Phân mảnh' không tương đồng.
Phân mảnh thực hiện: Điểm cốt lõi
Hiện tại, chúng tôi đang thảo luận về một mạng Layer1 lưu trữ mạng Layer2 "blockchain" khác, tương tự như Polkadot và Ethereum. Do đó, hai từ Layer2 và Parachain có thể được sử dụng thay thế cho nhau.
Vấn đề cốt lõi về khả năng mở rộng của Khối liên quan đến việc tồn tại một nhóm Người xác thực, họ có thể đảm bảo việc thực hiện mã nguồn một cách đáng tin cậy thông qua tính kinh tế của Bằng chứng về cổ phần (Proof-of-Stake) của Crypto. Mặc định, những Người xác thực này cần phải thực hiện lại toàn bộ công việc của nhau. Do đó, miễn là chúng ta buộc tất cả Người xác thực phải luôn luôn thực hiện lại mọi thứ, hệ thống toàn bộ sẽ không thể mở rộng được.
Vui lòng lưu ý rằng, chỉ cần nguyên tắc thực hiện tuyệt đối được giữ nguyên như trước, thì việc tăng số lượng Người xác thực trong mô hình này sẽ không thực sự cải thiện khả năng xử lý của hệ thống.
Trên đây là một mạng Khối đơn (so với mạng Phân mảnhKhối). Tất cả các Người xác thực mạng sẽ xử lý đầu vào (tức là Khối) một cách tuần tự.
Trong hệ thống như vậy, nếu Layer1 muốn đặt cược nhiều hơn Layer2, tất cả Người xác thực hiện tại đều phải thực hiện lại tất cả công việc của Layer2. Rõ ràng, phương pháp này không thể mở rộng. Rollups lạc quan là một cách để tránh vấn đề này, vì chỉ khi có người tuyên bố xảy ra gian lận thì mới thực hiện lại (bằng chứng gian lận). Rollups dựa trên SNARK bằng cách tận dụng sự thấp hơn rất nhiều chi phí của việc xác minh bằng chứng SNARK so với việc tạo ra nó, do đó cho phép tất cả Người xác thực xác minh rằng bằng chứng SNARK là hợp lý. Vui lòng xem thêm thông tin chi tiết trong phần 'Phụ lục: Bản đồ không gian mở rộng'.
Một giải pháp đơn giản của Phân mảnh là chỉ chia nhỏ tập hợp Người xác thực thành các tập con nhỏ hơn và cho phép các tập con nhỏ này thực hiện lại các Khối Layer2. Vấn đề của phương pháp này là gì? Chúng ta đang phân mảnh việc thực hiện và tính bảo mật kinh tế của mạng. Tính bảo mật của Layer2 như vậy thấp hơn Layer1 và khi chúng ta chia tách tập hợp Người xác thực thành nhiều phân mảnh hơn, tính bảo mật càng giảm đi.
Khác với rollups optimistic không thể luôn tái thực hiện chi phí, Polkadot đã xem xét việc thực hiện phân mảnh từ khi thiết kế, do đó nó cho phép một phần người xác thực tái thực hiện Lớp 2 Khối, đồng thời cung cấp đủ bằng chứng kinh tế Crypto cho tất cả các bên tham gia mạng, chứng minh tính chân thực của Lớp 2 Khối và sự an toàn tương tự khi tất cả người xác thực tập hợp tái thực hiện nó. Điều này được thực hiện thông qua cơ chế ELVES mới lạ (vừa được phát hành chính thức gần đây). (Chi tiết xem tại: )
Nói một cách đơn giản, ELVES có thể được coi là một cơ chế 'Rollups nghi ngờ'. Bằng cách các người xác thực hỏi các người xác thực khác về tính hợp lệ của một khối Layer2 cụ thể qua một số vòng, chúng ta có thể xác nhận với mức độ chắc chắn cao tính hợp lệ của khối Layer2 đó. Trong thực tế, khi có tranh cãi xảy ra, việc yêu cầu sự tham gia của toàn bộ tập hợp người xác thực sẽ được đưa ra một cách nhanh chóng. Rob Habermeier, người đồng sáng lập của Polkadot, đã giải thích điều này một cách chi tiết trong một bài viết. (Xem chi tiết tại: )
ELVES giúp Polkadot có thể đồng thời có hai tính chất trước đây được coi là đối lập lẫn nhau: 'Phân mảnh thực hiện' và 'Chia sẻ an toàn'. Đây là thành tựu công nghệ chính về khả năng mở rộng của Polkadot1.
Bây giờ, chúng ta tiếp tục thảo luận về việc so sánh với "CORE".
Một chuỗi Khối thực thi Phân mảnh rất giống một CPU: giống như CPU có thể thực thi nhiều hạt nhân lệnh song song, Polkadot có thể xử lý song song các Khối Layer2. Đó là lý do tại sao Layer2 trên Polkadot được gọi là parachain, trong khi môi trường thực thi lại từng Khối Layer2 bằng tập con người xác thực nhỏ hơn được gọi là "CORE". Mỗi CORE có thể trừu tượng hóa thành "một nhóm Người xác thực hợp tác".
Bạn có thể tưởng tượng mạng lưới Khối đơn lẻ như việc chỉ cần xử lý một Khối trong một khoảng thời gian bất kỳ, trong khi Polkadot lại xử lý một Khối Chuyển tiếp và một Khối Parachain cho mỗi khoảng thời gian.
Đa dạng hoá
Đến nay, chúng ta chỉ đã thảo luận về tính mở rộng và Phân mảnh thực thi được cung cấp bởi Polkadot. Đáng chú ý, mỗi Phân mảnh của Polkadot thực tế là một ứng dụng hoàn toàn khác nhau. Điều này được thực hiện bằng cách sử dụng một giao thức meta được lưu trữ trong byte code: một giao thức xác định Khối chuỗi được lưu trữ trong trạng thái của chính Khối chuỗi. Trong Polkadot 1.0, WASM được sử dụng làm byte code ưu tiên, trong khi JAM sử dụng PVM/RISC-V.
Tóm lại, đó là lý do tại sao Polkadot được gọi là một blockchain phân đoạn không đồng nhất.(Chi tiết xem tại:) Mỗi Layer2 đều là một ứng dụng hoàn toàn khác biệt.
Polkadot2
Một phần quan trọng của Polkadot2 là làm cho việc sử dụng nhân tố cốt lõi linh hoạt hơn. Trong mô hình Polkadot gốc, thời hạn thuê nhân tố cốt lõi có thể dao động từ 6 tháng đến 2 năm, điều này phù hợp với các doanh nghiệp giàu tài nguyên, nhưng không phù hợp với các nhóm nhỏ. Tính linh hoạt của việc sử dụng nhân tố cốt lõi trong Polkadot được gọi là "thời gian cốt lõi linh hoạt" (agile coretime) (Xem chi tiết tại: ). Theo mô hình này, thời hạn thuê nhân tố cốt lõi trong Polkadot có thể ngắn chỉ cần một Khối, cũng có thể lên đến một tháng, và đảm bảo mức giá tối đa cho người dùng muốn thuê dài hạn.
Các tính năng khác của Polkadot 2 đang được chúng tôi thảo luận và dần hiện ra, vì vậy không cần phải nói nhiều ở đây.
Hoạt động trong cốt lõi và trên chuỗi
Để hiểu về JAM, trước tiên cần hiểu những gì xảy ra khi một Khối Layer2 vào lõi của Polkadot.
Nội dung sau đây đã được rất nhiều sự đơn giản hóa.
Để xem lại, trung tâm chủ yếu bao gồm một nhóm Người xác thực. Do đó, khi chúng ta nói 'dữ liệu được gửi đến trung tâm', thực tế là dữ liệu này được chuyển đến nhóm Người xác thực này.
Một phần Layer2 và trạng thái Layer2 được gửi đến lõi. Những dữ liệu này chứa toàn bộ thông tin cần thiết để thực hiện Khối Layer2 đó.
Một phần của các nhà xác minh trong nhân văn sẽ thực hiện lại Khối Layer2 và tiếp tục xử lý các nhiệm vụ liên quan đến Nhận thức chung.
Người xác thực核心 sẽ cung cấp lại dữ liệu cần thiết cho Người xác thực khác (ngoại vi của Người xác thực核心). Các Người xác thực khác có thể quyết định liệu họ có cần phải thực hiện lại Khối Layer2 theo quy tắc ELVES và họ cần dữ liệu này để thực hiện thao tác.
Lưu ý, cho đến thời điểm hiện tại, tất cả các hoạt động đều diễn ra bên ngoài khối chính và hàm chuyển trạng thái của Polkadot. Mọi thứ đều xảy ra trong lõi và tầng khả dụng dữ liệu.
Từ nội dung trên, chúng ta có thể thảo luận về một số hoạt động mà Polkadot đang thực hiện:
Trước tiên, từ bước 1 chúng ta có thể kết luận rằng Polkadot có một phương thức thực thi mới khác với hàm chuyển đổi trạng thái truyền thống của blockchain. Thông thường, khi tất cả người xác thực trong mạng thực hiện một công việc nào đó, trạng thái blockchain chính sẽ được cập nhật. Chúng ta gọi trường hợp này là hoạt động trên chuỗi (on-chain operation), đó chính là điều xảy ra trong bước 3. Tuy nhiên, trường hợp xảy ra trong lõi (bước 1) khác biệt với điều này. Chúng tôi gọi phương pháp tính toán blockchain mới này là thực thi trong lõi (in-core execution).
Tiếp theo, từ điểm số 2, chúng ta có thể suy luận rằng Polkadot đã cung cấp một lớp Data-Availability (DA) nguyên bản và Layer2 tự động sử dụng nó để đảm bảo rằng bằng chứng thực hiện của nó có sẵn trong một khoảng thời gian. Tuy nhiên, các khối dữ liệu có thể được phát hành vào lớp DA là cố định và luôn là bằng chứng cần thiết để thực hiện lại Layer2 Khối. Ngoài ra, mã của parachain chưa bao giờ đọc dữ liệu lớp DA.
Việc hiểu nội dung trên là cơ sở để hiểu JAM. Tóm lại như sau:
JAM
Sau khi hiểu rõ phần trước, chúng ta có thể dễ dàng chuyển sang giới thiệu về JAM.
JAM là một giao thức mới được thiết kế theo cảm hứng từ Polkadot và hoàn toàn tương thích với nó, nhằm thay thế chuỗi trung gian của Polkadot và làm cho việc sử dụng cốt lõi trở nên hoàn toàn phi tập trung và không hạn chế.
JAM được xây dựng trên nền tảng Polkadot2, cố gắng làm cho lõi của Polkadot dễ truy cập hơn, nhưng cách tiếp cận linh hoạt hơn và không có hạn chế cố định như agile-coretime.
Điều này chủ yếu được thực hiện thông qua việc tiết lộ ba khái niệm nguyên thủy chính đã được thảo luận ở phần trước về thực thi trên chuỗi, thực thi trong lõi và lớp DA.
Nói cách khác, trong JAM, nhà phát triển có thể tiếp cận được:
Đây là mô tả cơ bản về mục tiêu JAM. Không cần phải nói nhiều, ở đây đã được rút gọn rất nhiều và giao thức có thể vẫn sẽ phát triển.
Với sự hiểu biết cơ bản này, chúng ta có thể tiếp tục khám phá một số chi tiết về JAM trong các phần tiếp theo.
1 Dịch vụ và các mục công việc
Trong bối cảnh của JAM, những gì trước đây được gọi là Layer2/ parachain hiện được gọi là "Dịch vụ (Service)", những gì trước đây được gọi là Khối / Giao dịch hiện được gọi là "Mục công việc (Work-Item)" hoặc "Gói công việc (Work-Package)". Cụ thể, Mục công việc thuộc về một dịch vụ nào đó, trong khi Gói công việc là sự kết hợp của Mục công việc. Những thuật ngữ này được thiết kế cố ý đủ thông dụng để bao quát các trường hợp sử dụng vượt qua các trường hợp sử dụng của chuỗi Khối / Layer2.
Một dịch vụ được mô tả bởi ba điểm nhập, trong đó hai điểm là fn refine() và fn accumulate(). Điểm đầu tiên mô tả nội dung được thực hiện trong lõi của dịch vụ, điểm thứ hai mô tả nội dung được thực hiện on-chain.
Cuối cùng, tên của hai điểm nhập cũng là lý do tại sao giao thức được gọi là JAM (Join Accumulate Machine). Join chính là fn refine(), khi tất cả các nhân vật chính Polkadot xử lý song song công việc lớn của các dịch vụ khác nhau, giai đoạn này được gọi là Join. Dữ liệu được lọc trước khi chuyển sang giai đoạn tiếp theo. Accumulate chỉ đề cập đến quá trình tích lũy tất cả các kết quả trên vào trạng thái JAM chính, cũng chính là phần thực thi on-chain.
Các mục công việc có thể được xác định một cách chính xác về mã mà chúng sẽ thực thi trong lõi, on-chain và chỉ định cách / liệu / từ đâu đọc / ghi nội dung từ Hồ dữ liệu phân tán.
2. Bán đúng phần
Xem lại tài liệu hiện có về XCM (Ngôn ngữ giao tiếp parachain được chọn bởi Polkadot), trong đó tất cả các giao tiếp đều là bất đồng bộ. (Xem chi tiết tại: ) Nghĩa là sau khi gửi tin nhắn, không thể đợi phản hồi.
Bất đồng bộ là hiện tượng không nhất quán của hệ thống, là một nhược điểm chính của các hệ thống Phân mảnh vĩnh viễn (như Polkadot 1 và Polkadot 2 cũng như hệ sinh thái Layer2 hiện có của Ethereum).
Tuy nhiên, như mô tả trong phần 2.4 của Sách màu xám, một hệ thống hoàn toàn nhất quán luôn đồng bộ với tất cả các người thuê nhà của mình chỉ có thể tăng lên đến một mức độ nhất định mà không cần phải hy sinh tính phổ quát, tính sẵn có hoặc tính linh hoạt. (Xem chi tiết tại:)
Đồng bộ ≈ Nhất quán || Bất đồng bộ ≈ Không nhất quán
Đây cũng là một lĩnh vực khác mà JAM nổi bật: thông qua việc giới thiệu nhiều tính năng, JAM đã thực hiện một hệ thống trạng thái trung gian mới, gọi là hệ thống bán nhất quán. Trong hệ thống này, các hệ thống con giao tiếp thường xuyên có cơ hội tạo ra môi trường nhất quán với nhau mà không buộc phải duy trì sự nhất quán của toàn bộ hệ thống. Điều này được mô tả tốt nhất trong cuộc phỏng vấn của tác giả sách màu xám Gavin Wood: (Xem chi tiết tại: _referring_euri=https%3A%2F%2Fblog.kianenigma.nl%2F&source_ve_path=OTY3MTQ)
Một cách hiểu khác là coi Polkadot/JAM là một hệ thống Phân mảnh, trong đó biên giới của những Phân mảnh này là linh hoạt và được quyết định động.
波卡一直是Phân mảnh的,并且完全异质化。
Bây giờ, nó sẽ được Phân mảnh, không đồng nhất và ranh giới của những Phân mảnh này có thể được quyết định linh hoạt, như đã được Gavin Wood gọi là hệ thống 'một nửa nhất quán' trên Twitter. (Xem chi tiết: _src=twsrc%5Etfw、)
Các tính năng làm cho điều này trở nên có thể bao gồm:
2.JAM không bắt buộc thực hiện bất kỳ lịch trình dịch vụ cụ thể nào. Dịch vụ giao tiếp thường xuyên có thể cung cấp động lực kinh tế cho bộ sắp xếp của chúng, tạo ra các gói công việc chứa các dịch vụ giao tiếp thường xuyên này. Điều này giúp các dịch vụ này có thể chạy trên cùng một lõi, việc giao tiếp giữa chúng giống như trong một môi trường đồng bộ.
Cần lưu ý rằng, mặc dù nội dung trên JAM có thể, nhưng không bắt buộc thực hiện ở lớp giao thức. Do đó, dự kiến một số giao diện trong lý thuyết là bất đồng bộ, nhưng thông qua sự trừu tượng tinh tế và biện pháp khích lệ, có thể thể hiện đồng bộ trong thực tế. Phần tiếp theo sẽ thảo luận về CorePlay là một ví dụ điển hình cho điều này.
3 CorePlay
Bài viết này giới thiệu về CorePlay, một ý tưởng thử nghiệm trong môi trường JAM, có thể được mô tả như một mô hình lập trình hợp đồng thông minh mới. Đến thời điểm viết bài, CorePlay vẫn chưa được mô tả chi tiết và vẫn chỉ là một ý tưởng.
Để hiểu CorePlay, trước tiên chúng ta cần giới thiệu Máy ảo PVM được JAM chọn.
4 PVM
PVM là một chi tiết quan trọng trong JAM và CorePlay. Chi tiết cấp thấp của PVM vượt ra ngoài phạm vi của bài viết này, tốt nhất là tham khảo mô tả của chuyên gia trong sách trắng. Tuy nhiên, với mục đích của bài viết này, chúng ta chỉ cần mô tả một vài thuộc tính của PVM:
Đối với CorePlay, điều này quan trọng hơn.
CorePlay là một ví dụ về môi trường Hợp đồng thông minh đồng bộ và có khả năng mở rộng được tạo ra bằng cách sử dụng ngôn ngữ lập trình linh hoạt JAM. CorePlay đề xuất triển khai Hợp đồng thông minh dựa trên Actor trực tiếp trên nhân JAM để họ có thể tận hưởng giao diện lập trình đồng bộ và có thể viết mã giống như fn main() thông thường và giao tiếp thông qua let_result=other_coreplay_actor(data).await? Nếu other_coreplay_actor đang chạy trên cùng một nhân JAM trong một khối, cuộc gọi này sẽ đồng bộ; nếu nó đang chạy trên một nhân khác, Actor sẽ bị tạm dừng và được khôi phục trong khối JAM sau này. Điều này chỉ làm được nhờ dịch vụ JAM và khả năng lập lịch linh hoạt của nó cùng với thuộc tính của PVM.
5 CoreChains dịch vụ
Cuối cùng, hãy tóm tắt các lý do chính mà JAM hoàn toàn tương thích với Polkadot. Sản phẩm chính của Polkadot được vận hành theo cách thời gian cốt lõi linh hoạt của parachain và sản phẩm này được tiếp tục trong JAM.
Dịch vụ triển khai sớm nhất trong JAM có thể được gọi là CoreChains hoặc Parachains. Dịch vụ này sẽ cho phép các parachains kiểu Polkadot -2 hiện có chạy trên JAM.
Dịch vụ tiếp theo có thể triển khai trên JAM và các dịch vụ CoreChains hiện có có thể giao tiếp với chúng, nhưng các sản phẩm hiện có của Polkadot vẫn sẽ tiếp tục mạnh mẽ và chỉ mở ra cánh cửa mới cho các nhóm Parachain hiện có.
Phụ lục: Dữ liệu Phân mảnh
Phần lớn nội dung của bài viết được thảo luận từ góc độ Phân mảnh thực thi khả năng mở rộng. Chúng ta cũng có thể xem xét vấn đề tương tự từ góc độ dữ liệu. Điều thú vị là chúng ta nhận thấy rằng điều này tương tự như trường hợp một phần nhất quán đã đề cập trước đó: lý thuyết, hệ thống hoàn toàn nhất quán tốt hơn, nhưng không thể mở rộng; hệ thống hoàn toàn không nhất quán có thể mở rộng, nhưng không lý tưởng, trong khi JAM đã đưa ra một khả năng mới với mô hình bán nhất quán của mình.
Hệ thống tương thích hoàn toàn: Đây là những gì chúng tôi thấy trên các nền tảng Hợp đồng thông minh hoàn toàn đồng bộ như Solana hoặc những nền tảng dũng cảm chỉ triển khai trên Layer1 của ETH. Tất cả dữ liệu ứng dụng được lưu trữ trên chuỗi và có thể dễ dàng truy cập vào tất cả các ứng dụng khác. Đây là một thuộc tính hoàn hảo từ chương trình hóa nhưng không mở rộng được.
Hệ thống không đồng nhất: Dữ liệu ứng dụng được lưu trữ bên ngoài Layer1 và được phân chia thành các Phân mảnh cách biệt khác nhau. Có tính mở rộng cao, nhưng hiệu quả kết hợp thấp. Mô hình Rollup của Polkadot và Ethereum thuộc loại này.
Ngoài hai chức năng đã đề cập ở trên, JAM còn cho phép nhà phát triển xuất bản dữ liệu bất kỳ lên lớp DA của JAM, đây là một vùng trung gian giữa dữ liệu on-chain và off-chain trong một mức độ nào đó. Có thể viết ứng dụng mới sử dụng hầu hết dữ liệu ứng dụng từ lớp DA, đồng thời chỉ lưu trữ dữ liệu cực kỳ quan trọng vào trạng thái JAM.
Phụ lục: Bản đồ Khả năng Mở rộng
Phần này giải thích lại quan điểm của chúng tôi về lĩnh vực khả năng mở rộng của blockchain. Điều này cũng được mô tả trong cuốn sách màu xám và đây là phiên bản ngắn gọn hơn.
Khả năng mở rộng của blockchain theo một phần lớn tuân thủ các phương pháp được sử dụng trong hệ thống phân tán truyền thống: mở rộng theo chiều cao (dọc) và mở rộng theo chiều rộng (ngang).
Mở rộng lên là công việc mà các nền tảng như Solana đã thực hiện. Thông qua tối ưu hóa cực độ mã nguồn và phần cứng để đạt được công suất xử lý tối đa.
Mở rộng ra bên ngoài là chiến lược mà Ethereum và Polkadot sử dụng: giảm thiểu khối lượng công việc mà mỗi người cần phải hoàn thành. Trong các hệ thống phân tán truyền thống, điều này được thực hiện thông qua việc tăng cường thêm máy chủ sao lưu. Trong Blockchain, "máy tính" là tập hợp các Người xác thực của toàn bộ mạng. Bằng cách phân phối công việc giữa chúng (như ELVES đã làm), hoặc thông qua việc giảm nhẹ trách nhiệm của chúng một cách lạc quan (như Rollups lạc quan đã làm), chúng ta giảm bớt công việc của toàn bộ tập hợp Người xác thực, từ đó thực hiện việc mở rộng ra bên ngoài của hệ thống.
Trong chuỗi Khối, việc mở rộng ra ngoài tương tự như việc "giảm số lượng máy cần thực hiện tất cả các hoạt động".
Tóm lại như sau:
Phụ lục: Cùng phần cứng, cập nhật nhân hệ điều hành
Bài này dựa trên sự giống nhau mà Rob Habermeier đưa ra trong Sub02023: Polkadot: Kernel/Userland|Sub02023-YouTube (xem chi tiết tại: ), thể hiện việc JAM được nâng cấp cho Polkadot: cập nhật kernel trên cùng phần cứng.
Trong máy tính điển hình, chúng ta có thể chia ngăn xếp thành ba phần:
Phần cứng
Nhân cấu trúc
Không gian người dùng
Trong Polkadot, phần cứng, tức là nhân tạo tính toán và khả năng sử dụng dữ liệu, luôn là cốt lõi (như đã đề cập trước đó).
Trong Polkadot, nhân hệ thống thực tế là[9]Đến nay đã bao gồm hai phần:
parachain(Parachains)giao thức:một cách để sử dụng cố định và phi tập trung cốt lõi.
Một nhóm chức năng cấp thấp, chẳng hạn như DOT Token và tính khả chuyển, thế chấp, quản trị, v.v.
Cả hai đều tồn tại trong relay chain của Polkadot (Relay Chain).
Ứng dụng không gian người dùng là các ví dụ của parachains, các Token bản địa của chúng và nội dung khác được xây dựng trên đó.
Chúng ta có thể hình dung quá trình này như sau:
Polkadot đã luôn tưởng tượng sẽ di chuyển nhiều tính năng cốt lõi hơn đến một lớp người dùng đặc biệt - parachain. Đây chính là mục tiêu mà Minimal Relay RFC đang cố gắng thực hiện. (Chi tiết xem tại: )
Điều này có nghĩa là Relay chain của Polkadot chỉ xử lý giao thức parachain, từ đó giúp thu hẹp không gian lõi một cách đáng kể.
Một khi kiến trúc này được thực hiện, việc trực quan hóa quá trình chuyển đổi JAM sẽ trở nên dễ dàng hơn. JAM sẽ giảm đáng kể không gian lõi của Polkadot, làm cho nó trở nên phổ dụng hơn. Ngoài ra, giao thức Parachains sẽ được chuyển đến không gian người dùng, vì đây là một trong số ít các cách có thể viết ứng dụng trên cùng một lõi (phần cứng) và lõi (JAM).
Điều này cũng một lần nữa chứng minh tại sao JAM chỉ là một sự thay thế cho chuỗi relay trong Polkadot, chứ không phải là sự thay thế cho parachain.
Nói cách khác, chúng ta có thể coi việc di chuyển JAM như là một việc nâng cấp nhân hệ thống. Phần cứng cơ bản vẫn giữ nguyên, phần lớn nội dung của nhân cũ đã được di chuyển sang không gian người dùng để đơn giản hóa hệ thống.
Để tham gia vào cuộc thảo luận về bài viết này, hãy đăng ý kiến của bạn trên diễn đàn:
Về cách tham gia thảo luận trên diễn đàn, vui lòng xem Hướng dẫn Sử dụng Diễn đàn Polkadot mà chúng tôi đã phát hành:
《Cách tham gia thảo luận về Polkadot: Hướng dẫn sử dụng diễn đàn chính thức của Polkadot》