คำเตือนความเสี่ยง: ระวังความเสี่ยงจากการระดมทุนที่ผิดกฎหมายในนาม 'สกุลเงินเสมือน' 'บล็อกเชน' — จากห้าหน่วยงานรวมถึงคณะกรรมการกำกับดูแลการธนาคารและการประกันภัย
ข่าวสาร
ค้นพบ
ค้นหา
เข้าสู่ระบบ
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
ดูตลาด
การวิจัย Web3: โปรโตคอลการส่งข้อมูลข้ามสาย XCMP
PolkaBase
特邀专栏作者
2020-09-10 09:02
บทความนี้มีประมาณ 6816 คำ การอ่านทั้งหมดใช้เวลาประมาณ 10 นาที
ในเครือข่าย Polkadot เราจำเป็นต้องส่งข้อมูลไปยังบางเอนทิตี ขั้นแรก ให้เราแยกแยะประเภทของเอนท
สารบัญ
  • สารบัญ

  • การส่งข้อความระหว่างเครือข่าย

โปรโตคอล Gossip อย่างง่ายสำหรับการกำหนดเส้นทางคิว ICMP

บนโครงสร้างต้นใหม่ (ใบ) ข

การประกาศส่วนหัวบล็อกเชนใหม่ของโหนด (เพียร์) k

k จากโมดูล t อยู่ใน Queue message m

คำจำกัดความของโหนดเพียร์เลเยอร์ (เพียร์) k บน 〖อนุญาต〗_k (m)

  • เป็นระยะ

  • การปรับปรุงในอนาคต

XCMP การส่งข้อความข้ามสายโซ่

ในเครือข่าย Polkadot เราจำเป็นต้องส่งข้อมูลไปยังบางเอนทิตี ขั้นแรก ให้เราแยกแยะประเภทของเอนทิตีเหล่านี้โดยสังเขป: (1) ผู้ใช้ (2) นักสะสม (3) ผู้ตรวจสอบ

ในเครือข่าย Polkadot เราจำเป็นต้องส่งข้อมูลไปยังบางเอนทิตี ขั้นแรก ให้เราแยกแยะประเภทของเอนทิตีเหล่านี้โดยสังเขป: (1) ผู้ใช้ (2) นักสะสม (3) ผู้ตรวจสอบ

1. ผู้ใช้ - สร้างธุรกรรมและให้ข้อมูลกับพาราเชนหรือรีเลย์เชน

2. Colrator - เชื่อมโยงกับ parachain เฉพาะ พวกเขามีหน้าที่รับผิดชอบในการจัดระเบียบและบรรจุข้อมูลธุรกรรมของพาราเชนลงในบล็อกเพื่อสร้างใบรับรองที่ถูกต้อง และส่งไปยังตัวตรวจสอบบนพาราเชนซึ่งเป็นส่วนหนึ่งของบล็อกถัดไป สองลิงก์ถัดไปที่เกี่ยวข้องกับความถูกต้องเป็นส่วนหนึ่งของกฎพื้นฐานของเครือข่าย Polkadot แต่วิธีการดำเนินการคัดแยกเฉพาะจะถูกเลือกโดย parachain

3. Validator - เป็นของรีเลย์เชนและปฏิบัติตามกฎของเครือข่าย Polkadot ชุดย่อยของตัวตรวจสอบที่แตกต่างกันถูกกำหนดให้กับ parachains ที่แตกต่างกันเพื่อตรวจสอบความถูกต้องของ chain เหล่านั้น ดังนั้นเราจึงเรียกชุดย่อยเหล่านี้ว่า "ตัวตรวจสอบ parachain" พวกเขาจะจัดเรียงข้อมูลธุรกรรมและส่งไปยังรีเลย์เชน

ต่อไป เราจำเป็นต้องเข้าใจโปรโตคอลย่อยหลายรายการระหว่างเอนทิตีเหล่านี้ แต่ละโปรโตคอลย่อยทำหน้าที่เป็นนามธรรมที่สอดคล้องกันของการดำเนินการธุรกรรม:

1. การส่งธุรกรรม

