Tôi đã tìm thấy đúng lệnh build mà Newton dùng để biên dịch một data oracle, và nó trả lời một câu hỏi mà tôi vẫn giả định chứ không hề kiểm tra.
jco componentize -w newton-provider.wit -o policy.wasm policy.js -d stdio random clocks http fetch-event
Cờ -d đó đang làm thật sự. Nó mô tả rõ ràng những gì WASM component kết quả được phép chạm vào: I/O tiêu chuẩn, tính ngẫu nhiên, đồng hồ, http, các fetch event. Hoàn toàn không có gì khác. Đây không phải là một “tường lửa” runtime được gắn thêm sau đó — các khả năng được khai báo tại thời điểm build, và được nhúng sẵn vào chính component.
Tôi đã từng mô tả việc sandboxing oracle của Newton là “bị chặn không được truy cập IP riêng,” và điều đó là đúng, nhưng nó làm giảm nhẹ những gì thật sự đang xảy ra. Lọc mạng ở runtime sẽ ngăn một component đến nơi mà nó không nên. Khai báo khả năng ở thời điểm build là bước sớm hơn — component không bao giờ có năng lực chung để làm bất cứ điều gì ngoài danh sách được đặt tên này, bất kể việc lọc ở runtime có tồn tại ở lớp bên trên ra sao.
Hai lớp, không phải một. Nên biết sự khác biệt này khi ai đó nói với bạn rằng sandbox oracle “an toàn” — an toàn chống lại điều gì, được thực thi ở đâu, quan trọng hơn nhiều so với một cụm từ một chữ.
@NewtonProtocol $NEWT #Newt
jco componentize -w newton-provider.wit -o policy.wasm policy.js -d stdio random clocks http fetch-event
Cờ -d đó đang làm thật sự. Nó mô tả rõ ràng những gì WASM component kết quả được phép chạm vào: I/O tiêu chuẩn, tính ngẫu nhiên, đồng hồ, http, các fetch event. Hoàn toàn không có gì khác. Đây không phải là một “tường lửa” runtime được gắn thêm sau đó — các khả năng được khai báo tại thời điểm build, và được nhúng sẵn vào chính component.
Tôi đã từng mô tả việc sandboxing oracle của Newton là “bị chặn không được truy cập IP riêng,” và điều đó là đúng, nhưng nó làm giảm nhẹ những gì thật sự đang xảy ra. Lọc mạng ở runtime sẽ ngăn một component đến nơi mà nó không nên. Khai báo khả năng ở thời điểm build là bước sớm hơn — component không bao giờ có năng lực chung để làm bất cứ điều gì ngoài danh sách được đặt tên này, bất kể việc lọc ở runtime có tồn tại ở lớp bên trên ra sao.
Hai lớp, không phải một. Nên biết sự khác biệt này khi ai đó nói với bạn rằng sandbox oracle “an toàn” — an toàn chống lại điều gì, được thực thi ở đâu, quan trọng hơn nhiều so với một cụm từ một chữ.
@NewtonProtocol $NEWT #Newt