ภาพรวมโดยย่อของเครื่องมือทดสอบและเปรียบเทียบบล็อคเชน

ภาพรวมโดยย่อของเครื่องมือทดสอบและเปรียบเทียบบล็อคเชน

ในปัจจุบัน โซลูชันสำหรับการทดสอบและการเปรียบเทียบบล็อคเชนได้รับการปรับแต่งให้เหมาะกับบล็อคเชนเฉพาะหรือทางแยกของมัน แต่ยังมีโซลูชันทั่วไปอีกมากมายที่แตกต่างกันในด้านฟังก์ชันการทำงาน: บางโซลูชันเป็นโครงการโอเพ่นซอร์ส ส่วนโซลูชันอื่น ๆ จัดทำเป็น SaaS แต่ส่วนใหญ่เป็นโซลูชันภายในที่สร้างขึ้นโดยทีมพัฒนาบล็อกเชน อย่างไรก็ตาม พวกเขาทั้งหมดสามารถแก้ไขปัญหาที่คล้ายกันได้ ในบทความนี้ ฉันพยายามทบทวนผลิตภัณฑ์หลายอย่างที่ออกแบบมาเพื่อการทดสอบบล็อกเชนโดยเฉพาะ

การทำงานของเครือข่ายบล็อกเชนคล้ายคลึงกับการทำงานของฐานข้อมูลแบบกระจาย ดังนั้นจึงสามารถใช้เครื่องมือและวิธีการที่คล้ายกันในการทดสอบได้ เพื่อให้เข้าใจได้ดียิ่งขึ้นถึงวิธีทดสอบฐานข้อมูลแบบกระจาย โปรดดูแหล่งข้อมูลและบทความดีๆ ที่คัดสรรมา ด้วยเหตุนี้. ตัวอย่างเช่น เวลาแฝงจะถูกจัดเรียงเป็นชิ้นๆ ในสิ่งนี้ статьеและเพื่อทำความเข้าใจว่าพวกเขามองหาจุดบกพร่องในอัลกอริธึมการจำลองอย่างไร ฉันแนะนำให้อ่านข้อความนี้ บทความ.

ฉันจะอธิบายโซลูชันยอดนิยมหลายประการสำหรับการทดสอบและเปรียบเทียบบล็อกเชน ฉันจะดีใจถ้าในความคิดเห็นที่คุณอธิบายผลิตภัณฑ์ซอฟต์แวร์ที่มีประโยชน์อื่น ๆ สำหรับการแก้ปัญหาเดียวกัน

ภาพรวมโดยย่อของเครื่องมือทดสอบและเปรียบเทียบบล็อคเชน

ฉันจะเริ่มต้นด้วยเครื่องมือที่แม้ว่าจะไม่ได้สร้างขึ้นสำหรับบล็อกเชนโดยเฉพาะ แต่ก็ช่วยให้คุณสามารถทดสอบการทำงานของมันได้อย่างมีประสิทธิภาพ โดยมีเงื่อนไขว่ามีเครือข่ายที่ทำงานอยู่แล้วซึ่งคุณสามารถทดลองได้ ปัจจัยที่สำคัญที่สุดในความน่าเชื่อถือของระบบแบบกระจายคือความสามารถในการทำงานต่อไปในกรณีที่เกิดปัญหากับเซิร์ฟเวอร์และเครือข่าย นี่อาจเป็นความล่าช้าของเครือข่าย ความเต็มของดิสก์ บริการภายนอก (DNS) ไม่พร้อมใช้งาน ความล้มเหลวของฮาร์ดแวร์ และเหตุผลอื่นๆ อีกหลายร้อยประการ คุณสามารถใช้เพื่อตรวจสอบความเสถียรของระบบใด ๆ ที่ทำงานพร้อมกันบนเครื่องระบบจำนวนมาก ปู่โสม. ใช้วิธีการที่มีประสิทธิภาพอย่างยิ่งที่เรียกว่า Chaos Engineering