เมื่อมีการเข้าถึงเอนทิตีที่เกี่ยวข้อง ผู้ใช้จำเป็นต้องค้นหาเอนทิตีที่เกี่ยวข้องเพื่อส่งธุรกรรม

2. การเปรียบเทียบพาราเชน

ตัวรวบรวมของเครือข่ายขนานจะรวบรวมและบรรจุข้อมูลธุรกรรมลงในบล็อก และข้อมูลในบล็อกมาจากเชนภายนอกที่อยู่นอกขอบเขตของเครือข่าย Polkadot ที่เลือกโดยแต่ละเชนขนาน

3. การรับรองบล็อก Parachain

ผู้รวบรวมยังสร้างข้อมูลรับรองอื่น ๆ และส่งไปยังผู้ตรวจสอบความถูกต้องของพาราเชน เป้าหมายสูงสุดของสิ่งนี้คือเพื่อให้ parachain validators ตรวจสอบได้อย่างมีประสิทธิภาพว่าแต่ละ block ของ parachain นั้นเป็นไปตามฟังก์ชั่นการยืนยันแบบ on-chain ในการสร้างข้อมูลพิสูจน์ Colrator ยังต้องการข้อมูลที่ส่งกลับโดย Parachain Validators ก่อนหน้าบนรีเลย์เชน

4. โปรโตคอลรีเลย์เชน

ผู้ตรวจสอบ Parachain รับรองความถูกต้องของบล็อก Parachain ใด ๆ ที่ส่งและแจกจ่ายหลักฐานเหล่านี้ไปยังผู้ตรวจสอบความถูกต้องอื่น ๆ เพื่อขอความเห็นเป็นเอกฉันท์ จากนั้น ผู้ตรวจสอบความถูกต้องทั้งหมดจะจัดระเบียบและบรรจุบล็อกที่พิสูจน์แล้วและข้อมูลธุรกรรมบนรีเลย์เชนลงในบล็อกเชนรีเลย์ และทำการบล็อกให้เสร็จสิ้น

5. การส่งข้อความระหว่างลูกโซ่

หลังจากบล็อกรีเลย์เชนเสร็จสิ้นและข้อเท็จจริงนี้ถูกส่งกลับไปยังพาราเชน พาราเชนจะตรวจสอบว่าบล็อกเหล่านี้มีข้อมูลใหม่จากพาราเชนอื่นหรือไม่ และหากมี ให้แก้ไขและตอบสนอง

(Parachain synchronisation)

6. การรวมข้อมูลของ parachains

เมื่อ collator เชื่อมต่อเป็นครั้งแรกหรือยกเลิกการเชื่อมต่อเป็นเวลานาน จะต้องดึงข้อมูลอีกครั้งและตรวจสอบสถานะล่าสุดของ parachain หลังจากการเชื่อมต่อกลับคืนมา เนื้อหาการตรวจสอบรวมถึงข้อมูลการทำธุรกรรมที่ส่งชั่วคราวและข้อมูลเกี่ยวกับสถานะล่าสุดของ โซ่รีเลย์

7. การรวมข้อมูลของรีเลย์เชน

ในคำอธิบายข้างต้น เราได้อธิบายรายละเอียดที่เกี่ยวข้องในบทคัดย่อและพยายามทำให้ถูกต้องแม้ว่ารายละเอียดเหล่านี้จะเปลี่ยนแปลงก็ตาม เมื่อเขียนโปรแกรม เราพบว่าในบรรดาบริการที่เลเยอร์เครือข่าย Polkadot จำเป็นต้องจัดหานั้น โปรโตคอลย่อย (3-5) และ 7 ยังคงเป็นส่วนประกอบที่เป็นที่ต้องการมากที่สุดและซับซ้อนที่สุด และคาดว่าจะคงไว้

XCMP

ชื่อเรื่องรอง

การถ่ายโอนข้อมูลระหว่างสายโซ่: การเก็บข้อมูล Egress Queue

