Khi tôi lần đầu tiên theo dõi đường thực thi của Dusk từ đầu đến cuối, điều khiến tôi dừng lại không phải là quyền riêng tư, không phải nhãn tuân thủ, và thậm chí không phải sự cuối cùng của sự giải quyết. Đó là số lượng công việc mà hệ thống khăng khăng phải làm trước khi cho phép bất cứ điều gì được tính.

Hầu hết các ngăn xếp mà tôi đã xem xét trong nhiều năm qua tối ưu hóa khoảnh khắc thực thi. Nếu mã chạy thành công, hệ thống coi đó là tiến bộ. Nếu nó thất bại, hệ thống ghi lại sự thất bại, phơi bày nó, và cho phép công cụ, người điều hành, và quản trị xử lý các hậu quả. Thực thi là cổng, sự giải quyết là hình thức.

Dusk đảo ngược thứ tự đó theo cách cảm thấy có chủ đích hơn là chỉ mang tính hình thức. Thực thi là biểu đạt, nhưng nó không mang tính quyền lực. Quyền lực nằm sau một bộ lọc xác minh trước, và bộ lọc đó không phải là tùy chọn.

Lựa chọn thiết kế là tinh tế nhưng có cấu trúc. Dusk biến xác minh trước thành một bộ lọc thanh toán, không phải là một tính năng tiện lợi cho nhà phát triển. Sự khác biệt đó quan trọng dưới áp lực.

Trong nhiều môi trường, một giao dịch thực thi, tạo ra một sự chuyển đổi trạng thái, và chỉ sau đó chúng ta mới hỏi liệu sự chuyển đổi đó có nên được tin tưởng hay không. Các nhật ký được phân tích, các quy tắc được tái tạo, độ đủ điều kiện được kiểm tra lại bởi các hệ thống bên ngoài, và các giải thích được tập hợp khi các câu hỏi xuất hiện. Sổ cái trở thành một hỗn hợp của các kết quả hợp lệ và các nỗ lực không hợp lệ, và gánh nặng của sự phân tách được đẩy ra bên ngoài vào các hoạt động.

Tôi đã chứng kiến mô hình đó già đi trong sản xuất. Nó hoạt động khi mới, khi quy mô thấp và ngữ cảnh vẫn còn tươi mới. Nó xuống cấp sau đó, khi khối lượng tăng và trí nhớ phai nhạt. Chi phí không xuất hiện rõ ràng trong các chỉ số thông lượng. Nó xuất hiện trong các cuộc kiểm toán, đối chiếu, hàng đợi ngoại lệ và các lớp xem xét của con người mà phát triển một cách yên lặng xung quanh giao thức.

Ngăn xếp của Dusk gợi ý một giả định hành vi khác. Các kết quả không hợp lệ không nên trở thành các hiện vật vận hành chút nào.

Tại trung tâm của điều này là ranh giới thanh toán DuskDS. Không phải như một lớp hiệu suất, mà là như một lớp đủ điều kiện. Các lớp thực thi có thể tạo ra các kết quả ứng viên, nhưng trước khi những kết quả đó trở thành trạng thái, chúng phải vượt qua các cổng quy tắc, các kiểm tra đủ điều kiện và các ràng buộc giao thức được thực thi tại chính ranh giới.

Bộ lọc Kiểm Tra Trước tại DuskDS: Chỉ Các Kết Quả Đủ Điều Kiện Trở Thành Trạng Thái

Điều này không được định hình như một lưới an toàn. Nó được định hình như một sự từ chối.

Nếu một kết quả không thỏa mãn quy tắc đặt ra vào thời điểm đó, nó sẽ không được thanh toán. Nó không quay trở lại thành một thất bại đã ghi nhận. Nó không trở thành tín hiệu cho bot hoặc nhà phân tích. Nó đơn giản không gia nhập lịch sử. Sổ cái ghi lại các kết quả đủ điều kiện, không phải các nỗ lực đã thử.

Điều đó thay đổi hành vi hệ thống nhiều hơn những gì hầu hết mọi người mong đợi.

Khi thất bại được ghi lại, các tác nhân tối ưu hóa xung quanh thất bại. Họ kiểm tra các rìa, đo lường các mẫu từ chối, mô hình hành vi thử lại và xây dựng các chiến lược phụ thuộc vào cách hệ thống rò rỉ các nỗ lực không hợp lệ. Theo thời gian, mạng học hỏi từ tiếng ồn. Động lực phí, mẫu tắc nghẽn và chiến lược bot tất cả bắt đầu kết hợp thực thi thất bại như dữ liệu có thể sử dụng.

Khi thất bại được lọc ra trước khi thanh toán, vòng phản hồi đó không bao giờ hình thành.

Từ góc độ giao thức, điều này giảm bề mặt diễn giải. Có ít hiện vật hơn cần giải thích sau này. Từ góc độ vận hành, nó giảm tải xử lý ngoại lệ. Có ít mục hơn cần được phân loại, miễn trừ, thử lại hoặc biện minh nhiều tháng sau đó.

Tác động Vận hành của Lọc Trước Thanh toán lên Bề mặt Ngoại lệ

Điều quan trọng ở đây là thời gian. Dusk trả chi phí xác minh sớm, không muộn.