Gremlin ใช้เอเจนต์เครือข่ายของตัวเองสร้างปัญหาหลายประเภทในจำนวนเครื่องที่ต้องการ: เครือข่ายล่าช้า การโอเวอร์โหลดทรัพยากรใดๆ (CPU, ดิสก์, หน่วยความจำ, เครือข่าย), ปิดการใช้งานแต่ละโปรโตคอล ฯลฯ สำหรับบล็อกเชน สามารถใช้ Gremlin บนเซิร์ฟเวอร์ทดสอบเน็ต จำลองปัญหาในชีวิตจริง และสังเกตพฤติกรรมของเครือข่าย ด้วยเครื่องมือนี้ นักพัฒนาและผู้ดูแลระบบสามารถสังเกตในสภาพแวดล้อมที่มีการควบคุมว่าจะเกิดอะไรขึ้นหากระบบล่มหรือเมื่อมีการอัปเดตโค้ด ในกรณีนี้ เครือข่ายจะต้องได้รับการกำหนดค่าและใช้งานล่วงหน้า รวมถึงกำหนดค่าให้รวบรวมตัวชี้วัดที่จำเป็น

Gremlin เป็นเครื่องมือที่สะดวกสำหรับสถาปนิก นักพัฒนาซอฟต์แวร์ และผู้เชี่ยวชาญด้านความปลอดภัย และเป็นโซลูชันสากลสำหรับการทดสอบระบบแบบกระจายทั้งแบบสำเร็จรูปและที่ทำงานอยู่ รวมถึงบล็อกเชน

ภาพรวมโดยย่อของเครื่องมือทดสอบและเปรียบเทียบบล็อคเชน

Hyperledger Caliper เป็นโซลูชันที่พิเศษกว่ามาก คาลิปเปอร์ไฮเปอร์เลดเจอร์. ในขณะนี้ Caliper รองรับบล็อกเชนหลายรายการในคราวเดียว - ตัวแทนของกลุ่ม Hyperledger (Fabric, Sawtooth, Iroha, Burrow, Besu) รวมถึง Ethereum และเครือข่าย FISCO BCOS

เมื่อใช้ Caliper คุณสามารถตั้งค่าโทโพโลยีของเครือข่ายบล็อกเชนและสัญญาสำหรับการทดสอบ รวมทั้งอธิบายการกำหนดค่าของโหนดได้ โหนดบล็อคเชนถูกยกขึ้นในคอนเทนเนอร์นักเทียบท่าบนเครื่องเดียว จากนั้นคุณสามารถเลือกสิ่งที่จำเป็นได้ ทดสอบการกำหนดค่า และรับไฟล์พร้อมรายงานผลการทดสอบหลังเปิดตัว สามารถดูรายการหน่วยเมตริก Caliper ทั้งหมดและวิธีการเปรียบเทียบได้ที่นี่ ตัวชี้วัดประสิทธิภาพของ Hyperledger Blockchainนี่เป็นบทความที่ดีหากคุณสนใจในหัวข้อการเปรียบเทียบบล็อคเชน คุณยังสามารถตั้งค่าคอลเลกชันตัววัดใน Prometheus/Grafana แยกต่างหากได้

Hyperledger Caliper เป็นเครื่องมือที่มุ่งเป้าไปที่นักพัฒนาและสถาปนิกระบบ เนื่องจากให้ความสามารถในการทำซ้ำการทดสอบและการทดสอบและการวัดประสิทธิภาพแบบอัตโนมัติ มันถูกใช้ในการพัฒนาแกนหลักของบล็อกเชน: อัลกอริธึมที่เป็นเอกฉันท์, เครื่องเสมือนสำหรับการประมวลผลสัญญาอัจฉริยะ, เลเยอร์แบบเพียร์ทูเพียร์ และกลไกของระบบอื่น ๆ

ภาพรวมโดยย่อของเครื่องมือทดสอบและเปรียบเทียบบล็อคเชน