บล็อกพาราเชนทุกบล็อกใน Polkadot จะสร้างรายการข้อความที่อาจว่างเปล่าไปยังบล็อกอื่นๆ ทุกบล็อก สิ่งเหล่านี้เรียกว่า "คิวขาออก" E_(x,y)^B ใช้เพื่อแสดงคิวขาออกจากเชน x ไปยังเชน y ในบล็อก B R(E_(x,y)^B) นี่คือรูทแฮชของ Merkle Patricia trie[] ซึ่งได้มาจากการวาด dendrogram สำหรับ E_(x,y)^B ในข้อมูลข้อความ

ข้อความที่ยังไม่ได้ประมวลผลที่ส่งไปยังเชนที่รอดำเนินการควรได้รับการประมวลผลในบล็อกถัดไปของเชนนั้น หากไม่มีการสร้างบล็อกใหม่บนเครือข่ายในช่วงเวลาหนึ่ง ข้อความอาจเริ่มกองพะเนิน

โหนดตัวรวบรวมและโหนดเต็มบนพาราเชน p ได้ดำเนินการบล็อกทั้งหมดบนพาราเชนนั้นและควรรู้บล็อก B และ E_(p,y)^B ทั้งหมดในเชน x

ชุดของจุดเชื่อมต่อของขาออกของบล็อกบนโซ่คู่ขนาน p บนบล็อก B คือ:

รูทการรวบรวมขาเข้าของบล็อกคือ

รายการการสะสมทั้งหมด (ขาเข้า) ของบล็อก B บน parachain p สามารถกำหนดได้โดยฟังก์ชันเรียกซ้ำ:

นี่คือบล็อกที่รวมทางเข้าทั้งหมดจากบล็อก B ไปยังแต่ละห่วงโซ่ขนานไปยังแต่ละบล็อกในห่วงโซ่ p

พาราเชนต้องรัน 〖Ingress〗_(B,P) หลังจาก 〖ingress〗_(พาเรนต์(B),p) และต้องรันข้อมูลและคำแนะนำใดๆ จาก 〖Ingress〗_(B,P)

พาราเชนแต่ละอันมีค่าลายน้ำ p ที่สร้างโดยรีเลย์เชนซึ่งสะท้อนถึงการดำเนินการขาเข้าที่รันล่าสุด เริ่มแรกตั้งค่าเป็น Genesis เพื่อกำหนดโครงสร้างที่มีข้อความที่โดดเด่นทั้งหมดเป็น parachain เราแนะนำ ingresses ที่รอดำเนินการซึ่งกำหนดโดยฟังก์ชันเรียกซ้ำ

รูทที่รอดำเนินการเหล่านี้ R(P_INGRESS (B,P)) ยังสามารถประมาณเป็น R(T_INGRESS (B,P)) เชนตัวเลือก parachain อนุญาตให้สร้าง P_INGRESS (B,P ) ด้วยคำนำหน้าใดๆ

CandidateReceipts

ข้อมูลทั้งหมดเกี่ยวกับพาราเชนตอนรันไทม์มาจาก

แหล่งที่มาของตัวเลือกนี้สร้างขึ้นโดยการตรวจสอบความถูกต้องของบล็อกตัวเลือก parachain และรวมอยู่ในบล็อกของรีเลย์ ผู้สมัครมีหลายสนาม นี่คือบางส่วนที่เกี่ยวข้อง:

  • Vec<(ParaId, Hash)>

รากขาออก:

เมื่อรวมบล็อกโซ่รีเลย์ B ไว้ในพาราเชน p ค่าแฮชแต่ละค่าที่จับคู่กับพาราเชน y ที่ไม่ซ้ำกันคือ R(E_(p,y)^B)

  • watermark p

เมื่อข้อมูลที่ได้รับเป็นของ parachain p ใหม่

ค่า. รันไทม์พิจารณาค่าที่ได้รับจากกลุ่มตัวเลือกของพาราเชนที่ใกล้ที่สุดเป็นค่าปัจจุบัน ค่าดั้งเดิมของ B ในบล็อกใดๆ ที่มีผู้สมัครต้องสูงเท่ากับค่าก่อนหน้าของลายน้ำ p เป็นอย่างน้อย

