ลูกค้าไร้สัญชาติ: มีอะไรใหม่ใน Ethereum 1.x
หมายเหตุบรรณาธิการ: บทความนี้มาจากผู้ที่ชื่นชอบ Ethereum (ID: ethfans)หมายเหตุบรรณาธิการ: บทความนี้มาจาก
ผู้ที่ชื่นชอบ Ethereum (ID: ethfans)
ผู้ที่ชื่นชอบ Ethereum (ID: ethfans)
ผู้แต่ง: Piper Merriam แปล: A Jian พิมพ์ซ้ำโดย Odaily โดยได้รับอนุญาต
เช่นเดียวกับเครือข่ายทั่วๆ ไป เครือข่าย Ethereum ก็มีปัญหาในการบำรุงรักษาหลายอย่าง เช่น การขยายตัวอย่างต่อเนื่องของข้อมูลสถานะ เวลาในการซิงโครไนซ์ที่นานขึ้นและนานขึ้น และความนิยมของโหนดแบบเต็มกำลังน้อยลงเรื่อยๆ หากไม่ตรวจสอบ ปัญหาเหล่านี้อาจเป็นภัยคุกคามร้ายแรงต่ออนาคตของ Ethereum 1.x

ประเด็นเหล่านี้ได้รับการพิจารณาอย่างจริงจังเป็นครั้งแรกโดยนักพัฒนาหลักและนักพัฒนาชุมชนที่ Devcon4 และการวิจัยเกี่ยวกับทิศทางการอัปเกรดปัจจุบันของโปรโตคอล Ethereum ได้รับการขนานนามว่า "Ethereum 1.x" แต่เมื่อเร็ว ๆ นี้ การวิจัย 1.x ได้หยุดชะงักลง เนื่องจากผู้คนจำนวนมากขึ้นได้เปลี่ยนความสนใจไปที่ Ethereum 2.0 ซึ่งเป็นเรื่องที่เข้าใจได้ Eth2.0 นั้นน่าสนใจมากกว่า
อย่างไรก็ตาม Ethereum 2.0 (Serenity Tranquility) จะยังไม่เกิดขึ้นอย่างสมบูรณ์จนกว่าจะถึง 2 ถึง 3 ปีต่อมา ซึ่งระยะที่ 0 และระยะที่ 1 จะรับรู้ใน 1 ถึง 2 ปี และระยะที่ 2 อาจไม่มาถึงจนถึงปี 2565
ในขณะเดียวกัน ปัญหาต่างๆ เช่น สถานะการขยายข้อมูล เวลาในการซิงโครไนซ์ที่นานขึ้น และความสมบูรณ์ของเครือข่ายที่ลดลงล้วนเป็นเรื่องเร่งด่วน นอกจากนี้ ยังไม่มีแผนการที่ชัดเจนในการโยกย้ายเชน Ethereum ปัจจุบันไปยังสภาพแวดล้อมการดำเนินการสำหรับ Eth2.0
หลังจากพบปะกับนักพัฒนาไคลเอนต์บางส่วนในโอซาก้าในปีนี้ ฉันได้หารือเกี่ยวกับปัญหาเหล่านี้ในเชิงลึกกับผู้อื่น และโดยไม่มีข้อยกเว้น เราทุกคนเห็นพ้องต้องกันว่าการวิจัย 1.x และการอัปเกรดนั้นสมเหตุสมผล
เราได้กำหนดทิศทางและแผนใหม่ร่วมกันโดยหวังว่าจะรักษาห่วงโซ่ Ethereum 1.0 ให้มีชีวิตชีวาและมีสุขภาพดีในขณะที่วิ่งไปสู่ความสงบ
เราเตรียม:
ปรับปรุงความหลากหลายของไคลเอ็นต์ของเครือข่าย Ethereum
วางรากฐานที่มั่นคงสำหรับการเปลี่ยนแปลงที่ราบรื่นเพื่อเป็นสภาพแวดล้อมการดำเนินการสำหรับ 2.0
นี่เป็นภารกิจที่ซับซ้อนซึ่งต้องการความร่วมมือจากหลายทีมอย่างไม่ต้องสงสัย แต่หลังจากการประชุมทางวิดีโอที่ทำลายสถิติในสัปดาห์นี้ เราได้เปิดบทใหม่ในการวิจัย Ethereum 1.x อย่างกล้าหาญ
ชื่อเรื่องรอง
สาเหตุ
เรื่องราวเริ่มต้นด้วยการเปิดตัวไคลเอนต์ Trinity ครั้งแรกในต้นปี 2561 Trinity เป็นไคลเอนต์ Ethereum ที่เขียนด้วย Python เนื่องจาก Python เป็นภาษาที่ตีความได้ จึงเป็นไปไม่ได้ที่จะแข่งขันด้านประสิทธิภาพกับคู่แข่งอย่าง Go หรือ Rust แต่ก็มีคุณสมบัติที่ดีอยู่บ้าง
หลังจากเปิดตัวเบต้าแรก เราทำงานอย่างหนักเพื่อให้บรรลุการซิงโครไนซ์ข้อมูลบล็อกเชนอย่างรวดเร็ว แต่ก็ต้องพบกับข้อสรุปที่น่าผิดหวัง: ประสิทธิภาพของไคลเอ็นต์นี้ดูเหมือนจะไม่สามารถปล่อยให้ผู้คนใช้งานได้ ไม่มีใครต้องการรอหลายสัปดาห์ เพื่อให้โหนดซิงค์
หลังจากที่ "ซิงค์ด่วน" ไม่ได้ผล เราก็เริ่มมองหาสิ่งใหม่ๆ ที่จะทำ ตลอด 9 เดือนข้างหน้า เราย้ำแนวคิดที่ว่า "เราจะหลีกเลี่ยงปัญหานี้ทั้งหมดได้หรือไม่" หากเราสามารถหลีกเลี่ยงปัญหานี้ได้จริงๆ เราสามารถทำให้ไคลเอ็นต์ทำงานออนไลน์ได้อย่างรวดเร็ว และกิจกรรมของการทำให้เสร็จพร้อมกันและการทำงานออนไลน์เคยใช้เวลาหลายชั่วโมงหรือหลายวันกว่าจะเสร็จสมบูรณ์
วันหนึ่งในเดือนกันยายน 2019 เราได้สร้างต้นแบบขึ้นมา ซึ่งเราเรียกว่า "บีมซิงค์"
Beam sync ได้รับแรงบันดาลใจจากแนวคิดของ "stateless client": การใช้ส่วนหนึ่งของข้อมูลที่เรียกว่า "block widow (บล็อกพยาน)" beam sync จะไม่ดาวน์โหลดสถานะที่สมบูรณ์เหมือน "fast sync" เมื่อทำการซิงโครไนซ์ แต่จะส่งผ่านข้อมูลเท่านั้น จำเป็นต้องดำเนินการเปลี่ยนสถานะให้เสร็จสิ้น เมื่อกระบวนการซิงโครไนซ์สัมผัสกับสถานะมากขึ้นเรื่อย ๆ ไคลเอนต์สามารถสร้างสถานะบล็อกเชนที่สมบูรณ์ขึ้นใหม่และเปลี่ยนเป็นโหมดการซิงค์แบบเต็ม
เนื่องจากเฉพาะข้อมูลที่จำเป็นในการดำเนินการบล็อกเท่านั้นที่จะถูกดึงและดำเนินการทันที โหนดที่ใช้การซิงโครไนซ์เมนบีมจึงสามารถทำงานได้ทันที (แม้ว่าจะยังห่างไกลจากประสิทธิภาพสูงสุด แต่การทดสอบอย่างไม่เป็นทางการพิสูจน์ได้ว่า: หลังจากดาวน์โหลด ใช้เวลาเพียงประมาณ 5 นาทีในการเริ่มทำงานหลังจากนั้น ส่วนหัวของบล็อกทั้งหมด)
เนื่องจากแนวคิดเบื้องหลังบีมซิงค์ได้รับการพิสูจน์อย่างเต็มที่แล้ว ทีม Trinity จึงเปลี่ยนจากการค้นคว้าอย่างเงียบๆ มาเป็นการทดลองกับเวอร์ชันเบต้าที่ใช้งานได้ เราวางแผนที่จะเปิดตัวรุ่นเบต้าในไตรมาสที่สองของปี 2020
ชื่อเรื่องรอง
Alexey Akhunov ใช้เวลาส่วนใหญ่ในการแก้ปัญหาการระเบิดของรัฐ เมื่อเร็ว ๆ นี้ เขาสรุปว่าลูกค้าไร้สัญชาติเป็นวิธีการที่เป็นไปได้มากที่สุด โดยหลีกเลี่ยงทิศทางที่เป็นที่ถกเถียงกันมากขึ้น เช่น ค่าเช่าของรัฐ (หมายเหตุบรรณาธิการ: โปรดดูไฮเปอร์ลิงก์ที่ท้ายบทความ)
และโดยพื้นฐานแล้ว Beam sync จะเริ่มต้นจากโหมดไร้สถานะ และค่อยๆ เปลี่ยนไปเป็นโหมด Rich state เมื่อบล็อกต่างๆ จะค่อยๆ ดาวน์โหลดไปยังฐานข้อมูลในเครื่อง ด้วย Beam sync ทางออนไลน์ เราจะสามารถร่างเส้นทางที่ชัดเจนไปยังเครือข่ายที่ดีในการจัดหาส่วนผสมที่จำเป็นสำหรับไคลเอนต์ไร้สัญชาติได้ในไม่ช้า
ยิ่งไปกว่านั้น ไคลเอนต์ไร้สัญชาติยังเข้ากันได้กับโมเดลไคลเอนต์ปัจจุบันในทางทฤษฎี ซึ่งหมายความว่างานวิจัยของอเล็กซีย์มีประโยชน์ จะนำการปรับปรุงเพิ่มเติมบางส่วนมาสู่เครือข่ายเท่านั้น และไม่ต้องการการปรับปรุงเลเยอร์โปรโตคอล A ขนาดใหญ่ที่เป็นที่ถกเถียง
ชื่อเรื่องรอง
จาก 1.x ถึง 2.0
ด้วยเหตุนี้ การทำงานได้อย่างน่าเชื่อถือบนไคลเอนต์ไร้สัญชาติอาจกลายเป็นข้อกำหนดเบื้องต้นสำหรับการย้ายเครือข่าย Ethereum 1.x ไปเป็น shard 2.0
ดังนั้นเราจึงมุ่งมั่นที่จะดำเนินการแบบไร้สถานะของ Ethereum 1.x และเรากำลังเตรียมการที่จำเป็นสำหรับการโยกย้ายที่ราบรื่นของ 1.x
กล่าวอีกนัยหนึ่ง ความไร้รัฐไร้สัญชาติในวันนี้ ความสงบสุขในวันพรุ่งนี้
ชื่อเรื่องรอง
การทำให้เป็นทางการ 1.x การวิจัย
ในวันสุดท้ายของ Devcon ฉันกำลังอภิปรายเกี่ยวกับวิธีเริ่มต้นงานวิจัย 1.x อีกครั้ง ทุกคนรู้ว่ามีปัญหาและแสดงความสนใจที่จะแก้ไข นี่คือสิ่งสุดท้ายที่ทำให้ฉันมีความสุข
หาก Trinity และทีมไคลเอนต์ที่เหลือสามารถปรับปรุงองค์ประกอบเครือข่ายของไคลเอ็นต์และสนับสนุนการซิงค์บีมได้ เราจะทำให้เครือข่าย Ethereum ไร้สถานะได้อย่างสมบูรณ์ ไคลเอนต์ไร้สัญชาติของ Ethereum 1.x จะเตรียมโปรโตคอลสำหรับการโยกย้ายไปยังสภาพแวดล้อมการดำเนินการบน Ethereum 2.0 เมื่อองุ่นสุก
ด้วยแรงบันดาลใจจาก 9 ทีม (และมากกว่านั้น) ที่พัฒนาไคลเอนต์ Ethereum 2.0 เราหวังว่าจะบรรลุความร่วมมือเชิงลึกระหว่างทีมต่างๆ และสร้างวิสัยทัศน์ Eth1.x ที่ชัดเจนและสูงส่ง ซึ่งสามารถแบ่งออกเป็นวิสัยทัศน์ผลลัพธ์ที่เฉพาะเจาะจง