ถัง MixBytes เป็นเครื่องมือที่เกิดขึ้นในกระบวนการพัฒนาอัลกอริธึมฉันทามติและขั้นสุดท้ายสำหรับเครือข่ายที่ใช้ EOS และการทดสอบพาราเชนตาม Parity Substrate (Polkadot) ในแง่ของฟังก์ชันการทำงาน มีความใกล้เคียงกับ Hyperledger Caliper เนื่องจากช่วยให้คุณสามารถรวบรวมการวัดที่สำคัญจากโหนดของระบบแบบกระจายและเครื่องไคลเอนต์ที่สคริปต์ทดสอบกำลังทำงานอยู่

MixBytes Tank ใช้บริการคลาวด์หลายอย่าง (Digital Ocean, Google Cloud Engine ฯลฯ) ซึ่งสามารถเปิดใช้งานโหนดจำนวนมาก ดำเนินขั้นตอนการกำหนดค่าเบื้องต้น รันการวัดประสิทธิภาพหลายรายการพร้อมกันบนเครื่องที่แตกต่างกัน รวบรวมตัวชี้วัดที่จำเป็น และปิดระบบโดยอัตโนมัติ เครือข่าย

MixBytes Tank ช่วยให้คุณประหยัดเงินบนเซิร์ฟเวอร์คลาวด์โดยการลดทรัพยากรที่ไม่จำเป็นให้เหลือน้อยที่สุดโดยอัตโนมัติหลังการทดสอบ คุณสมบัติที่โดดเด่นอีกประการหนึ่งคือการใช้แพ็คเกจ Molecule ซึ่งช่วยให้นักพัฒนาสามารถทดสอบการใช้งานบล็อกเชนที่ต้องการภายในเครื่องได้

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

ภาพรวมโดยย่อของเครื่องมือทดสอบและเปรียบเทียบบล็อคเชน

Whiteblock Genesis เป็นแพลตฟอร์มทดสอบสำหรับบล็อกเชนที่ใช้ Ethereum เครื่องมือนี้มีฟังก์ชันการทำงานที่ค่อนข้างกว้าง: ช่วยให้คุณสามารถเปิดใช้งานเครือข่าย, สร้างบัญชีตามจำนวนที่ต้องการ, เพิ่มจำนวนไคลเอ็นต์ที่ต้องการ, กำหนดค่าโทโพโลยีเครือข่าย, ระบุพารามิเตอร์แบนด์วิดท์และ packetloss และทำการทดสอบ

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

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

แมตต์

ผลิตภัณฑ์ใหม่ที่น่าสนใจอีกอย่างหนึ่งสำหรับการทดสอบระบบแบบกระจายคือ บ้า. เขียนด้วยภาษา Python และช่วยให้คุณสร้างโทโพโลยีเครือข่ายที่ต้องการ รวมถึงจำนวนเซิร์ฟเวอร์และไคลเอนต์ที่ต้องการโดยใช้สคริปต์การกำหนดค่าอย่างง่าย (ตัวอย่าง). หลังจากนี้ บริการจะปรับใช้เครือข่ายในคอนเทนเนอร์ Docker หลายตัว และเปิดเว็บอินเตอร์เฟสซึ่งคุณสามารถสังเกตข้อความจากเซิร์ฟเวอร์และไคลเอนต์ของเครือข่ายได้ Madt สามารถใช้สำหรับการทดสอบบล็อกเชน - พื้นที่เก็บข้อมูลโปรเจ็กต์มีการทดสอบเครือข่าย p2p ตามโปรโตคอล Kademlia ซึ่งความล่าช้าในการส่งข้อมูลไปยังโหนดจะค่อยๆ เพิ่มขึ้นและสถานะของข้อมูลนี้จะถูกตรวจสอบ

Madt เพิ่งปรากฏตัวเมื่อไม่นานมานี้ แต่ด้วยสถาปัตยกรรมที่ยืดหยุ่นมาก จึงสามารถพัฒนาเป็นผลิตภัณฑ์ที่ใช้งานได้จริง