(ปล้น: ไม่อนุญาตการเข้าออกที่รอดำเนินการในรายการว่าง)

ทั้งผู้ตรวจสอบและผู้รวบรวมพยายามรวบรวมข้อมูลบล็อกคิวในบล็อก B หรือผู้ตรวจสอบเพียงแค่เรียก 〖Ingress〗_(B,P) และค้นหาข้อความที่เกี่ยวข้องในกลุ่มเผยแพร่ รอข้อความที่ยังไม่ได้เผยแพร่ เป้าหมายของ collator บน P คือการสร้างบนรีเลย์เชนพาเรนต์ B เพื่อให้ได้คำนำหน้าเป็น P_INGRESS (B,P) ให้ได้มากที่สุด

R(P_INGRESS (B,วิธีที่ง่ายที่สุดคือการใช้ . ข้อความถูกซุบซิบจากเครือข่ายพาราเชนหนึ่งไปยังอีกเครือข่ายหนึ่ง หากมีโหนดร่วมกันระหว่างสองเครือข่ายนี้ที่เผยแพร่ข้อความ ข้อความนั้นจะทำให้ลิงก์ขนานที่รับข้อความได้รับข้อความ อย่างไรก็ตาม หากตัวตรวจสอบความถูกต้องของ Parachain เป้าหมายทราบว่าข้อความไม่ได้เผยแพร่บนตัวรับของ Parachain พวกเขาจะร้องขอข้อความอีกครั้งจากโหนดตัวตรวจสอบความถูกต้องของ Parachain ที่ส่งข้อความ จากนั้นพวกเขาจะรับข้อความบน parachain ตัวเอง อุปกรณ์ในการขยายพันธุ์

P)) มีอยู่ทุกบล็อก B และ parachain p ที่รันไทม์

ความพร้อมใช้งานของ parachain p และบล็อก B นั้นเกิดจากการที่ p และ B เป็นรายการขาเข้าของรากขาเข้าที่รอดำเนินการของบล็อก และแต่ละรายการและรูทจะถูกจับคู่ครั้งแรกกับหมายเลขบล็อกที่กำหนดเส้นทาง ละเว้น R(∅) จากรายการขาเข้า และละเว้นรายการว่างและจัดเรียงตามหมายเลขบล็อกจากน้อยไปหามาก โดยหมายเลขบล็อกทั้งหมดน้อยกว่า num(B) และอ้างอิงถึงบล็อกในสายเดียวกัน

  • fn ingress(B, p) -> Vec<(BlockNumber, Vec<(ParaId, Hash)>)>

รหัสหลอกใน RUST (สิ่งที่ต้องทำ: ถอดความเป็น LaTeX)

  • fn egress(B, p) -> Vec<(BlockNumber, Vec<(ParaId, Hash)>)>

ข้อมูลจากคิวขาออกสำหรับ B และ p ที่กำหนดยังคงมีอยู่ในรันไทม์ ภายใต้ข้อจำกัดเดียวกันกับรายการขาเข้าที่มีการเรียงลำดับและการละเว้นรายการว่าง ParaId ที่นี่คือห่วงโซ่การรับ และในฟังก์ชันรายการ (ขาเข้า) มันคือห่วงโซ่การส่ง

สมมติว่าโครงสร้างต้นไม้ออกจากบล็อกเป็นบล็อกพาราเชนล่าสุดในรีเลย์เชน

เราตั้งสมมติฐานต่อไปนี้เกี่ยวกับโหนด:

1. สถานะบล็อกของลีฟที่ส่วนท้ายของโครงสร้างต้นไม้มีอยู่ แต่ไม่สามารถรับประกันสถานะของบล็อกเก่าได้

2. เป็นที่คาดหมายได้ว่า collator และ full node บน parachain จะเก็บบล็อกทั้งหมดที่ถูกดำเนินการบน parachain

3. Validator ไม่จำเป็นต้องเก็บบล็อคใดๆ โปรดทราบว่าข้อมูลสามารถกู้คืนได้จากการลบข้อมูลโค้ดที่บันทึกโดยตัวตรวจสอบความถูกต้อง

