ซุน เสี่ยวจุน
คำอธิบายภาพ
วิศวกร R&D ระบบของ Meitu Cloud Division ส่วนใหญ่ทำงานเกี่ยวกับ Meitu blockchain และการถ่ายทอดสดบนคลาวด์
หมายเหตุบรรณาธิการ: บทความนี้มาจาก BFTF Technology Community Alliance ผู้เขียน: BFTF Technology Community Alliance เผยแพร่โดยได้รับอนุญาต
สุนทรพจน์นี้แบ่งออกเป็นสี่ส่วนหลัก ส่วนแรกแนะนำโครงสร้างพื้นฐานของ Ethereum โดยสังเขป ส่วนแรกสรุปอัลกอริทึมที่เป็นเอกฉันท์ในปัจจุบัน ส่วนที่สามคือการปฏิบัติของ DPoS ใน Meitu Ethereum และสุดท้ายเปรียบเทียบ DPoS ใน EOS
โครงสร้างพื้นฐานของ Ethereum แสดงอยู่ในรูป ได้แก่ อินเตอร์เฟส HTTP ภายนอก โมดูลอัลกอริทึมที่สอดคล้องกัน EVM โมดูลการจัดเก็บข้อมูล เป็นต้น
ในหมู่พวกเขา โมดูลการประมวลผลธุรกรรม หลังจากโหนดได้รับธุรกรรม จะบันทึกไว้ในกลุ่มธุรกรรม และรับธุรกรรมที่ตรงตามเงื่อนไขจากกลุ่มธุรกรรมในระหว่างกระบวนการบรรจุภัณฑ์ เมื่อการดำเนินการ เช่น การย้อนกลับของบล็อกเกิดขึ้น ธุรกรรมที่ทำแพ็กเกจจะถูกใส่กลับเข้าไปในกลุ่มธุรกรรม
ข้อมูลยอดเงินในบัญชีของ Ethereum ถูกจัดเก็บไว้ในแผนผัง (MPT) ที่ประกอบด้วย Patricia Trie และ Merkle Trie ซึ่งส่วนใหญ่ใช้คุณลักษณะของ Patricia Trie เพื่อค้นหายอดเงินในบัญชีอย่างรวดเร็วและ Merkle Trie เพื่อพิสูจน์ว่าธุรกรรมถูกดัดแปลงหรือไม่ .
PoW บรรลุฉันทามติด้วยการตอบสนองภาระงานบางอย่าง นี่คืออัลกอริธึมฉันทามติที่ได้รับการทดสอบโดย Bitcoin และ Ethereum เป็นเวลานาน แต่จำเป็นต้องใช้ทรัพยากรการประมวลผลจำนวนมาก และ QPS ของการทำธุรกรรมต่ำ PoS เสร็จสิ้นการค้นหาหมายเลขสุ่มโดยแนะนำสิทธิ์และผลประโยชน์ของผู้ถือ ยิ่งผู้ใช้มีสินทรัพย์มากเท่าใด ความน่าจะเป็นในการค้นหาหมายเลขสุ่มที่ถูกต้องก็จะยิ่งมากขึ้นเท่านั้น PoS มีบัญชีแยกประเภท การโจมตีระยะไกล การโจมตีด้วยสกุลเงิน และปัญหาอื่นๆ DPoS ถือเป็นรุ่นปรับปรุงของ PoS DPoS ดำเนินการเลือกตั้งเป็นระยะ ๆ จากนั้นโหนดที่เลือกเหล่านี้จะรับผิดชอบในการสร้างบล็อกและการควบคุมดูแลและการตรวจสอบร่วมกันซึ่งสามารถลดเวลาในการสร้างบล็อกและการยืนยันบล็อกได้อย่างมาก
การใช้งานอัลกอริทึมส่วนใหญ่ประกอบด้วยสองส่วนหลัก: การเลือกตัวตรวจสอบบล็อกและการตั้งเวลาตัวตรวจสอบบล็อก
ในการเพิ่มอัลกอริทึมที่สอดคล้องกันใน Ethereum นั้นจำเป็นต้องใช้อินเทอร์เฟซที่กำหนดโดยเครื่องมือที่สอดคล้องกัน
กระบวนการบรรจุ: นักขุดจะตรวจสอบเป็นประจำว่าตัวตรวจสอบความถูกต้องปัจจุบันคือโหนดปัจจุบันหรือไม่ผ่าน CheckValidator และถ้าใช่ ให้สร้างงานบล็อกใหม่ผ่าน CreateNewWork
หากโหนดต้องการเป็นผู้ตรวจสอบความถูกต้อง โหนดนั้นจะต้องกลายเป็นผู้สมัครรับเลือกตั้งก่อน จากนั้นผู้อื่นจึงจะลงคะแนนให้ผู้สมัครรายนี้ได้ ไม่ว่าจะเป็นการลงคะแนนหรือการเป็นผู้สมัคร จริง ๆ แล้วเป็นธุรกรรมสำหรับโหนด ธุรกรรมต่าง ๆ ก่อนหน้านี้ส่วนใหญ่เป็นการโอนหรือการเรียกสัญญา
นอกจากนี้ เพื่อหลีกเลี่ยงการเล่นซ้ำข้อมูลประวัติจากบล็อกการกำเนิดสำหรับการเลือกตั้งแต่ละครั้ง DPoS จึงเพิ่มแผนผังสถานะส่วนกลางหลายรายการเพื่อบันทึกสถานะของการเลือกตั้งและการลงคะแนนเสียง และจัดเก็บรูทที่สอดคล้องกับแผนผังในส่วนหัวของบล็อก
การเลือกตั้ง: ตัดสินรอบบล็อก ตามสถานการณ์ของบล็อกในรอบที่แล้ว คัดผู้สมัครบางคนที่ได้รับเลือกแต่จำนวนบล็อกไม่เป็นไปตามข้อกำหนด ในบล็อกสุดท้าย เลือกผู้สมัคร N อันดับสูงสุด ที่มีคะแนนโหวตสูงสุดในฐานะ Validator ให้สลับลำดับของ Validator
เมื่อได้รับบล็อกใหม่ ข้อมูลของบล็อกที่ย้อนกลับไม่ได้ล่าสุดจำเป็นต้องได้รับการอัปเดต บล็อกที่ย้อนกลับไม่ได้สุดท้ายคือบล็อกที่ยืนยันโดยสองในสามของโหนด
ในโหมดซิงค์เร็ว บล็อกที่ออกอากาศจะถูกยกเลิกโดยตรง และจะได้รับหลังจากเข้าสู่การซิงค์แบบเต็มเท่านั้น หากเราเริ่มโหนดหลายโหนดด้วยวิธีการซิงโครไนซ์เริ่มต้น (ซิงค์แบบเร็ว) พร้อมกัน โหนดทั้งหมดจะไม่สามารถเข้าสู่โหมดซิงโครไนซ์แบบเต็มได้เนื่องจากความถี่ในการสร้างบล็อกระหว่างโหนดเท่ากัน และบล็อกที่ซิงโครไนซ์ระหว่างโหนดจะถูกยกเลิก วิธีแก้ไขคือเริ่มโหนดที่พบในโหมดการซิงค์แบบเต็ม เนื่องจากข้อมูลของผู้ตรวจสอบถูกจัดเก็บไว้ในเนื้อหาของบล็อก จึงไม่สามารถตรวจสอบบล็อกผ่านส่วนหัวของบล็อกเท่านั้น
มีโหนดการตรวจสอบ 21 โหนดใน DPoS ใน EOS ช่วงเวลาสำหรับการสร้างบล็อคคือ 500ms และแต่ละโหนดสร้าง 12 บล็อคติดต่อกัน สิ่งนี้ช่วยปรับปรุงความเร็วของบล็อคการสร้าง และในขณะเดียวกันก็ช่วยให้แน่ใจว่าแต่ละโหนดสามารถมีบล็อคได้ แพร่กระจายไปยังอีก 20 โหนด เอกสารไวท์เปเปอร์ล่าสุดของ EOS กล่าวถึง BFT-DPoS ประเภทหนึ่ง หลังจากที่โหนดพิมพ์บล็อกแล้วจะสามารถยืนยันไปยังโหนดอื่นๆ ผ่านอัลกอริทึม BFT ซึ่งสามารถเร่งการยืนยันของบล็อกสุดท้ายที่ย้อนกลับไม่ได้, ปรับปรุงความเร็วในการยืนยันของ การทำธุรกรรมและลดทางแยกของห่วงโซ่ ความเป็นไปได้
https://v.qq.com/x/page/o0736irezov.html