โซลูชั่นอื่นๆ

การทดสอบส่วนระบบของบล็อคเชนเกือบทั้งหมดจำเป็นต้องมีการรันสคริปต์เบื้องต้น การจัดเตรียมบัญชีและเงื่อนไขสำหรับการทดสอบ (ซึ่งอาจเป็นการทดสอบข้อผิดพลาดที่เป็นเอกฉันท์ที่สามารถสร้างการ fork of chains จำนวนมาก การทดสอบสถานการณ์การ hard fork การเปลี่ยนแปลงพารามิเตอร์ของระบบ เป็นต้น) การจัดการทั้งหมดนี้ดำเนินการแตกต่างกันในบล็อกเชนที่แตกต่างกัน ดังนั้นจึงเป็นเรื่องง่ายสำหรับทีมที่จะค่อยๆ ปรับการทดสอบผลิตภัณฑ์และการเปรียบเทียบมาตรฐานกับ CI/CD ภายใน และใช้การพัฒนาของตนเอง ซึ่งจะค่อยๆ ซับซ้อนมากขึ้นเมื่อฟังก์ชันการทำงานของบล็อกเชนพัฒนาขึ้น

อย่างไรก็ตาม การใช้โซลูชันสำเร็จรูปสามารถลดเวลาการทดสอบสำหรับทีมเหล่านี้ได้อย่างมาก ดังนั้นฉันคิดว่าซอฟต์แวร์นี้จะได้รับการพัฒนาอย่างแข็งขันในปีต่อๆ ไป

ข้อสรุป

เพื่อสรุปการทบทวนสั้นๆ นี้ ฉันจะแสดงรายการคุณลักษณะที่สำคัญหลายประการของเครื่องมือทดสอบบล็อคเชน:

  • ความสามารถในการปรับใช้เครือข่ายบล็อกเชนโดยอัตโนมัติภายใต้เงื่อนไขที่ทำซ้ำได้ ปัจจัยนี้มีความสำคัญในการพัฒนาส่วนต่างๆ ของระบบของบล็อกเชน: อัลกอริธึมที่เป็นเอกฉันท์, ขั้นสุดท้าย, สัญญาอัจฉริยะของระบบ
  • ค่าใช้จ่ายในการเป็นเจ้าของระบบ ทรัพยากรที่ใช้ และความสะดวกในการใช้งานอย่างต่อเนื่อง ปัจจัยนี้ทำให้โครงการได้รับการทดสอบคุณภาพสูงด้วยเงินเพียงเล็กน้อย
  • ความยืดหยุ่นและความเรียบง่ายของการกำหนดค่าการทดสอบ ปัจจัยนี้เพิ่มโอกาสในการระบุปัญหาของระบบ - มีโอกาสน้อยที่จะพลาดบางสิ่งที่สำคัญ
  • การปรับแต่งสำหรับบล็อกเชนประเภทเฉพาะ การพัฒนาโซลูชันจากโซลูชันที่มีอยู่สามารถปรับปรุงคุณภาพและลดต้นทุนด้านเวลาได้อย่างมาก
  • ความสะดวกและการเข้าถึงผลลัพธ์ที่ได้รับและประเภทของผลลัพธ์ (รายงาน ตัวชี้วัด กราฟ บันทึก ฯลฯ) นี่เป็นสิ่งจำเป็นอย่างยิ่งหากคุณต้องการติดตามประวัติการพัฒนาผลิตภัณฑ์ หรือหากคุณต้องการการวิเคราะห์เชิงลึกเกี่ยวกับพฤติกรรมของเครือข่ายบล็อกเชน

ขอให้โชคดีกับการทดสอบของคุณและขอให้บล็อกเชนของคุณรวดเร็วและทนทานต่อข้อผิดพลาด!

ที่มา: will.com

เพิ่มความคิดเห็น