บทความเพื่อทำความเข้าใจเกี่ยวกับการสร้างบีคอนเชน
ผู้แต่ง |Ben Edgington
ผู้แต่ง |
สำหรับ Ethereum 2.0เครือข่ายทดสอบเหรียญเครือข่ายทดสอบเหรียญ
เปิดตัวไปแล้วเมื่อวันที่ 4 สิงหาคม นี่น่าจะเป็นการซ้อมอย่างเป็นทางการเพียงครั้งเดียวของเราก่อนการเปิดตัว Ethereum 2.0 ในช่วงครึ่งหลังของปีนี้Eth2 annotated specกลไกการสร้าง Eth2 ค่อนข้างซับซ้อน การสร้างเป็นกระบวนการที่ระบบบล็อคเชนใส่ชีวิตเข้าไปในตัวมันเอง ฉันจะอธิบายให้ถูกต้องที่สุดด้วยภาษาธรรมดา สำหรับคำอธิบายทางเทคนิคจริง ๆ ผู้อ่านสามารถค้นหาได้
ดูบันทึกของฉันด้านบน
ต่อไปนี้ "เหตุการณ์การกำเนิด" หมายถึงเวลาที่แน่นอนเมื่อห่วงโซ่สัญญาณเริ่มทำงานและเริ่มดำเนินการพิสูจน์และบล็อก นอกจากนี้ยังเป็นเวลาที่สล็อต 0 ยุค 0 เริ่มต้นขึ้น
(หากผู้อ่านต้องการดูภาพรวมอย่างรวดเร็ว สามารถข้ามไปที่ส่วน "สองกรณีของการสร้างสรรค์" ด้านล่างได้โดยตรง)
เงินฝากตรวจสอบความถูกต้องLaunchpadก่อนอื่น ความรู้พื้นฐานเล็กน้อยที่ผู้อ่านจำเป็นต้องรู้คือ ผู้ตรวจสอบความถูกต้องจำเป็นต้องฝากเงินเข้าในสัญญาบน Eth1 blockchain ก่อนเข้าร่วม Eth2 สำหรับผู้ตรวจสอบ Eth2 แต่ละคน พวกเขาจำเป็นต้องส่ง 32 ETH และข้อมูลอื่นๆ ไปยังสัญญา ตัวอย่างเช่น ผู้อ่านสามารถเข้าถึง
เว็บไซต์ส่งเงินฝากและข้อมูลไปยังเครือข่ายทดสอบ Medalla อย่าลืมว่าตอนนี้ Medalla กำลังใช้ ETH จาก Goerli testnet! อย่าส่ง mainnet ETH ไปที่สัญญา แน่นอนว่าเมื่อมีการเปิดตัว beacon chain จริง เราจะใช้ ETH ของเครือข่ายหลัก
ต่อไป เราสนใจเฉพาะเงินฝากที่ถูกต้องเท่านั้น: เงินฝากครั้งเดียวไม่น้อยกว่า 32 ETH หรือเงินฝากหลายรายการที่เป็นของเครื่องมือตรวจสอบความถูกต้องเดียวกันซึ่งมีมูลค่ารวมไม่น้อยกว่า 32 ETH ซึ่งต้องมีการตรวจสอบข้อมูลเพิ่มเติม (ลายเซ็นเข้ารหัส) เงินฝากที่ไม่ถูกต้องหรือไม่เพียงพอจะถูกละเว้นใน Genesis
โหนดสัญญาณ
ก่อนการสร้าง มีเพียงโหนดบีคอนเท่านั้นที่เปิดใช้งานบนเชน Eth2 หลังจากสร้างแล้ว ตัวตรวจสอบจะทำงานทันที โหนดสัญญาณจะรักษาสถานะของระบบและสื่อสารระหว่างกันในเครือข่ายเพียร์ทูเพียร์
ดังนั้นก่อนที่จะสร้างโลก มีโหนดสัญญาณจำนวนมากเฝ้าดู Ethereum 1.0 blockchain และให้ความสนใจกับเงินฝากที่ถูกต้องในสัญญาการฝากเงิน พวกเขาไม่จำเป็นต้องจับตาดูมันตลอด 24 ชั่วโมง เนื่องจากบล็อก Eth1 มีการประทับเวลา ดังนั้นโหนดจึงสามารถอัปเดตได้ตลอดเวลาก่อนที่จะเกิด14 * 1024ตอนนี้ทุกคนรู้แล้วว่าบล็อก Eth1 สามารถย้อนกลับและเปลี่ยนความคิดเกี่ยวกับการทำธุรกรรมที่ถูกต้องได้ นี่คือเหตุผลที่คุณต้องรอ 30 บล็อกเมื่อโอน ETH ในการแลกเปลี่ยน ขอบเขตของการย้อนกลับมักจะมีขนาดเล็กมาก - ประมาณหนึ่งหรือสองช่วงตึก แต่ในกรณีที่มีการโจมตีเครือข่าย ขอบเขตของการย้อนกลับอาจมีขนาดใหญ่มาก เพื่อหลีกเลี่ยงสถานการณ์นี้บน Eth2 ให้ได้มากที่สุด เราจึงต้องรักษาอย่างระมัดระวัง
วินาทีแห่งความล่าช้า ประมาณ 4 ชั่วโมง ฉันเรียกสิ่งนี้ว่าระยะการซิงโครไนซ์ของ Eth1 (ระยะทางตาม Eth1)
เมื่อไร? WHO?
คำถามสองข้อเกี่ยวกับการกำเนิด "เมื่อไหร่" และ "ใคร": จะเริ่มเมื่อใด และใครจะอยู่ในกองทัพตรวจสอบการกำเนิดบล็อก คำตอบของคำถามสองข้อนี้กำหนดสถานะการกำเนิดของห่วงโซ่บีคอน ซึ่งมาจากสถานะอื่นๆ ทั้งหมด
กระบวนการทั่วไปมีดังนี้:
ติดตามการฝากเงินบน Eth1 blockchain
เมื่อเวลาผ่านไปเพียงพอและเงินฝากถึงจำนวนที่กำหนด สถานะการกำเนิดจะถูกสร้างขึ้น
สองวันต่อมา เริ่มบล็อกเชนในเวลากำเนิด
ในขั้นตอนที่ 2 เราต้องให้ความสนใจเป็นพิเศษกับสองประเด็นเมื่อมองหาบล็อกแรกบน Eth1:
มีเงินฝากเพียงพอหรือไม่
มันเร็วเกินไปไหม.
บล็อกแรกที่ตรงตามเงื่อนไขทั้งสองนี้จะถูกตั้งค่าเป็นสถานะกำเนิด
MIN_GENESIS_TIMEเวลาและบทบาทได้รับผลกระทบจากการตั้งค่าพารามิเตอร์หลักสามรายการต่อไปนี้1596546000เวลา Unix —— เวลา UTC 13:00:00 น. ของวันที่ 4 สิงหาคม 2020 โดยใช้ข้อกำหนด RFC2822
GENESIS_DELAYใช่172800ใช่
MIN_GENESIS_ACTIVE_VALIDATOR_COUNTวินาที 48 ชั่วโมงพอดีเป๊ะ นี่คือช่วงเวลาระหว่างการสร้างสถานะการกำเนิดและการเริ่มต้นของเหตุการณ์บล็อคเชนและการกำเนิด ความล่าช้านี้คือการอนุญาตให้ทีมไคลเอ็นต์เขียนสถานะการกำเนิดลงในโหนดบีคอน เพื่อให้พวกเขาไม่ต้องติดตาม Eth1 blockchain อีกต่อไป แม้ว่าพวกเขาจะไม่ได้ใช้งานโหนดตรวจสอบก็ตาม นอกจากนี้ยังทำให้มีเวลาสำหรับการโฮสต์สตรีมกิจกรรมทั่วไปและกิจกรรมพบปะ16384คือจำนวนตัวตรวจสอบความถูกต้องที่ใช้งานอยู่ขั้นต่ำที่เราต้องการในสัญญาการฝาก Eth1 ก่อนที่จะสร้างสถานะการกำเนิด บนเครือข่ายทดสอบ Medalla (และ mainnet) พารามิเตอร์นี้คือ
ผู้ตรวจสอบ
สองสถานการณ์ของการสร้าง
สถานะการกำเนิดขึ้นอยู่กับบล็อก Eth1 แรกที่ตรงตามเงื่อนไขสองข้อต่อไปนี้:
บล็อก Eth1 แรกซึ่งอิงตามสถานะการกำเนิดต้องเป็นไปตามเงื่อนไขสองข้อต่อไปนี้:
ตัวตรวจสอบอย่างน้อย 16384 (MIN_GENESIS_ACTIVE_VALIDATOR_COUNT) ตัวได้ลงทะเบียนในการบล็อกนี้หรือก่อนหน้านี้ และ
การประทับเวลาจะไม่เร็วเกินไป (ไม่เร็วกว่า MIN_GENESIS_TIME – GENESIS_DELAY)
ตามลำดับที่ตรงตามข้อกำหนดทั้งสองนี้ กระบวนการสร้างจะดำเนินการในสองกรณีต่อไปนี้:
ครบตามจำนวนเงินฝากก่อน
ในกรณีนี้ให้ปฏิบัติตามเงื่อนไขที่ 1 ก่อน เงินฝากที่เพียงพอที่เราได้รับก่อนเวลากำเนิดที่เร็วที่สุด
จุดเวลาเครือข่ายการทดสอบ Medalla ระหว่าง MIN_GENESIS_TIME – GENESIS_DELAY คือวันอาทิตย์ที่ 2 สิงหาคม UTC 1300
บล็อกเริ่มต้นของเราเป็นบล็อกแรกบน Eth1 ที่ขุดได้หลังจากเวลานี้ นั่นคือ ขุดเมื่อเวลา 13:00:05 น. (5 วินาทีหลัง 13.00 น.)
หากเงินฝากที่ถูกต้องที่ได้รับจากสัญญาการฝากเงินสำหรับบล็อกนี้ถึงหรือเกิน 16384 เงินฝากทั้งหมดที่ได้รับจนถึงตอนนี้จะรวมอยู่ในสถานะการกำเนิด ดังนั้น จำนวนตัวตรวจสอบความถูกต้องอาจสูงกว่า 16384 มาก (บนเครือข่ายทดสอบ Altona เราตั้งค่า MIN_GENESIS_ACTIVE_VALIDATOR_COUNT เป็น 640 แต่กลายเป็นว่ามีตัวตรวจสอบความถูกต้องของแหล่งกำเนิด 685 ตัว)
บล็อก Eth1 นี้เริ่มคำนวณสถานะการสร้าง และกิจกรรมการสร้างของ Medalla จะเริ่มขึ้นภายใน 48 ชั่วโมงหลังจากการประทับเวลาของบล็อก ในตัวอย่างนี้ จะเป็น 13:00:05 น. ของวันอังคารที่ 4 สิงหาคม
โปรดทราบว่าเราไม่ทราบสถานะการกำเนิดจริงๆ จนกว่าจะผ่านไป 4 ชั่วโมงเนื่องจากระยะการซิงค์ Eth นั่นคือ ในกรณีนี้ เราทราบสถานะการกำเนิดของ Medalla ในวันอาทิตย์ที่ 2 สิงหาคม เวลา UTC1700
สรุป
สรุป
เหตุการณ์การกำเนิดจะเริ่มขึ้นไม่กี่วินาทีหลังจากเวลาการกำเนิดที่เร็วที่สุด หากจำนวนเงินฝากตรงตามข้อกำหนดก่อน สถานะการกำเนิดรวมถึงตัวตรวจสอบความถูกต้องที่ลงทะเบียนทั้งหมด 48 ชั่วโมงก่อนเวลานี้
2. การประทับเวลาตรงตามเงื่อนไขก่อนหน้าหมายเลขเงินฝาก
สิ่งนี้จะเกิดขึ้นเมื่อตรงตามเงื่อนไขที่ 2 ก่อน จำนวนเงินฝากเพิ่มขึ้นอย่างช้าๆ และไม่ถึงจำนวนขั้นต่ำที่มีผลภายในเวลาที่กำหนดไว้
ในกรณีนี้ บล็อก Eth1 ที่บรรจุเงินฝากที่ 16384 จะกลายเป็นบล็อกเริ่มต้น เราคิดว่าบล็อกนี้ถูกขุดในวันพุธที่ 5 สิงหาคม เวลา 12:34:56 น. UTC
ตอนนี้ สถานะบล็อกจะมีตัวตรวจสอบความถูกต้อง 16384 ตัวและเงินฝากที่ถูกต้องอื่นๆ ในบล็อกนั้น ดังนั้น หากบล็อกนั้นมีเงินฝากหลายรายการ จะมีตัวตรวจสอบมากกว่าเงินฝากขั้นต่ำรวมอยู่ด้วย
เวลากำเนิดจะเป็นการประทับเวลาของบล็อกบวก 48 ชั่วโมง ในตัวอย่างนี้ วันศุกร์ที่ 7 สิงหาคม เวลา 12:34:56 น. UTC
นอกจากนี้ เนื่องจากระยะการซิงก์ Eth1 เราไม่ทราบสถานะการกำเนิดหรือเวลาการกำเนิดจนกระทั่ง 4 ชั่วโมงหลังจากการขุดบล็อก Eth1 นี้
สรุป
หากการเติบโตของเงินฝากช้า เหตุการณ์การกำเนิดจะเริ่มขึ้น 48 ชั่วโมงหลังจากขุดบล็อก Eth1 ที่มีเงินฝาก 16384 สถานะการกำเนิดประกอบด้วยตัวตรวจสอบความถูกต้อง 16834 ตัว รวมถึงตัวตรวจสอบความถูกต้องอื่น ๆ ในบล็อก Eth 1 เดียวกัน
สรุปแล้ว
สรุปแล้ว
บทความนี้เขียนขึ้นที่นี่ คุณเข้าใจสถานการณ์พื้นฐานของการสร้างบีคอนเชนแล้วหรือยัง
รอคอยที่จะพบทุกท่านที่ Medalla!
ข้อจำกัดความรับผิดชอบ: งานแปลของ ECN มีเป้าหมายเพื่อส่งมอบข้อมูลคุณภาพสูงและทรัพยากรการเรียนรู้สำหรับชุมชน Ethereum ของจีน ลิขสิทธิ์ของบทความเป็นของผู้เขียนต้นฉบับ การพิมพ์ซ้ำต้องระบุแหล่งที่มาของข้อความต้นฉบับและ ethereum.cn สำหรับระยะยาว พิมพ์ซ้ำ โปรดติดต่อ Authorize etheremcn@gmail.com