สมมติว่าเราสร้างระบบที่ยอมรับโปรโตคอลการซุบซิบ เพื่อนร่วมงานสามารถสื่อสารระหว่างกันได้ว่าจุดสิ้นสุดโครงสร้างแบบใด (ใบไม้) ที่พวกเขาคิดว่าดีที่สุด

บทนี้อธิบายโปรโตคอลซุบซิบที่จำกัดสำหรับการเผยแพร่คิวของข้อความ ICMP (ดูภาพรวมสำหรับคำนิยาม)

  • fn ingress(B, p) -> Vec<(BlockNumber, Vec<(ParaId, Hash)>)>

และ

  • fn egress(B, p) -> Vec<(BlockNumber, Vec<(ParaId, Hash)>)>

และ

  • BlockNumber -> BlockHash

เนื่องจากทางเข้าถูกเรียกที่บล็อก B เราจึงวางได้อย่างง่ายดาย

เพื่อแปลง

ข้อความเริ่มต้นในสถานะไม่กำหนดเส้นทางและสิ้นสุดในสถานะกำหนดเส้นทาง

เราเสนอให้กำหนดระบบการเผยแพร่ข่าวซุบซิบ

  • struct Queue {    root: Hash,    messages: Vec,    }

ข้อความเกี่ยวกับโมดูลนี้มีรูปแบบ

เราเก็บข้อมูลท้องถิ่นไว้ดังนี้:

  • MAX_CHAIN_HEADS

1. 〖leaves〗_k เป็นรายการฟังก์ชันแฮชที่ดีที่สุดสำหรับ endpoints (leaves) ของโครงสร้างบล็อก DAG ของเราที่จำเป็นต้องรันโค้ด

2. 〖ออก〗_k สำหรับแต่ละเพียร์ k รายการล่าสุดที่ดีที่สุดจะต้องใช้รหัสค่าแฮช MAX_CHAIN_HEADSDAG ของบล็อก (ขึ้นอยู่กับสิ่งที่พวกเขาส่งมาให้เรา)

3. leafTopics(l)→{queueTopic(h)} หมายถึงรูท h ที่ยังไม่ขยายบนห่วงโซ่คู่ขนานบนโหนดต้นไม้ l บนโครงสร้างต้นไม้ทั้งหมด (ใบไม้)

4. expectedQueues(t)→H ระบุกระบวนการสืบเชื้อสายมาจากรูทแฮชที่สอดคล้องกันของโมดูลการโทรทั้งหมด และ t∈∪l_(∈leaves)leafTopics(l) ในทุกรายการ

บนโครงสร้างต้นใหม่ (ใบ) ข

1. อัปเกรดโครงสร้างแผนผัง (leaf) โมดูลต้นไม้ (leafTopics) และคิวที่คาดไว้ (ไม่ได้ทำการทดสอบเกณฑ์มาตรฐาน แต่การประมาณแบบอนุรักษ์นิยมจะมีเวลาทำงาน 100ms)

2. ส่งโครงสร้างต้นไม้ใหม่ (ใบ) ชั้นเดียวกัน

3. หากตัวรวบรวมของห่วงโซ่คู่ขนาน p รันโค้ด egress(B,p) ทางออนไลน์ สำหรับ root ของคิวข้อความที่รู้จักซึ่งยังไม่ได้รับการเผยแพร่ เราจะใส่ข้อความ Queue ที่เกี่ยวข้องลงในกลุ่มการเผยแพร่

การประกาศส่วนหัวบล็อกเชนใหม่ของโหนด (เพียร์) k

1. อัพเกรดโครงสร้างต้นไม้ (ใบไม้) 〖ใบไม้〗_k

2. เพื่อให้เป็นไปตามข้อกำหนดของ ∀H∈leaves ∩ 〖leaves〗_k แต่ละ t ใน BroadcastTopic(k,t) จะถูกจับคู่กับ leafTopics(H)

k จากโมดูล t อยู่ใน Queue message m

  • good(m)

เรากำหนดฟังก์ชัน

