(biến)
boolean: v ← - giá trị ban đầu;
số nguyên: f ← - số lượng tối đa của mã độc hại, ≤ ⇐ (n - 1) / 3⇒;
cây boolean:
• rễ mức 0 là VL, nơi L = ();
• mức độ h (f ≥ h> 0) nút: cho mỗi VL ở mức h - 1 = sizeof (L), nó
n - 2 - sizeof (L) dòng dõi ở cấp h là vconcat ((j), L), ∀ k như vậy mà
k • = j, i và k không phải là một thành viên của danh sách L.
(loại tin nhắn)
OM (v, Dests, Danh sách, bị lỗi), nơi mà các thông số như trong mulation cho- đệ quy.
(1) Initiator (tức là, chỉ huy) khởi tạo các thỏa thuận bằng miệng Byzantine: (1a) gửi OM (v, N - {i}, (Pi), f) đến N - {i};
(1b) return (v). (2) ( Non-khởi, tức là, trung úy) nhận được tin nhắn bằng miệng (OM): (2a) cho rnd = 0 đến f làm (2b) cho mỗi OM nhắn mà đến ở vòng này, làm (2c) nhận OM (v, Dests, L = (PK1 ... PKF 1 bị lỗi), bị lỗi) từ Pk; (2d) vtail (L) + - 1 // bị lỗi + rnd = f; | Dests | + sizeof (L) = n đầu (L) ← - v; // Sizeof (L) + bị lỗi = f + 1. điền vào dự toán. (2e) gửi OM (v, Dests - {i}, (Pi, PK1 ... PKF 1 bị lỗi), bị lỗi - 1) để Dests - {i} nếu rnd <f; (2f) cho cấp = f - 1 xuống 0 làm (2g) cho mỗi 1 • (n - 2) • ... (n - (cấp + 1)) các nút vl ở mức độ, làm (2h) VL (x • = i, x • ∈ L) = đa (VL, vconcat ((x), L)); xy • ∈ concat ((x), L); y • = IXY Algorithm 14,3 tướng Byzantine thuật toán - số mũ của tin nhắn không dấu, n> 3f. Xây dựng lặp đi lặp lại. Mã cho quá trình P i. Là danh sách L sau khi loại bỏ thành viên đầu tiên của nó. Mỗi quá trình duy trì một cây của các biến boolean. Cấu trúc dữ liệu cây tại một phi khởi xướng được sử dụng như sau: • Có được f + 1 cấp độ từ cấp 0 đến cấp độ f. • Cấp 0 có một nút gốc, v (), sau khi vòng 1. • Cấp h, 0
• Node VL biểu thị các lệnh nhận được từ các đầu nút (L) bằng nút
k mà chuyển tiếp nó tới nút i. Các lệnh đã được chuyển đến đầu (L) của người đứng đầu (đuôi (L)), mà nó nhận được từ đầu (đuôi (đuôi (L))), và như vậy. Yếu tố cuối cùng của L là người chỉ huy, biểu thị Pinit.
• Trong f + 1 viên đạn của thuật toán (dòng 2a-2e của phiên bản lặp đi lặp lại),
mỗi cấp k, 0 ≤ k ≤ f, của cây là tiếp đầy nhớ các giá trị nhận được khi kết thúc vòng k + 1, và cùng với đó quá trình
gửi nhiều trường hợp của các tin OM với tham số thứ tư là f - (k + 1) cho vòng k + 2 (khác với việc chấm dứt thức tròn).
• Đối với mỗi tin nhắn mà đến trong vòng một (dòng 2b-2c của lặp đi lặp lại phiên bản), một quá trình đặt vtail (L) (dòng 2d). Sau đó nó loại bỏ chính nó từ Dests, prepends bản thân để L, decrements bị lỗi, và chuyển tiếp các giá trị v đến Dests cập nhật (dòng 2e). • Một khi toàn bộ cây được điền từ gốc đến lá, những hành động trong gấp của đệ quy là mô phỏng trong dòng 2f-2h các phiên bản lặp đi lặp lại, tiến hành lá lên đến gốc của cây. Những hành động này là rất quan trọng - họ dẫn đến việc lấy phần lớn các giá trị tại mỗi mức của cây. Giá trị cuối cùng của rễ là giá trị thỏa thuận, trong đó sẽ giống nhau ở tất cả các quy trình. Ví dụ hình 14.5 cho thấy cây tại một trung úy nút P3, cho n = 10 quy trình P0 qua P9 và f = 3 quy trình. Chỉ huy trưởng là P0. Chỉ có một chi nhánh của các cây được hiển thị cho đơn giản. Người đọc được khuyến khích để làm việc thông qua tất cả các bước để đảm bảo một sự hiểu biết thấu đáo. Một số bước quan trọng từ quan điểm của P3 được vạch ra tiếp theo, liên quan đến việc xây dựng lặp đi lặp lại của các thuật toán với.
đang được dịch, vui lòng đợi..