Kiểm tra trước thường được mô tả như là chi phí phát sinh. Các kiểm tra bổ sung, các ràng buộc bổ sung, các cổng bổ sung. Trong một câu chuyện tập trung vào nhà phát triển, nó nghe có vẻ như là ma sát. Nhưng trong một câu chuyện vận hành, đó là sự chuyển giao chi phí. Bạn hoặc trả tiền cho logic giao thức một lần, một cách xác định, hoặc bạn trả tiền cho các hoạt động liên tục, một cách cảm xúc, và dưới áp lực thời gian.

Tôi đã tham gia đủ các cuộc đánh giá sau sự cố để biết bên nào tốn kém hơn.

Bộ lọc này cũng định hình lại cách các lớp thực thi được phép phát triển. Với DuskEVM trong ngăn xếp, các nhà phát triển vẫn có được công cụ quen thuộc và môi trường hợp đồng biểu đạt. Solidity hoạt động. Các hợp đồng được triển khai. Logic kết hợp. Nhưng thành công trong thực thi bị hạ cấp từ sự thật cuối cùng xuống kết quả tạm thời.

Thực thi đưa ra đề xuất. Bộ lọc thanh toán xử lý.

Sự tách biệt đó giới hạn mức độ hành vi ứng dụng có thể cứng hóa thành thực tại sổ cái. Một hợp đồng có thể hợp lệ ở cấp bytecode và vẫn không đáp ứng đủ điều kiện tại ranh giới thanh toán. Giao thức được phép nói không mà không cần phải có sân khấu hoàn trả hoặc diễn giải quản trị sau này.

Dưới áp lực, điều này quan trọng.

Các cuộc kiểm toán hiếm khi diễn ra trong điều kiện lý tưởng. Chúng diễn ra với các nhật ký không đầy đủ, các đội thay đổi và các động lực chuyển dịch. Các hệ thống phụ thuộc vào việc tái tạo lý do tại sao điều gì đó lại được chấp nhận vào thời điểm thực thi có xu hướng tích lũy các lớp diễn giải. Các nhà đánh giá khác nhau đạt đến các kết luận khác nhau. Quản trị trở thành một trọng tài ngữ nghĩa.

Một bộ lọc xác minh trước loại bỏ nhiều cuộc tranh luận ngữ nghĩa đó trước khi chúng trở thành khả thi. Quy tắc chấp nhận được áp dụng tại ranh giới, một lần, dưới sự kiểm soát của giao thức. Các nhà đánh giá sau này không tái tạo ý định. Họ đang xác nhận đủ điều kiện.

Điều này không miễn phí.

Việc xác minh trước làm cho một số loại phát triển khó khăn hơn. Bạn không thể dựa vào thực thi lỏng lẻo và xử lý sau nghiêm ngặt. Bạn không thể coi sổ cái như một bãi cát của các nỗ lực. Các nhà phát triển phải thiết kế với sự đủ điều kiện trong tâm trí, không chỉ thành công trong thực thi. Một số mẫu mà sẽ được dung thứ tạm thời ở nơi khác không bao giờ vượt qua bộ lọc ở đây.

Điều đó sẽ cảm thấy hạn chế đối với các đội tối ưu hóa cho sự lặp lại nhanh chóng trong sản xuất. Nó giảm không gian cho sự ứng biến hành vi. Nó tăng cường kỷ luật thời gian thiết kế. Nó buộc sự phù hợp giữa logic ứng dụng và quy tắc giao thức sớm hơn nhiều nhà phát triển ưa thích.

Thị trường không phải lúc nào cũng thưởng cho điều đó sớm.

Tốc độ, khả năng kết hợp và tính cho phép dễ chứng minh hơn là chấp nhận đã lọc. Một chuỗi đầy hoạt động rõ ràng trông có vẻ sống động. Một chuỗi lặng lẽ loại trừ hành vi không hợp lệ trông có vẻ yên tĩnh. Yên tĩnh thường bị hiểu nhầm là yếu đuối khi thực tế là sự chọn lọc.

Nhưng cơ sở hạ tầng không chỉ được đánh giá tại tốc độ ra mắt. Nó được đánh giá vào thời điểm kiểm toán, thời điểm tranh chấp và thời điểm thất bại. Đó là nơi xác minh trước như một bộ lọc thanh toán ngừng nhìn có vẻ bảo thủ và bắt đầu nhìn thực tế.

Những gì tôi thấy trong cách tiếp cận của Dusk không phải là một sự ám ảnh với việc chặn lỗi. Đó là một cố gắng để giữ cho sự mơ hồ không trở thành trạng thái. Hệ thống ít quan tâm đến việc phản ứng tốt với các kết quả không hợp lệ hơn là ngăn chặn các kết quả không hợp lệ không bao giờ yêu cầu phản ứng.

Đó là một triết lý thiết kế hẹp. Nó sẽ không thu hút mọi người. Nó giảm bớt một số tự do để đổi lấy ý nghĩa có giới hạn.

Nhưng nó là mạch lạc.

Thay vì hỏi làm thế nào để quản lý các ngoại lệ tốt hơn, nó hỏi làm thế nào để làm ít ngoại lệ hơn. Trong cơ sở hạ tầng tài chính lâu dài, câu hỏi đó có xu hướng tồn tại lâu hơn hầu hết các tuyên bố về hiệu suất.

@Dusk #Dusk $DUSK