เป็นมาตรฐานความเชื่อมั่นในท้องถิ่น (เกณฑ์การยอมรับในท้องถิ่น)

  • root

แฮชรูทของข้อความ

ในฟังก์ชันที่คาดไว้คิว (t) กำหนดไว้ รูทจริงของข้อความที่กำหนดจะเท่ากับรูท

ถ้าฟังก์ชัน good(m) พิสูจน์ว่า k เป็นค่าบวก ให้ใส่ m ในกลุ่มการขยายพันธุ์ มิฉะนั้น ให้พิสูจน์ว่า m ไม่พร้อมใช้งาน ซึ่งมีประโยชน์สำหรับการเพาะปลูกแบบเพียร์เซ็ต

นิยามของโหนดเพียร์เลเยอร์ (เพียร์) k บน 〖อนุญาต〗_k (m) และข้อความคิว m บนโมดูล t

ถ้าข้อความ k ถูกส่งถึงเราก่อนที่เราจะส่งข้อความเสร็จ ข้อความ k ควรถูกปฏิเสธ กลับกัน ถ้าต่อไปนี้

∃l∈leaves∩〖〖leaves〗_k|t∈leafTopics(l)∃l∈leaves∩〖leaves〗_k | t∈leafTopics(l) อนุญาตให้ใช้ข้อความ k และห้ามใช้วิธีอื่น

เป็นระยะ

เราจำเป็นต้องทำเครื่องหมายโมดูลทั้งหมดว่าเป็นโมดูลที่หมดอายุแล้ว ยกเว้นที่คาดไว้คิวและล้างโมดูลเหล่านั้นในกลุ่มเผยแพร่ ในความเป็นจริงการดำเนินการดังกล่าวจะดำเนินการทุก ๆ สองสามวินาที สิ่งนี้จะป้องกันไม่ให้กลุ่มการขยายพันธุ์ของเราเติบโตอย่างไม่มีกำหนด

การตัดสินใจเผยแพร่เฉพาะข้อความที่ไม่ได้ระบุเส้นทางไปยังเพื่อนที่มีมุมมองเดียวกันเกี่ยวกับม็อดปัจจุบันอาจเป็นที่ถกเถียงกัน แต่ข้อกำหนดเบื้องต้นบางอย่างที่เราคิดขึ้นมาทำให้ประเด็นนี้ค่อนข้างดี

อันดับแรก เราไม่ต้องการให้โหนดประมวลผลข้อความเป็นจำนวนไม่จำกัด ซึ่งหมายความว่าโหนดจะไม่รู้จัก H ใน QueueTopic(H) เนื่องจากมี H ดังกล่าวจำนวนไม่สิ้นสุด ประการที่สอง โหนดไม่ต้องทำงานมากเพื่อตัดสินใจว่าจะเผยแพร่ข้อความไปยังเพียร์เฉพาะหรือไม่ สมมติว่า leaf∩〖leaves〗_k=∅ แต่บางรายการของ 〖leaves〗_k เป็นซอร์สโค้ดของ leaf

(บรรพบุรุษ). เราต้องรันทุก l ∈ 〖leaves〗_k ใน O(n) เพื่อพิสูจน์ จากนั้นเราต้องหาว่าข้อความที่กำหนดนั้นไม่ได้กำหนดเส้นทางในบล็อกก่อนหน้าหรือไม่ เราคิดอย่างไร้เดียงสาว่าหากข้อความยังไม่ได้กำหนดเส้นทางในบล็อกต่อมาในเชนเดียวกัน แทนที่จะถูกกำหนดเส้นทางในเชนก่อนหน้า ไม่น่าเป็นไปได้ แต่สถานะของเชนอาจเป็นการย้อนกลับของฟิชชิ่งที่โหนดของมนุษย์

เนื่องจากสถานะลูกโซ่ที่สันนิษฐานไม่พร้อมใช้งานจากบล็อกก่อนหน้า เราจึงไม่มีวิธีที่ดีในการพิจารณาว่าจะส่งข้อมูลออกไปยังเพียร์ของบล็อกก่อนหน้านั้นจริงหรือไม่ ในส่วนการปรับปรุงในอนาคต เราจะหารือเกี่ยวกับการผ่อนคลายข้อจำกัดนี้โดยปรับขนาดเป็นจำนวนต้นกำเนิด (บรรพบุรุษ) ที่แน่นอน

