Khoảng một tháng, #Bitcoinđược thiết lập để bắt đầu nửa sau tiếp theo của mình. Tuy nhiên, tác giả tin rằng tầm nhìn của Satoshi Nakamoto - sự đồng thuận dễ dàng tiếp cận cho mọi người thông qua CPU - vẫn chưa được thực hiện. Liên quan đến điều này, cơ chế lặp đi lặp lại của Arweave có thể phù hợp hơn với tầm nhìn ban đầu của Nakamoto, với phiên bản 2.6 đại diện cho một bước quan trọng trong việc thực hiện mong đợi của ông. Phiên bản này mang lại những cải tiến đáng kể so với những người tiền nhiệm, nhằm mục tiêu:
Dựa trên các mục tiêu trên, cơ chế của phiên bản 2.6 đại khái như sau:
Biểu đồ 1: Sơ đồ cơ chế đồng thuận trong Phiên bản 2.6
Hãy làm quen với các thuật ngữ và khái niệm xuất hiện trong cơ chế này:
Dữ liệu Arweave: cũng được biết đến với tên gọi là “Mạng Weave.” Tất cả dữ liệu trong mạng được chia thành các khối dữ liệu riêng lẻ, gọi là Chunks (các khối giống như một “bức tường gạch” trong sơ đồ). Những khối này được phân phối đều khắp mạng Arweave và được địa chỉ hóa bằng cấu trúc cây Merkle (còn được gọi là Độ lệch Toàn cầu), cho phép xác định vị trí của bất kỳ khối dữ liệu nào trong Mạng Weave.
Chunk: Mỗi khối dữ liệu thường có kích thước là 256 KB. Các thợ đào phải đóng gói và băm các khối dữ liệu tương ứng để giành quyền đào, chứng minh rằng họ lưu trữ bản sao của dữ liệu trong quá trình đào SPoRA.
Phân vùng: “Phân vùng” là một khái niệm mới được giới thiệu trong phiên bản 2.6. Mỗi phân vùng bao gồm 3.6TB dữ liệu. Các phân vùng được đánh số từ đầu của Mạng Weave (chỉ số 0) lên đến tổng số phân vùng bao phủ toàn bộ Mạng Weave.
Phạm vi thu hồi: Phạm vi thu hồi là một khái niệm mới khác trong phiên bản 2.6. Nó đại diện cho một loạt các khối dữ liệu liên tục (Chunks) trong Mạng Weave, bắt đầu từ một offset cụ thể và có độ dài 100MB. Với mỗi khối dữ liệu là 256 KB, một Phạm vi thu hồi bao gồm 400 khối dữ liệu. Trong cơ chế này, có hai Phạm vi thu hồi, như được giải thích chi tiết bên dưới.
Giải pháp tiềm năng: Mỗi khối dữ liệu 256KB trong Phạm vi Gọi lại được coi là một giải pháp tiềm năng để giành quyền khai thác mỏ. Là một phần của quá trình khai thác mỏ, mỗi khối dữ liệu được băm để kiểm tra xem nó có đáp ứng yêu cầu khó khăn của mạng hay không. Nếu thành công, người đào được quyền khai thác mỏ và nhận phần thưởng khai thác mỏ. Nếu không thành công, người đào tiếp tục cố gắng với khối 256KB tiếp theo trong Phạm vi Gọi lại.
Chuỗi băm: Chuỗi băm là một bản cập nhật quan trọng trong phiên bản 2.6, thêm một đồng hồ được mã hóa vào SPoRA trước đó, giới hạn tốc độ băm tối đa. Chuỗi băm tạo ra một chuỗi các băm bằng cách liên tục băm một phần dữ liệu bằng cách sử dụng hàm SHA-256. Quá trình này không thể được song song hóa (dễ dàng đạt được với CPU cấp tiêu dùng), đạt được độ trễ 1 giây bằng cách thực hiện một số lượng xác định các thao tác băm liên tiếp.
Băm Khối: Sau một số lượng đủ lớn các phép toán băm liên tiếp (tức là sau một khoảng trễ 1 giây), Chuỗi Băm tạo ra một giá trị băm được coi là hợp lệ để khai thác. Đáng chú ý rằng băm khai thác là nhất quán trên tất cả các máy khai thác, và tất cả các máy khai thác đều có thể xác minh nó.
Bây giờ khi chúng tôi đã giới thiệu tất cả các thuật ngữ cần thiết, chúng ta có thể hiểu rõ hơn cách hoạt động của Phiên bản 2.6 bằng cách thảo luận về các chiến lược tối ưu để có được nó.
Mục tiêu tổng thể của Arweave đã được giới thiệu nhiều lần trước đó, đó là tối đa hóa số lần sao chép dữ liệu được lưu trữ trên mạng. Nhưng cần lưu trữ điều gì? Làm thế nào để lưu trữ nó? Có nhiều yêu cầu và tinh tế liên quan. Ở đây, chúng tôi sẽ thảo luận về cách thực hiện một chiến lược thực hành tốt nhất.
Bản sao vs Bản copy
Kể từ phiên bản 2.6, tôi thường xuyên gặp hai thuật ngữ trong các tài liệu kỹ thuật: Replicas và Copies. Cả hai khái niệm này đều có thể dịch thành "sao chép" trong tiếng Trung, nhưng thực tế, có sự khác biệt đáng kể giữa chúng, điều này cũng gây ra một số trở ngại cho tôi khi hiểu cơ chế. Để dễ hiểu, tôi ưa thích dịch Replicas thành "bản sao" và Copies thành "sao lưu".
Bản sao đề cập đến việc đơn giản là sao chép dữ liệu, nơi không có sự khác biệt giữa các bản sao lưu của cùng một dữ liệu.
Ngược lại, bản sao nhấn mạnh tính độc nhất vô nhị. Đó là việc lưu trữ dữ liệu sau khi đã trải qua quá trình duy nhất. Mạng Arweave khuyến khích việc lưu trữ bản sao thay vì chỉ là sao lưu đơn thuần.
Lưu ý: Trong phiên bản 2.7, cơ chế đồng thuận đã thay đổi thành SPoRes, viết tắt của Succinct Proofs of Replications, dựa trên việc lưu trữ bản sao. Tôi sẽ cung cấp thông tin giải thích thêm vào tương lai.
Đóng gói bản sao độc đáo
Các bản sao duy nhất rất quan trọng trong cơ chế Arweave. Các thợ đào phải đóng gói tất cả dữ liệu theo một định dạng cụ thể để tạo ra bản sao duy nhất của họ như một tiền đề để giành quyền đào.
Nếu bạn muốn chạy một nút mới và nghĩ về việc sao chép trực tiếp dữ liệu mà các thợ mỏ khác đã đóng gói, thì sẽ không hoạt động. Đầu tiên, bạn cần tải và đồng bộ hóa dữ liệu gốc từ Mạng Dệt Arweave (tất nhiên, bạn không muốn tải xuống tất cả, việc tải xuống chỉ một phần cũng khả thi, và bạn có thể thiết lập chính sách dữ liệu riêng để lọc ra dữ liệu rủi ro). Sau đó, sử dụng chức năng RandomX để đóng gói từng khối dữ liệu của dữ liệu gốc, biến chúng thành các giải pháp khai thác tiềm năng.
Quá trình đóng gói liên quan đến việc cung cấp một Chìa khóa Đóng gói cho hàm RandomX, cho phép nó tạo ra kết quả thông qua nhiều phép tính để đóng gói các khối dữ liệu ban đầu. Quá trình giải nén các khối dữ liệu đã được đóng gói cũng tương tự - cung cấp chìa khóa đóng gói và sử dụng kết quả được tạo ra thông qua nhiều phép tính để giải nén các khối dữ liệu.
Trong phiên bản 2.5, sao lưu Khóa Đóng gói là một băm SHA256 liên kết với chunk_offset (vị trí của khối dữ liệu, cũng được hiểu là tham số vị trí của khối dữ liệu) và tx_root (gốc giao dịch). Điều này đảm bảo rằng mỗi giải pháp đào mỏ được khai thác đến từ một bản sao duy nhất của các khối dữ liệu trong một khối cụ thể. Nếu một khối dữ liệu có nhiều bản sao lưu ở các vị trí khác nhau trong mạng bị hỏng, mỗi bản sao lưu cần được sao lưu riêng lẻ như một bản sao duy nhất.
Trong phiên bản 2.6, khóa sao lưu này được mở rộng thành một băm SHA256 liên kết với chunk_offset, tx_root và địa chỉ của miner (địa chỉ của người đào). Điều này có nghĩa là mỗi bản sao cũng là duy nhất cho mỗi địa chỉ khai thác.
Ưu điểm của việc lưu trữ bản sao đầy đủ
Thuật toán cho rằng các thợ đào nên xây dựng một bản sao hoàn toàn độc đáo thay vì các bản sao được sao chép một phần, điều này đảm bảo phân phối dữ liệu đồng đều trên toàn mạng.
Chúng ta nên hiểu điều này như thế nào? Hãy hiểu thông qua việc so sánh hai hình ảnh sau đây.
Đầu tiên, hãy giả sử rằng toàn bộ mạng lưới phân mảnh Arweave đã tạo ra tổng cộng 16 phân vùng dữ liệu.
Kịch bản 1:
Hình 2: Chiến lược “Clever” của Bob: Kịch bản Đầu tiên
Kịch bản thứ hai:
Bây giờ, hãy xem xét tình huống thứ hai. Do sắp xếp hai phạm vi thu hồi, một chiến lược tối ưu hơn là lưu trữ bản sao duy nhất của dữ liệu với nhiều vấn đề hơn. Điều này được minh họa trong Hình 3.
Hình 3: Chiến lược của Alice có ưu điểm lớn hơn
Vai trò của Phạm vi Thu hồi
Bạn có thể tự hỏi tại sao, trước phiên bản 2.5, một offset khối thu hồi duy nhất được băm ngẫu nhiên bởi một hàm để cho phép các thợ đào tìm kiếm và cung cấp chứng minh lưu trữ, trong khi ở phiên bản 2.6, nó băm một phạm vi thu hồi thay vì.
Lý do rất đơn giản: một dải gọi nhớ được tạo thành từ các khối dữ liệu liên tục, và cấu trúc này phục vụ một mục đích chính - giảm thiểu sự di chuyển của đầu đọc của ổ cứng cơ học (HDDs). Phương pháp tối ưu hóa vật lý này cho phép hiệu suất đọc của HDDs bằng với ổ cứng thể rắn (SSDs) đắt tiền hơn. Đó như là buộc một tay và một chân của một SSD; tất nhiên, nó vẫn có một lợi thế tốc độ nhất định bằng cách có thể truyền bốn dải gọi nhớ mỗi giây. Tuy nhiên, so với HDDs rẻ hơn, số lượng sẽ là yếu tố chính thúc đẩy sự lựa chọn của các thợ đào.
Bây giờ hãy thảo luận về việc xác minh một khối mới.
Để chấp nhận một khối mới, các nhà xác thực cần xác thực khối mới nhận được từ nhà sản xuất khối, điều này có thể được thực hiện bằng cách sử dụng mã băm khai thác được tạo ra của họ để xác minh mã băm khai thác của khối mới.
Nếu một người xác minh không ở đầu của chuỗi hash hiện tại, mỗi hash khai thác bao gồm 25 điểm kiểm tra 40 mili giây. Những điểm kiểm tra này là các kết quả liên tiếp của việc băm trong 40 mili giây, và chúng cùng nhau đại diện cho một khoảng thời gian một giây bắt đầu từ hash khai thác trước đó.
Trước khi lan truyền khối mới nhận được đến các nút khác, các người xác minh sẽ nhanh chóng hoàn tất việc xác minh 25 điểm kiểm tra đầu tiên trong vòng 40 mili giây. Nếu việc xác minh thành công, nó sẽ kích hoạt việc lan truyền khối và tiếp tục xác minh các điểm kiểm tra còn lại.
Các điểm kiểm tra đầy đủ được hoàn thành bằng cách xác minh tất cả các điểm kiểm tra còn lại. Sau 25 điểm kiểm tra đầu tiên, có 500 điểm kiểm tra xác minh, tiếp theo là 500 điểm kiểm tra xác minh khác, với khoảng cách tăng gấp đôi cho mỗi nhóm 500 điểm kiểm tra tiếp theo.
Trong khi chuỗi hash phải tiến hành một cách tuần tự trong việc tạo ra các hash khai thác, người xác minh có thể thực hiện xác minh hash khi xác minh các điểm kiểm tra, điều này có thể rút ngắn thời gian xác minh các khối và nâng cao hiệu suất.
Hình 4: Quy trình Xác minh của Chuỗi Băm
Hạt giống của Chuỗi Băm
Nếu một thợ đào hoặc nhóm đào có khả năng băm SHA256 nhanh hơn, chuỗi băm của họ có thể tiến xa hơn so với các nút khác trong mạng. Theo thời gian, ưu thế về tốc độ khối này có thể tích lũy thành một sự chênh lệch chuỗi băm đáng kể, gây ra các khối đã khai thác không đồng bộ với phần còn lại của các bộ xác thực. Điều này có thể dẫn đến một loạt các khối không kiểm soát và tổ chức lại.
Để giảm khả năng xảy ra lệch chuỗi hash như vậy, Arweave đồng bộ hóa chuỗi hash toàn cầu bằng cách sử dụng mã thông báo từ các khối lịch sử ở các khoảng cố định. Điều này định kỳ cung cấp các hạt giống mới cho chuỗi hash, đảm bảo đồng bộ hóa các chuỗi hash giữa các máy đào khác nhau với một khối được xác thực.
Khoảng thời gian cho các hạt chuỗi băm là mỗi 50 * 120 chuỗi băm được đào (50 đại diện cho số block, và 120 đại diện cho số chuỗi băm được đào trong một chu kỳ sản xuất block 2 phút) để chọn một block hạt mới. Điều này có nghĩa là các block hạt xuất hiện khoảng mỗi ~50 block Arweave, nhưng do sự biến đổi về thời gian block, các block hạt có thể xuất hiện sớm hơn hoặc muộn hơn một chút so với 50 block.
Hình 5: Phương pháp Tạo Ra Giống Hạt Chuỗi Hash
Nội dung trích từ quy định phiên bản 2.6 của tác giả cho thấy rằng Arweave đã triển khai các cơ chế tiêu thấp, phân tán hơn để vận hành toàn bộ mạng bắt đầu từ phiên bản 2.6. Tầm nhìn của Satoshi Nakamoto được thực hiện một cách thực tế trong Arweave.
Arweave 2.6: https://2-6-spec.arweave.dev/
Tuyên bố:
Bài viết này ban đầu có tiêu đề “Arweave 2.6 也许更符合中本聪的愿景” được sao chép từ [PermaDAO]. Tất cả bản quyền thuộc về tác giả gốc [Arweave Oasis]. Nếu bạn có bất kỳ ý kiến nào về việc tái bản, vui lòng liên hệ Học cửađội, đội sẽ xử lý nó càng sớm càng tốt.
Tuyên bố từ chối trách nhiệm: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ đại diện cho quan điểm cá nhân của tác giả và không hình thành bất kỳ lời khuyên đầu tư nào.
Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi có nêu rõ, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch là không được phép.
Khoảng một tháng, #Bitcoinđược thiết lập để bắt đầu nửa sau tiếp theo của mình. Tuy nhiên, tác giả tin rằng tầm nhìn của Satoshi Nakamoto - sự đồng thuận dễ dàng tiếp cận cho mọi người thông qua CPU - vẫn chưa được thực hiện. Liên quan đến điều này, cơ chế lặp đi lặp lại của Arweave có thể phù hợp hơn với tầm nhìn ban đầu của Nakamoto, với phiên bản 2.6 đại diện cho một bước quan trọng trong việc thực hiện mong đợi của ông. Phiên bản này mang lại những cải tiến đáng kể so với những người tiền nhiệm, nhằm mục tiêu:
Dựa trên các mục tiêu trên, cơ chế của phiên bản 2.6 đại khái như sau:
Biểu đồ 1: Sơ đồ cơ chế đồng thuận trong Phiên bản 2.6
Hãy làm quen với các thuật ngữ và khái niệm xuất hiện trong cơ chế này:
Dữ liệu Arweave: cũng được biết đến với tên gọi là “Mạng Weave.” Tất cả dữ liệu trong mạng được chia thành các khối dữ liệu riêng lẻ, gọi là Chunks (các khối giống như một “bức tường gạch” trong sơ đồ). Những khối này được phân phối đều khắp mạng Arweave và được địa chỉ hóa bằng cấu trúc cây Merkle (còn được gọi là Độ lệch Toàn cầu), cho phép xác định vị trí của bất kỳ khối dữ liệu nào trong Mạng Weave.
Chunk: Mỗi khối dữ liệu thường có kích thước là 256 KB. Các thợ đào phải đóng gói và băm các khối dữ liệu tương ứng để giành quyền đào, chứng minh rằng họ lưu trữ bản sao của dữ liệu trong quá trình đào SPoRA.
Phân vùng: “Phân vùng” là một khái niệm mới được giới thiệu trong phiên bản 2.6. Mỗi phân vùng bao gồm 3.6TB dữ liệu. Các phân vùng được đánh số từ đầu của Mạng Weave (chỉ số 0) lên đến tổng số phân vùng bao phủ toàn bộ Mạng Weave.
Phạm vi thu hồi: Phạm vi thu hồi là một khái niệm mới khác trong phiên bản 2.6. Nó đại diện cho một loạt các khối dữ liệu liên tục (Chunks) trong Mạng Weave, bắt đầu từ một offset cụ thể và có độ dài 100MB. Với mỗi khối dữ liệu là 256 KB, một Phạm vi thu hồi bao gồm 400 khối dữ liệu. Trong cơ chế này, có hai Phạm vi thu hồi, như được giải thích chi tiết bên dưới.
Giải pháp tiềm năng: Mỗi khối dữ liệu 256KB trong Phạm vi Gọi lại được coi là một giải pháp tiềm năng để giành quyền khai thác mỏ. Là một phần của quá trình khai thác mỏ, mỗi khối dữ liệu được băm để kiểm tra xem nó có đáp ứng yêu cầu khó khăn của mạng hay không. Nếu thành công, người đào được quyền khai thác mỏ và nhận phần thưởng khai thác mỏ. Nếu không thành công, người đào tiếp tục cố gắng với khối 256KB tiếp theo trong Phạm vi Gọi lại.
Chuỗi băm: Chuỗi băm là một bản cập nhật quan trọng trong phiên bản 2.6, thêm một đồng hồ được mã hóa vào SPoRA trước đó, giới hạn tốc độ băm tối đa. Chuỗi băm tạo ra một chuỗi các băm bằng cách liên tục băm một phần dữ liệu bằng cách sử dụng hàm SHA-256. Quá trình này không thể được song song hóa (dễ dàng đạt được với CPU cấp tiêu dùng), đạt được độ trễ 1 giây bằng cách thực hiện một số lượng xác định các thao tác băm liên tiếp.
Băm Khối: Sau một số lượng đủ lớn các phép toán băm liên tiếp (tức là sau một khoảng trễ 1 giây), Chuỗi Băm tạo ra một giá trị băm được coi là hợp lệ để khai thác. Đáng chú ý rằng băm khai thác là nhất quán trên tất cả các máy khai thác, và tất cả các máy khai thác đều có thể xác minh nó.
Bây giờ khi chúng tôi đã giới thiệu tất cả các thuật ngữ cần thiết, chúng ta có thể hiểu rõ hơn cách hoạt động của Phiên bản 2.6 bằng cách thảo luận về các chiến lược tối ưu để có được nó.
Mục tiêu tổng thể của Arweave đã được giới thiệu nhiều lần trước đó, đó là tối đa hóa số lần sao chép dữ liệu được lưu trữ trên mạng. Nhưng cần lưu trữ điều gì? Làm thế nào để lưu trữ nó? Có nhiều yêu cầu và tinh tế liên quan. Ở đây, chúng tôi sẽ thảo luận về cách thực hiện một chiến lược thực hành tốt nhất.
Bản sao vs Bản copy
Kể từ phiên bản 2.6, tôi thường xuyên gặp hai thuật ngữ trong các tài liệu kỹ thuật: Replicas và Copies. Cả hai khái niệm này đều có thể dịch thành "sao chép" trong tiếng Trung, nhưng thực tế, có sự khác biệt đáng kể giữa chúng, điều này cũng gây ra một số trở ngại cho tôi khi hiểu cơ chế. Để dễ hiểu, tôi ưa thích dịch Replicas thành "bản sao" và Copies thành "sao lưu".
Bản sao đề cập đến việc đơn giản là sao chép dữ liệu, nơi không có sự khác biệt giữa các bản sao lưu của cùng một dữ liệu.
Ngược lại, bản sao nhấn mạnh tính độc nhất vô nhị. Đó là việc lưu trữ dữ liệu sau khi đã trải qua quá trình duy nhất. Mạng Arweave khuyến khích việc lưu trữ bản sao thay vì chỉ là sao lưu đơn thuần.
Lưu ý: Trong phiên bản 2.7, cơ chế đồng thuận đã thay đổi thành SPoRes, viết tắt của Succinct Proofs of Replications, dựa trên việc lưu trữ bản sao. Tôi sẽ cung cấp thông tin giải thích thêm vào tương lai.
Đóng gói bản sao độc đáo
Các bản sao duy nhất rất quan trọng trong cơ chế Arweave. Các thợ đào phải đóng gói tất cả dữ liệu theo một định dạng cụ thể để tạo ra bản sao duy nhất của họ như một tiền đề để giành quyền đào.
Nếu bạn muốn chạy một nút mới và nghĩ về việc sao chép trực tiếp dữ liệu mà các thợ mỏ khác đã đóng gói, thì sẽ không hoạt động. Đầu tiên, bạn cần tải và đồng bộ hóa dữ liệu gốc từ Mạng Dệt Arweave (tất nhiên, bạn không muốn tải xuống tất cả, việc tải xuống chỉ một phần cũng khả thi, và bạn có thể thiết lập chính sách dữ liệu riêng để lọc ra dữ liệu rủi ro). Sau đó, sử dụng chức năng RandomX để đóng gói từng khối dữ liệu của dữ liệu gốc, biến chúng thành các giải pháp khai thác tiềm năng.
Quá trình đóng gói liên quan đến việc cung cấp một Chìa khóa Đóng gói cho hàm RandomX, cho phép nó tạo ra kết quả thông qua nhiều phép tính để đóng gói các khối dữ liệu ban đầu. Quá trình giải nén các khối dữ liệu đã được đóng gói cũng tương tự - cung cấp chìa khóa đóng gói và sử dụng kết quả được tạo ra thông qua nhiều phép tính để giải nén các khối dữ liệu.
Trong phiên bản 2.5, sao lưu Khóa Đóng gói là một băm SHA256 liên kết với chunk_offset (vị trí của khối dữ liệu, cũng được hiểu là tham số vị trí của khối dữ liệu) và tx_root (gốc giao dịch). Điều này đảm bảo rằng mỗi giải pháp đào mỏ được khai thác đến từ một bản sao duy nhất của các khối dữ liệu trong một khối cụ thể. Nếu một khối dữ liệu có nhiều bản sao lưu ở các vị trí khác nhau trong mạng bị hỏng, mỗi bản sao lưu cần được sao lưu riêng lẻ như một bản sao duy nhất.
Trong phiên bản 2.6, khóa sao lưu này được mở rộng thành một băm SHA256 liên kết với chunk_offset, tx_root và địa chỉ của miner (địa chỉ của người đào). Điều này có nghĩa là mỗi bản sao cũng là duy nhất cho mỗi địa chỉ khai thác.
Ưu điểm của việc lưu trữ bản sao đầy đủ
Thuật toán cho rằng các thợ đào nên xây dựng một bản sao hoàn toàn độc đáo thay vì các bản sao được sao chép một phần, điều này đảm bảo phân phối dữ liệu đồng đều trên toàn mạng.
Chúng ta nên hiểu điều này như thế nào? Hãy hiểu thông qua việc so sánh hai hình ảnh sau đây.
Đầu tiên, hãy giả sử rằng toàn bộ mạng lưới phân mảnh Arweave đã tạo ra tổng cộng 16 phân vùng dữ liệu.
Kịch bản 1:
Hình 2: Chiến lược “Clever” của Bob: Kịch bản Đầu tiên
Kịch bản thứ hai:
Bây giờ, hãy xem xét tình huống thứ hai. Do sắp xếp hai phạm vi thu hồi, một chiến lược tối ưu hơn là lưu trữ bản sao duy nhất của dữ liệu với nhiều vấn đề hơn. Điều này được minh họa trong Hình 3.
Hình 3: Chiến lược của Alice có ưu điểm lớn hơn
Vai trò của Phạm vi Thu hồi
Bạn có thể tự hỏi tại sao, trước phiên bản 2.5, một offset khối thu hồi duy nhất được băm ngẫu nhiên bởi một hàm để cho phép các thợ đào tìm kiếm và cung cấp chứng minh lưu trữ, trong khi ở phiên bản 2.6, nó băm một phạm vi thu hồi thay vì.
Lý do rất đơn giản: một dải gọi nhớ được tạo thành từ các khối dữ liệu liên tục, và cấu trúc này phục vụ một mục đích chính - giảm thiểu sự di chuyển của đầu đọc của ổ cứng cơ học (HDDs). Phương pháp tối ưu hóa vật lý này cho phép hiệu suất đọc của HDDs bằng với ổ cứng thể rắn (SSDs) đắt tiền hơn. Đó như là buộc một tay và một chân của một SSD; tất nhiên, nó vẫn có một lợi thế tốc độ nhất định bằng cách có thể truyền bốn dải gọi nhớ mỗi giây. Tuy nhiên, so với HDDs rẻ hơn, số lượng sẽ là yếu tố chính thúc đẩy sự lựa chọn của các thợ đào.
Bây giờ hãy thảo luận về việc xác minh một khối mới.
Để chấp nhận một khối mới, các nhà xác thực cần xác thực khối mới nhận được từ nhà sản xuất khối, điều này có thể được thực hiện bằng cách sử dụng mã băm khai thác được tạo ra của họ để xác minh mã băm khai thác của khối mới.
Nếu một người xác minh không ở đầu của chuỗi hash hiện tại, mỗi hash khai thác bao gồm 25 điểm kiểm tra 40 mili giây. Những điểm kiểm tra này là các kết quả liên tiếp của việc băm trong 40 mili giây, và chúng cùng nhau đại diện cho một khoảng thời gian một giây bắt đầu từ hash khai thác trước đó.
Trước khi lan truyền khối mới nhận được đến các nút khác, các người xác minh sẽ nhanh chóng hoàn tất việc xác minh 25 điểm kiểm tra đầu tiên trong vòng 40 mili giây. Nếu việc xác minh thành công, nó sẽ kích hoạt việc lan truyền khối và tiếp tục xác minh các điểm kiểm tra còn lại.
Các điểm kiểm tra đầy đủ được hoàn thành bằng cách xác minh tất cả các điểm kiểm tra còn lại. Sau 25 điểm kiểm tra đầu tiên, có 500 điểm kiểm tra xác minh, tiếp theo là 500 điểm kiểm tra xác minh khác, với khoảng cách tăng gấp đôi cho mỗi nhóm 500 điểm kiểm tra tiếp theo.
Trong khi chuỗi hash phải tiến hành một cách tuần tự trong việc tạo ra các hash khai thác, người xác minh có thể thực hiện xác minh hash khi xác minh các điểm kiểm tra, điều này có thể rút ngắn thời gian xác minh các khối và nâng cao hiệu suất.
Hình 4: Quy trình Xác minh của Chuỗi Băm
Hạt giống của Chuỗi Băm
Nếu một thợ đào hoặc nhóm đào có khả năng băm SHA256 nhanh hơn, chuỗi băm của họ có thể tiến xa hơn so với các nút khác trong mạng. Theo thời gian, ưu thế về tốc độ khối này có thể tích lũy thành một sự chênh lệch chuỗi băm đáng kể, gây ra các khối đã khai thác không đồng bộ với phần còn lại của các bộ xác thực. Điều này có thể dẫn đến một loạt các khối không kiểm soát và tổ chức lại.
Để giảm khả năng xảy ra lệch chuỗi hash như vậy, Arweave đồng bộ hóa chuỗi hash toàn cầu bằng cách sử dụng mã thông báo từ các khối lịch sử ở các khoảng cố định. Điều này định kỳ cung cấp các hạt giống mới cho chuỗi hash, đảm bảo đồng bộ hóa các chuỗi hash giữa các máy đào khác nhau với một khối được xác thực.
Khoảng thời gian cho các hạt chuỗi băm là mỗi 50 * 120 chuỗi băm được đào (50 đại diện cho số block, và 120 đại diện cho số chuỗi băm được đào trong một chu kỳ sản xuất block 2 phút) để chọn một block hạt mới. Điều này có nghĩa là các block hạt xuất hiện khoảng mỗi ~50 block Arweave, nhưng do sự biến đổi về thời gian block, các block hạt có thể xuất hiện sớm hơn hoặc muộn hơn một chút so với 50 block.
Hình 5: Phương pháp Tạo Ra Giống Hạt Chuỗi Hash
Nội dung trích từ quy định phiên bản 2.6 của tác giả cho thấy rằng Arweave đã triển khai các cơ chế tiêu thấp, phân tán hơn để vận hành toàn bộ mạng bắt đầu từ phiên bản 2.6. Tầm nhìn của Satoshi Nakamoto được thực hiện một cách thực tế trong Arweave.
Arweave 2.6: https://2-6-spec.arweave.dev/
Tuyên bố:
Bài viết này ban đầu có tiêu đề “Arweave 2.6 也许更符合中本聪的愿景” được sao chép từ [PermaDAO]. Tất cả bản quyền thuộc về tác giả gốc [Arweave Oasis]. Nếu bạn có bất kỳ ý kiến nào về việc tái bản, vui lòng liên hệ Học cửađội, đội sẽ xử lý nó càng sớm càng tốt.
Tuyên bố từ chối trách nhiệm: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ đại diện cho quan điểm cá nhân của tác giả và không hình thành bất kỳ lời khuyên đầu tư nào.
Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi có nêu rõ, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch là không được phép.