Tệp 1.x: Thông báo cuộc gọi tháng 1

Rate this post

14 tháng 1 tl; dc (lâu quá ko gọi)

Tuyên bố từ chối trách nhiệm: Đây là bản tóm tắt về các chủ đề được thảo luận trong cuộc gọi nghiên cứu Eth1.x định kỳ và không đại diện cho các kế hoạch hoặc cam kết đã hoàn thành đối với việc nâng cấp mạng.

Các chủ đề chính của cuộc gọi này là

  • Lợi ích của việc định lượng dữ liệu thô sơ khi chuyển sang cấu trúc trie nhị phân
  • Các chiến lược chuyển đổi và những thách thức tiềm ẩn đối với việc chuyển đổi sang thử nhị phân
  • Mã hợp đồng “Merklizing” cho các nhân chứng và các tác động đối với việc lập lịch / đo lường khí đốt
  • Sơ lược chuỗi và dữ liệu chuỗi / trạng thái lịch sử – ý nghĩa của mạng và cách tiếp cận đối với phân phối.

Logistics

Cuối tuần sau EthCC (7-8 tháng 3), sẽ có một hội nghị thượng đỉnh nghiên cứu 1.x nhỏ, với mục đích có một vài ngày thảo luận và làm việc về các chủ đề hiện tại. Phiên họp sẽ được giới hạn (do hạn chế về địa điểm) ở 40 người tham dự, quá đủ cho những người tham gia dự kiến.

Cũng có thể sẽ có một số cuộc tụ tập không chính thức, đặc biệt xung quanh tuần lễ Blockchain Stanford và ETHDenver, nhưng không có kế hoạch rõ ràng nào.

Cuộc gọi tiếp theo dự kiến ​​được lên lịch vào tuần đầu tiên hoặc tuần thứ hai trong tháng Hai – nửa chặng đường từ bây giờ đến hội nghị thượng đỉnh ở Paris.

Thảo luận kỹ thuật

EIP # 2465

Mặc dù không liên quan trực tiếp đến ethereum không trạng thái, EIP này cải thiện giao thức mạng để truyền giao dịch và do đó là một cải tiến khá đơn giản giúp đưa mọi thứ đi đúng hướng cho những gì nghiên cứu đang làm. Ủng hộ!

Tiết kiệm kích thước Binary Trie

Về lý thuyết, việc chuyển đổi sang cấu trúc trie nhị phân (thay vì cấu trúc trie lục giác) nên giảm kích thước nhân chứng xuống một thứ như 3,75x, nhưng trên thực tế, mức giảm đó có thể chỉ là khoảng một nửa, tùy thuộc vào cách bạn nhìn nhận nó..

Nhân chứng là khoảng 30% mã và 70% băm. Hàm băm trong trie được giảm đi 3 lần, nhưng mã không được cải thiện với trie nhị phân, vì nó luôn cần được đưa vào nhân chứng. Vì vậy, việc chuyển sang định dạng trie nhị phân sẽ đưa kích thước nhân chứng xuống ~ 300-1400kB, giảm từ ~ 800-3.400kB trong trie hexary.

Thực hiện chuyển đổi

Việc kích hoạt quá trình chuyển đổi thực tế sang bộ ba nhị phân là một vấn đề khác, với một số câu hỏi cần được giải đáp. Về cơ bản, có hai chiến lược khả thi khác nhau có thể được tuân theo:

quá trình chuyển đổi tiến bộ – Đây là mô hình chuyển đổi ‘tàu của Theseus’, theo đó toàn bộ trie trạng thái được di chuyển sang định dạng nhị phân account-by-account và storageSlot-by-storageSlot, vì mỗi phần của trạng thái được thực thi EVM chạm vào. Điều này ngụ ý rằng, mãi mãi, trạng thái của Ethereum sẽ là một hỗn hợp thập lục phân / nhị phân và các tài khoản sẽ cần được “chọc” để được cập nhật lên định dạng trie mới (có thể với mã opcode POKE;). Ưu điểm là điều này không làm gián đoạn hoạt động bình thường của chuỗi và không yêu cầu sự phối hợp quy mô lớn để nâng cấp. Điểm bất lợi là sự phức tạp: cả định dạng trie lục phân và nhị phân đều cần được tính toán trong ứng dụng khách và quá trình này sẽ không bao giờ thực sự “kết thúc”, bởi vì một số phần của trạng thái không thể được truy cập từ bên ngoài và sẽ cần được chủ sở hữu của chúng chọc ngoáy rõ ràng mà có lẽ sẽ không xảy ra cho toàn bộ tiểu bang. Chiến lược tiến bộ cũng sẽ yêu cầu khách hàng sửa đổi cơ sở dữ liệu của họ thành một loại bộ ba nhị phân ‘ảo hóa’ bên trong bố cục cơ sở dữ liệu hệ lục địa, để tránh sự gia tăng đột ngột về yêu cầu lưu trữ cho tất cả các khách hàng (lưu ý: cải tiến cơ sở dữ liệu này có thể xảy ra độc lập với quá trình chuyển đổi ‘tiến bộ’ đầy đủ, và vẫn sẽ có lợi một mình).