อย่างไรก็ตาม มีเหตุผลเท่านั้นที่จะเผยแพร่ไปยังโหนด (เพียร์) ที่ได้รับการซิงโครไนซ์กับเชนเดียวกัน โดยสมมติว่าสิ่งต่อไปนี้ (บางอย่างเชิงประจักษ์แต่สมเหตุสมผล แต่ก็มีแนวโน้มที่จะถูกประเมินสูงเกินไป):

1. บล็อกที่ถูกต้องใหม่จะออกในช่วงเวลาเฉลี่ยอย่างน้อย 5 วินาที (เป้าหมายของเราคือ 10-15 วินาที)

2. เวลาเผยแพร่ของบล็อกในส่วน "มีประโยชน์" ของโครงสร้างการเผยแพร่ข่าวซุบซิบคือภายใน 2 วินาที

3. วัตถุที่อยู่ติดกันในโครงสร้างการเผยแพร่ข่าวซุบซิบมีความล่าช้าน้อยกว่าหรือเท่ากับ 500ms

4. การเผยแพร่ข้อความอย่างมีความหมายก่อนที่จะซิงค์กับส่วนหัวของ DAG อาจไม่คุ้มค่า

มูลค่าที่แท้จริงจะดีกว่าอย่างแน่นอน ข่าวดีก็คือ บล็อกทั้งหมดไม่จำเป็นต้องเผยแพร่ภายในเวลาบล็อกเดียว เมื่อเวลาผ่านไป ผู้เข้าร่วมจะได้รับข้อความก่อนหน้านี้มากขึ้น นี่เป็นรูปแบบที่ผู้เข้าร่วมทั้งหมดเห็นข้อความทั้งหมด เกือบจะแน่นอนว่าจะไม่ปรับขนาดเกินกว่าเชนเริ่มต้นจำนวนหนึ่ง แต่จะทำหน้าที่เป็นโปรโตคอลเริ่มต้นแทน

ชื่อเรื่องรอง

ภาพรวมของการกำหนดเส้นทาง XCMP

ในการส่งข้อความจากพาราเชนหนึ่ง (ส่งพาราเชน) ไปยังพาราเชนอื่น (รับพาราเชน) ตามการตั้งค่า ขั้นตอนต่อไปนี้จะดำเนินการ

ข้อความจะเพียงพอเมื่อโหนดเต็มของพาราเชนที่ส่งเป็นส่วนหนึ่งของโดเมนของพาราเชนที่รับด้วย

ตัวตรวจสอบ parachain ของ parachain ที่รับไม่พบว่าข้อความถูกเผยแพร่ จากนั้นจึงร้องขอข้อความโดยตรงจากตัวตรวจสอบ parachain ของ parachain ที่ส่ง (การส่ง PV ตามเวลาจริง) PV ของ parachain ที่ส่งมีหน้าที่ทำให้ข้อความพร้อมใช้งาน ผู้ตรวจสอบพาราเชนที่ส่งพาราเชนจะส่งข้อความโดยตรงไปยัง PoV ของพาราเชนที่รับ และสุดท้าย PV ของพาราเชนที่รับจะกระจายข่าวซุบซิบ (ซุบซิบ) บนข้อความในเครือข่ายพาราเชนที่รับ

ชื่อเรื่องรอง

การปรับปรุงในอนาคต

