Một bài viết để hiểu việc tạo ra chuỗi đèn hiệu
Tác giả |Ben Edgington
Tác giả |
Đối với Ethereum 2.0,Mạng thử nghiệm MedallaMạng thử nghiệm Medalla
Đã ra mắt vào ngày 4 tháng 8, đây có thể là buổi diễn tập chính thức duy nhất của chúng tôi trước khi phát hành Ethereum 2.0 vào nửa cuối năm nay.Eth2 annotated specCơ chế tạo ra Eth2 hơi phức tạp, tạo ra là một quá trình trong đó một hệ thống chuỗi khối đưa sức sống vào chính nó. Tôi sẽ giải thích nó một cách chính xác nhất có thể bằng ngôn ngữ đơn giản. Đối với một lời giải thích thực sự kỹ thuật, người đọc có thể tìm thấy
Xem ghi chú của tôi ở trên.
Trong phần sau, "sự kiện ban đầu" đề cập đến thời gian chính xác khi chuỗi đèn hiệu khởi động và bắt đầu xử lý bằng chứng và khối. Đó cũng là lúc slot 0 epoch 0 bắt đầu.
(Nếu độc giả muốn xem tổng quan, có thể bỏ qua trực tiếp phần "Hai trường hợp sáng tạo" bên dưới)
tiền gửi xác nhậnLaunchpadĐầu tiên, một chút kiến thức nền tảng mà người đọc cần biết đó là người xác thực cần gửi tiền ký quỹ vào hợp đồng trên chuỗi khối Eth1 trước khi tham gia Eth2. Đối với mỗi trình xác thực Eth2, họ cần gửi 32 ETH và một số dữ liệu khác vào hợp đồng. Ví dụ, độc giả có thể truy cập vào
Trang web gửi tiền gửi và dữ liệu đến mạng thử nghiệm Medalla. Hãy nhớ rằng Medalla hiện đang sử dụng ETH từ mạng thử nghiệm Goerli! Không gửi ETH mainnet cho hợp đồng. Tất nhiên, khi chuỗi đèn hiệu thực sự được phát hành, chúng tôi sẽ sử dụng ETH của mạng chính.
Tiếp theo, chúng tôi chỉ quan tâm đến các khoản tiền gửi hợp lệ: một khoản tiền gửi không dưới 32 ETH hoặc nhiều khoản tiền gửi thuộc cùng một trình xác nhận có tổng số tiền không dưới 32 ETH, để xác minh dữ liệu bổ sung (chữ ký mật mã ). Mọi khoản tiền gửi không hợp lệ hoặc không đủ sẽ bị bỏ qua trong Genesis
nút đèn hiệu
Trước khi tạo, chỉ các nút đèn hiệu hoạt động trên chuỗi Eth2; sau khi tạo, trình xác minh sẽ hoạt động ngay lập tức. Các nút báo hiệu duy trì trạng thái của hệ thống và giao tiếp với nhau trong mạng ngang hàng.
Do đó, trước khi thế giới được tạo ra, đã có một số lượng lớn các nút đèn hiệu theo dõi chuỗi khối Ethereum 1.0 và chú ý đến các khoản tiền gửi hợp lệ trên hợp đồng tiền gửi. Họ không cần phải theo dõi nó 24 giờ một ngày, vì các khối Eth1 được đánh dấu thời gian, vì vậy các nút có thể cập nhật bất kỳ lúc nào trước khi hình thành.14 * 1024Giờ đây, mọi người đều biết rằng các khối Eth1 có thể được khôi phục và thay đổi suy nghĩ của họ về giao dịch nào là hợp lệ. Đây là lý do tại sao bạn cần đợi 30 khối khi chuyển ETH trên sàn giao dịch. Phạm vi khôi phục thường rất nhỏ - khoảng một hoặc hai khối; nhưng trong trường hợp bị tấn công mạng, phạm vi khôi phục có thể trở nên rất lớn. Để tránh tình trạng này trên Eth2 càng nhiều càng tốt, chúng tôi rất cẩn thận giữ
Giây chậm trễ, khoảng 4 giờ. Tôi gọi đây là khoảng cách đồng bộ của Eth1 (Eth1 follow distance)
khi? Ai?
Hai câu hỏi về genesis "khi nào?" và "ai?": khi nào nó sẽ bắt đầu và ai sẽ ở trong đội quân xác nhận khối genesis. Câu trả lời cho hai câu hỏi này xác định trạng thái ban đầu của chuỗi đèn hiệu, từ đó tất cả các trạng thái khác được bắt nguồn.
Quy trình chung như sau:
Theo dõi tiền gửi trên chuỗi khối Eth1
Khi đủ thời gian trôi qua và khoản tiền gửi đạt đến một số tiền nhất định, trạng thái gốc được tạo
Hai ngày sau, bắt đầu chuỗi khối tại thời điểm ban đầu
Ở bước 2, chúng ta cần đặc biệt chú ý 2 điểm khi tìm block đầu tiên trên Eth1:
liệu có đủ tiền gửi hay không;
Có sớm quá không.
Khối đầu tiên đáp ứng hai điều kiện này sẽ được đặt ở trạng thái gốc.
MIN_GENESIS_TIMEThời gian và vai trò bị ảnh hưởng bởi ba cài đặt tham số chính sau đây.1596546000là thời gian sớm nhất mà sự kiện sáng tạo có thể xảy ra. Đối với Medalla, đó là
GENESIS_DELAYGiờ Unix——giờ UTC 13:00:00 ngày 4 tháng 8 năm 2020, áp dụng thông số kỹ thuật RFC2822.172800Đúng
MIN_GENESIS_ACTIVE_VALIDATOR_COUNTgiây, chính xác là 48 giờ. Đây là khoảng thời gian giữa việc tạo ra trạng thái genesis và bắt đầu chuỗi khối và các sự kiện genesis. Sự chậm trễ này là để cho phép các nhóm khách hàng ghi trạng thái gốc vào các nút báo hiệu của họ để họ không còn cần phải tuân theo chuỗi khối Eth1 ngay cả khi họ không chạy các nút trình xác thực. Điều này cũng dành thời gian để tổ chức các luồng sự kiện khởi đầu chung và các sự kiện gặp gỡ.16384là số lượng trình xác thực hoạt động tối thiểu mà chúng tôi cần trong hợp đồng tiền gửi Eth1 trước khi tạo trạng thái gốc. Trên testnet Medalla (và mainnet), tham số này là
người xác minh.
Hai hoàn cảnh của sự sáng tạo
Trạng thái gốc dựa trên khối Eth1 đầu tiên đáp ứng hai điều kiện sau:
Khối Eth1 đầu tiên dựa trên trạng thái gốc cần phải đáp ứng hai điều kiện sau:
Ít nhất 16384 (MIN_GENESIS_ACTIVE_VALIDATOR_COUNT) trình xác thực đã đăng ký trên khối này hoặc các khối trước đó; và
Dấu thời gian của nó sẽ không quá sớm (không sớm hơn MIN_GENESIS_TIME – GENESIS_DELAY).
Theo thứ tự đáp ứng hai yêu cầu này, quá trình tạo sẽ tiến hành theo hai trường hợp sau:
Số lượng tiền gửi được đáp ứng đầu tiên
Trong trường hợp này, điều kiện 1 được thỏa mãn trước. Đủ tiền gửi chúng tôi đã nhận được trước thời điểm sáng tạo sớm nhất.
Thời điểm mạng thử nghiệm Medalla trong khoảng từ MIN_GENESIS_TIME – GENESIS_DELAY là Chủ Nhật, ngày 2 tháng 8, 1300 UTC.
Khối bắt đầu của chúng tôi là khối đầu tiên trên Eth1 được khai thác sau thời gian này, tức là được khai thác lúc 13:00:05 (5 giây sau 1 giờ chiều).
Nếu số tiền gửi hợp lệ nhận được theo hợp đồng tiền gửi cho khối này đạt hoặc vượt quá 16384, thì tất cả các khoản tiền gửi nhận được cho đến nay sẽ được đưa vào trạng thái ban đầu. Do đó, số lượng trình xác nhận có thể cao hơn nhiều so với 16384 (trên mạng thử nghiệm Altona, chúng tôi đã đặt MIN_GENESIS_ACTIVE_VALIDATOR_COUNT thành 640, nhưng hóa ra lại có 685 trình xác nhận gốc)
Khối Eth1 này bắt đầu tính toán trạng thái tạo và sự kiện tạo Medalla sẽ bắt đầu đúng 48 giờ sau dấu thời gian của khối. Trong ví dụ này, sẽ là 13:00:05 vào Thứ Ba, ngày 4 tháng 8.
Lưu ý rằng chúng tôi không thực sự biết trạng thái nguồn gốc cho đến 4 giờ sau do khoảng cách đồng bộ hóa Eth. Tức là, trong trường hợp này, chúng ta biết trạng thái ban đầu của Medalla vào Chủ Nhật, ngày 2 tháng 8 lúc 17:00 UTC.
tóm tắt
tóm tắt
Sự kiện khởi tạo sẽ bắt đầu vài giây sau thời điểm khởi tạo sớm nhất nếu số tiền gửi đáp ứng yêu cầu trước. Trạng thái ban đầu bao gồm tất cả các trình xác thực đã đăng ký 48 giờ trước thời điểm này.
2. Dấu thời gian đáp ứng điều kiện sớm hơn số tiền gửi
Điều này xảy ra khi điều kiện 2 được đáp ứng trước. Số lượng tiền gửi tăng chậm và không đạt được số tiền hiệu dụng tối thiểu trong thời gian định trước.
Trong trường hợp này, khối Eth1 đóng gói khoản tiền gửi thứ 16384 trở thành khối bắt đầu. Chúng tôi cho rằng khối này đã được khai thác vào Thứ Tư, ngày 5 tháng 8 lúc 12:34:56 UTC.
Bây giờ, trạng thái khối sẽ chứa 16384 trình xác thực và bất kỳ khoản tiền gửi hợp lệ nào khác trong khối đó. Do đó, nếu khối đó chứa nhiều khoản tiền gửi, thì sẽ có nhiều trình xác nhận hơn số tiền gửi tối thiểu.
Thời gian hình thành sẽ là dấu thời gian của khối cộng với 48 giờ. Trong ví dụ này, Thứ Sáu, ngày 7 tháng 8 lúc 12:34:56 UTC.
Ngoài ra, do khoảng cách đồng bộ hóa Eth1, chúng tôi không biết trạng thái hình thành hoặc thời gian hình thành cho đến 4 giờ sau khi khối Eth1 này được khai thác.
tóm tắt
Nếu tiền gửi tăng chậm, thì sự kiện khởi tạo sẽ bắt đầu sau 48 giờ sau khi khối Eth1 chứa tiền gửi thứ 16384 được khai thác. Trạng thái gốc chứa 16834 trình xác thực, cộng với một số trình xác thực khác trong cùng một khối Eth 1.
Tóm lại là
Tóm lại là
Bài báo được viết đến đây, bạn đã hiểu tình hình cơ bản của việc tạo ra chuỗi đèn hiệu chưa?
Mong được gặp tất cả các bạn tại Medalla!
Tuyên bố miễn trừ trách nhiệm: Công việc dịch thuật của ECN nhằm mục đích cung cấp thông tin và tài nguyên học tập chất lượng cao cho cộng đồng Ethereum Trung Quốc. Bản quyền của bài viết thuộc về tác giả gốc. Các bản in lại phải ghi rõ nguồn của văn bản gốc và ethereum.cn. Về lâu dài tái bản, vui lòng liên hệ ethereumcn@gmail.com Ủy quyền.