máy tính và cắt gọn gàng – Đây sẽ là quá trình chuyển đổi ‘cùng một lúc’ được thực hiện qua một hoặc nhiều hard fork, theo đó một ngày trong tương lai sẽ được chọn cho chuyển đổi và sau đó tất cả những người tham gia trong mạng sẽ cần tính toán lại trạng thái dưới dạng bộ ba nhị phân , rồi cùng nhau chuyển sang định dạng mới. Chiến lược này theo một nghĩa nào đó sẽ ‘đơn giản hơn’ để thực hiện bởi vì nó đơn giản về mặt kỹ thuật. Nhưng nó phức tạp hơn từ góc độ điều phối: Trạng thái trie nhị phân mới cần được tính toán trước trước khi fork có thể mất một giờ (hoặc ở khoảng thời gian đó) – trong thời gian đó, không rõ cách xử lý các giao dịch và khối mới ( bởi vì chúng sẽ cần được đưa vào trie trạng thái nhị phân chưa được tính toán và / hoặc trie kế thừa). Quá trình này sẽ được thực hiện khó khăn hơn bởi thực tế là nhiều thợ đào và sàn giao dịch thích nâng cấp khách hàng vào thời điểm cuối cùng. Ngoài ra, chúng ta có thể tưởng tượng việc dừng toàn bộ chuỗi trong một thời gian ngắn để tính toán lại trạng thái mới – một quá trình có thể phức tạp hơn và có khả năng gây tranh cãi, để điều phối.

Cả hai lựa chọn vẫn còn ‘trên bàn’ và cần được xem xét và thảo luận thêm trước khi đưa ra bất kỳ quyết định nào liên quan đến các bước tiếp theo. Đặc biệt cân nhắc sự đánh đổi giữa một bên là sự phức tạp của việc thực hiện và một bên là những thách thức về phối hợp.

Mã “chunking”

Giải quyết phần mã của nhân chứng, đã có một số công việc tạo mẫu được thực hiện trên mã ‘hợp nhất’, về cơ bản cho phép mã hợp đồng được chia thành nhiều phần trước khi đưa vào nhân chứng. Ý tưởng cơ bản là, nếu một phương thức trong hợp đồng thông minh được gọi, nhân chứng chỉ cần bao gồm các phần của mã hợp đồng đã thực sự được gọi, thay vì toàn bộ hợp đồng. Đây vẫn là nghiên cứu rất sớm, nhưng nó cho thấy giảm thêm ~ 50% phần mã của một nhân chứng. Tham vọng hơn, việc thực hành phân đoạn mã có thể được mở rộng để tạo ra một ‘bộ ba mã’ toàn cầu duy nhất, nhưng đây không phải là một ý tưởng được phát triển tốt và có thể có những thách thức riêng cần phải điều tra thêm.

Có nhiều phương pháp khác nhau mà mã có thể được chia thành nhiều đoạn và sau đó được sử dụng để tạo nhân chứng. Đầu tiên là ‘động’, trong đó nó dựa vào việc tìm kiếm các hướng dẫn JUMPDEST và phân tách gần các điểm đó, dẫn đến kích thước phân đoạn có thể thay đổi tùy thuộc vào mã được chia nhỏ. Thứ hai là ‘tĩnh’, sẽ chia nhỏ mã thành các kích thước cố định và thêm một số siêu dữ liệu cần thiết chỉ định vị trí các đích nhảy chính xác nằm trong đoạn. Có vẻ như một trong hai cách tiếp cận này sẽ hợp lệ và cả hai đều có thể tương thích và có thể để người dùng quyết định nên sử dụng phương pháp nào. Dù bằng cách nào, phân khúc cho phép thu nhỏ kích thước nhân chứng hơn nữa.

(a) khí đốt