1. ส่วนด้านบนอธิบายว่าเหตุใดจึงเป็นความคิดที่ดีที่จะเผยแพร่คิวขาออกไปยังเพียร์เลเยอร์โดยพลการ แต่เมื่อเราซิงค์และติดตามการผลิตบล็อกตามปกติ เราจะสามารถติดตามทรีทั้งหมดได้อย่างสมเหตุสมผล ซอร์สโค้ดสุดท้าย (บรรพบุรุษ) α ของ โครงสร้าง (ใบ) ค่าที่เหมาะสมเริ่มต้นของ α ควรสอดคล้องกับค่าพาเรนต์และรับ 1 นี่อาจทำให้เราได้กำไร 90% ที่เราต้องการ เพียงเพราะมีการ "พูดติดอ่าง" เมื่อจำเป็นต้องมีการตัดกันของ treeset และเพื่อนสองคนจำเป็นต้องอัปเดตข้อมูลเกี่ยวกับคีย์ย่อยใหม่ให้กันและกัน

2. การขยายคำจำกัดความของ E_(x,y)^B จะช่วยให้ตรวจสอบร่วมกันระหว่างสายโซ่ได้ ตัวอย่างเช่น พาราเชน y สามารถบอกรีเลย์เชนไม่ให้กำหนดเส้นทางข้อความจาก x ที่บล็อก B (แล้วบอกให้เริ่มกำหนดเส้นทางอีกครั้งที่บล็อก B') สำหรับบล็อกใดๆ ระหว่าง B และ B' เราจะมีเวลาทำงาน E_(x,y)^b=∅ เมื่อไม่คำนึงถึง x ของ b ใน CandidateReceipt ในความเป็นจริง เนื่องจากรันไทม์ประมวลผลเฉพาะแฮชรูทแฮช จึงไม่สนใจ R(E_(x,y)^b) จากการรับของผู้สมัครและตั้งค่าเป็น R(∅)

3. ปรับขนาดเพื่อรองรับโทโพโลยีที่ชาญฉลาดขึ้นซึ่งไม่ใช่ทุกคนที่จะมองเห็นได้ทุกอย่าง บางทีการมีอาร์เรย์หัวข้อสองประเภท (หัวข้อ), (B, (B, 〖chain〗_from)) ตามหัวข้ออาร์เรย์ (หัวข้อ) และ (B, 〖chain〗_to) ตามม็อดจะปรับปรุงการใช้งานของม็อดนี้https://github.com/sipa/minisketch4. ใช้การกระทบยอดการตั้งค่าอัจฉริยะบางประเภท (เช่น

) เพื่อลดแบนด์วิดท์การแพร่กระจายข่าวซุบซิบ

5. สร้างแรงจูงใจในการกระจายในลักษณะที่คล้ายกับไมโครเพย์เมนต์ที่น่าจะเป็น

6. โหนดตัวตรวจสอบ parachain จะเก็บคิวขาออกจนกว่าจะได้รับการยืนยันว่ามีข้อความอยู่ นี่เป็นการย้อนกลับเมื่อสองเครือข่ายพาราเชนไม่มีโหนดแบบเต็มที่เหมือนกันและข้อความไม่ส่งถึงผ่านการแชท โหนดตรวจสอบความถูกต้องของ Parachain ของ Parachain ที่ได้รับจะสังเกตเห็นข้อความที่ขาดหายไป และถามโหนด Parachain Validator ของห่วงโซ่การส่งสำหรับข้อความ เมื่อพวกเขาได้รับคำขอนั้น มันจะเผยแพร่ผ่านเครือข่ายพาราเชนของผู้รับ

ข้อมูลทั้งหมดที่บล็อกเชนมีต่อตรรกะทางธุรกิจจะอยู่ในรูปของ CandidateReceipts ผู้ลงนามบล็อกสามารถส่ง CandidateReceipt ได้สูงสุดหนึ่งรายการจากแต่ละพาราเชนในบล็อก (อันที่จริง เฉพาะเชนที่รับรองโดยผู้ตรวจสอบความถูกต้องหลายคน แม้ว่าข้อสันนิษฐานนี้จะไม่เกี่ยวข้องกันที่นี่)

เรียบเรียง / ลักหลับยาว

Polkadot
Web3.0
跨链
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
สรุปโดย AI
กลับไปด้านบน
ในเครือข่าย Polkadot เราจำเป็นต้องส่งข้อมูลไปยังบางเอนทิตี ขั้นแรก ให้เราแยกแยะประเภทของเอนท
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android