Một câu hỏi mở là những thay đổi nào sẽ là cần thiết hoặc mong muốn trong lập lịch khí với sự giới thiệu của các nhân chứng khối. Việc tạo nhân chứng cần được trả giá bằng khí. Nếu mã bị phân đoạn, trong một khối sẽ có một số chồng chéo trong đó nhiều giao dịch bao gồm cùng một mã và do đó, các phần của nhân chứng khối sẽ được thanh toán nhiều hơn một lần bởi tất cả các giao dịch được bao gồm trong khối. Có vẻ như một ý tưởng an toàn (và một ý tưởng tốt cho người khai thác) sẽ là để nó cho người đăng giao dịch thanh toán toàn bộ chi phí cho nhân chứng giao dịch của chính họ, và sau đó để người khai thác giữ khoản thanh toán quá mức. Điều này giảm thiểu nhu cầu thay đổi về chi phí khí đốt và khuyến khích các thợ mỏ đưa ra nhân chứng, nhưng không may đã phá vỡ mô hình bảo mật hiện tại là chỉ tin tưởng các cuộc gọi phụ (trong một giao dịch) với một phần trong tổng số khí đã cam kết. Việc thay đổi mô hình bảo mật đó được xử lý như thế nào là điều cần được xem xét đầy đủ và thấu đáo. Vào cuối ngày, mục tiêu là tính mỗi giao dịch bằng chi phí tạo ra nhân chứng của chính nó, tỷ lệ thuận với mã mà nó chạm vào.

Lời đề nghị TRẺ của Wei Tang có thể thực hiện bất kỳ thay đổi nào đối với EVM dễ dàng hơn. Nó không hoàn toàn cần thiết đối với Ethereum không trạng thái, nhưng nó là một ý tưởng về cách thực hiện các thay đổi đột phá trong tương lai đối với lịch trình gas dễ dàng hơn. Câu hỏi cần đặt ra là “Những thay đổi trông như thế nào cả khi không có và với UNGAS – và những điều được xem xét đó, liệu UNGAS có thực sự làm cho công cụ này dễ thực hiện hơn đáng kể không?”. Để trả lời điều này, chúng tôi cần các thử nghiệm chạy mọi thứ với mã kết hợp và các quy tắc khí mới được áp dụng, sau đó xem những gì sẽ thay đổi liên quan đến chi phí và thực thi trong EVM.

Cắt tỉa và cung cấp dữ liệu

Trong mô hình không trạng thái, các nút không có một số hoặc tất cả trạng thái cần một cách để báo hiệu cho phần còn lại của mạng biết dữ liệu nào họ có và dữ liệu nào họ thiếu. Điều này có ý nghĩa đối với cấu trúc liên kết mạng – các máy khách không trạng thái thiếu dữ liệu cần có khả năng tìm kiếm dữ liệu họ cần ở đâu đó trên mạng một cách đáng tin cậy và nhanh chóng, cũng như quảng bá trước dữ liệu họ không có (và có thể cần) . Việc thêm một tính năng như vậy vào một trong các EIP cắt bỏ chuỗi là một sự thay đổi giao thức mạng (nhưng không đồng thuận) và điều đó cũng có thể được thực hiện ngay bây giờ.

Mặt thứ hai của vấn đề này là nơi lưu trữ dữ liệu lịch sử và giải pháp tốt nhất cho đến nay được đề xuất là mạng lưu trữ phân tán dành riêng cho Eth, có thể phục vụ dữ liệu được yêu cầu. Điều này có thể có nhiều hương vị; trạng thái hoàn chỉnh có thể phù hợp với ‘chunking’, tương tự như mã hợp đồng; các nút trạng thái một phần có thể theo dõi (được gán ngẫu nhiên) các khối trạng thái và phục vụ chúng theo yêu cầu trên các cạnh của mạng; máy khách có thể sử dụng cơ chế định tuyến dữ liệu bổ sung để một nút không trạng thái vẫn có thể nhận được dữ liệu bị thiếu thông qua một trung gian (không có dữ liệu mà nó cần, nhưng được kết nối với một nút khác có). Tuy nhiên, nó được triển khai, mục tiêu chung là khách hàng phải có thể tham gia vào mạng và có thể nhận được tất cả dữ liệu họ cần, một cách đáng tin cậy và không cần chen lấn để có được vị trí kết nối với nút trạng thái đầy đủ, đây là điều xảy ra với LES một cách hiệu quả. nút bây giờ. Công việc xoay quanh những ý tưởng này vẫn đang trong giai đoạn đầu, nhưng nhóm geth đã có một số kết quả đầy hứa hẹn khi thử nghiệm ‘phân loại trạng thái’ (chunking) và turbo-geth đang nghiên cứu định tuyến dữ liệu cho các phần của tiểu bang.


Như thường lệ, nếu bạn có câu hỏi về nỗ lực của Eth1x, yêu cầu về chủ đề hoặc muốn đóng góp, tham dự một sự kiện, hãy giới thiệu bản thân trên ethresear.ch hoặc liên hệ với @gichiba và / hoặc @JHancock trên twitter.

Thuc Quyen

Leave a Reply

Your email address will not be published.