ประกาศกระเป๋าสตางค์ MultiChain ใหม่ PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

เปิดตัวกระเป๋าเงิน MultiChain ใหม่

ก้าวสำคัญสู่ประสิทธิภาพและความสามารถในการปรับขนาด

หลังจากสองเดือนของการพัฒนาและทดสอบอย่างเข้มข้น เราภูมิใจที่จะปล่อยอัลฟ่าล่าสุดของ MultiChain ด้วยกระเป๋าเงินในโหนดที่เขียนใหม่ทั้งหมด กระเป๋าเงินใหม่นี้เปลี่ยนประสิทธิภาพและความสามารถในการปรับขนาดของการสร้าง รับ และจัดเก็บธุรกรรมใน MultiChain

ก่อนที่เราจะลงรายละเอียด ให้ฉันให้บริบทบางอย่าง เมื่อเราเริ่มพัฒนา MultiChain เราตัดสินใจใช้ Bitcoin Coreซึ่งเป็นโหนดมาตรฐานสำหรับเครือข่ายบิตคอยน์สาธารณะ เป็นจุดเริ่มต้น ในแง่การเขียนโปรแกรม นี่หมายความว่า MultiChain เป็น "ทางแยก" ของซอฟต์แวร์ bitcoin เหตุผลหลักของเราคือ Bitcoin เป็น (และยังคงเป็น) ระบบนิเวศของ cryptocurrency ที่มีมูลค่าสูงสุดและผ่านการทดสอบการต่อสู้มากที่สุด

ในแง่บวก การตัดสินใจครั้งนี้ช่วยให้เราเข้าสู่ตลาดได้อย่างรวดเร็ว เมื่อเทียบกับการเข้ารหัสโหนดบล็อกเชนตั้งแต่เริ่มต้น แม้จะมีความแตกต่างมากมายระหว่างบล็อคเชนสาธารณะและส่วนตัว แต่ก็แบ่งปันพื้นฐานทางเทคนิคจำนวนมาก รวมถึงโปรโตคอลแบบเพียร์ทูเพียร์ โครงสร้างธุรกรรมและบล็อก การสร้างและการตรวจสอบลายเซ็นดิจิทัล กฎฉันทามติ การจัดการคีย์ และความจำเป็น โหนด API การ Forking จาก Bitcoin Core ช่วยให้เราสามารถใช้ประโยชน์จากความสมบูรณ์ของมันและมุ่งเน้นไปที่สิ่งที่ MultiChain เพิ่มให้กับบล็อคเชน – ความสามารถในการกำหนดค่า การอนุญาต และการสนับสนุนสินทรัพย์ดั้งเดิม ด้วยเหตุนี้ เราจึงสามารถเปิดตัวอัลฟ่าแรกในเดือนมิถุนายน 2015 เพียง 6 เดือนหลังจากเริ่มการพัฒนา

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

กระเป๋าเงินของ Bitcoin Core

“กระเป๋าเงิน” ภายใน Bitcoin Core เป็นส่วนสำคัญที่สุดของความเจ็บปวดเหล่านี้ หน้าที่ของมันคือการจัดเก็บธุรกรรมที่เกี่ยวข้องกับโหนดโดยเฉพาะ เพราะพวกเขาเกี่ยวข้องกับที่อยู่บล็อคเชนที่มันเป็นเจ้าของหรือ "ดูอย่างเดียว” ที่อยู่ที่มีกิจกรรมที่กำลังติดตาม ตัวอย่างเช่น ทุกธุรกรรมที่ส่งเงินเข้าหรือออกจากโหนดจะต้องเก็บไว้ในกระเป๋าเงินของโหนดนั้น และทุกครั้งที่โหนดสร้างธุรกรรม โหนดจะต้องค้นหา "ผลลัพธ์ที่ยังไม่ได้ใช้" อย่างน้อยหนึ่งรายการของธุรกรรมกระเป๋าเงินก่อนหน้าซึ่งธุรกรรมใหม่จะใช้ไป

เกิดอะไรขึ้นกับกระเป๋าเงินที่เราสืบทอดมาจาก Bitcoin Core? อันที่จริงสามสิ่ง:

  • ธุรกรรมกระเป๋าเงินทั้งหมดจะถูกเก็บไว้ในหน่วยความจำ ทำให้เวลาเริ่มต้นทำงานช้าและการใช้หน่วยความจำเพิ่มขึ้นอย่างรวดเร็ว
  • การดำเนินการหลายอย่างทำ "การสแกนแบบเต็ม" ที่ไม่มีประสิทธิภาพของทุกธุรกรรมในกระเป๋าเงิน ไม่ว่าจะเก่าหรือใหม่
  • ทุกธุรกรรมในกระเป๋าเงินจะถูกจัดเก็บไว้เต็มจำนวน ซึ่งรวมถึง “ข้อมูลเมตา” ตามอำเภอใจซึ่งไม่มีความหมายจากมุมมองของโหนดและถูกเก็บไว้ในบล็อกเชนบนดิสก์แล้ว นี่มันสิ้นเปลืองมาก

ผลที่ตามมาก็คือ ด้วยการจัดเก็บธุรกรรมประมาณ 20,000 รายการ กระเป๋าเงินของ Bitcoin Core ช้าลงอย่างมาก หลังจาก 200,000 หรือมากกว่านั้น มันก็แทบจะหยุดนิ่ง ที่แย่กว่านั้น เนื่องจากบล็อกเชน MultiChain อนุญาตให้มีข้อมูลเมตาสูงสุด 8 MB ต่อธุรกรรม (เทียบกับ 80 ไบต์ของ bitcoin) ความต้องการหน่วยความจำของกระเป๋าเงินสามารถเพิ่มขึ้นอย่างรวดเร็วแม้จะมีธุรกรรมเพียงเล็กน้อย

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

กระเป๋าเงินใหม่ของ MultiChain

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

กระเป๋าเงินใหม่แตกต่างกันอย่างไร? หากคุณมีประสบการณ์กับฐานข้อมูล คำตอบอาจชัดเจน:

  • แทนที่จะเก็บธุรกรรมวอลเล็ทไว้ในหน่วยความจำ ธุรกรรมจะถูกเก็บไว้ในดิสก์ในรูปแบบที่เหมาะสม โดยจะดึงธุรกรรมที่น่าสนใจเมื่อจำเป็น
  • แทนที่จะทำการสแกนกระเป๋าสตางค์แบบเต็ม ธุรกรรมจะถูก "จัดทำดัชนี" ในรูปแบบต่างๆ เพื่อให้ผู้ที่ปฏิบัติตามเกณฑ์เฉพาะสามารถค้นหาได้อย่างรวดเร็ว
  • ข้อมูลเมตาของธุรกรรมใดๆ ที่มีขนาดใหญ่กว่า 256 ไบต์จะไม่ถูกเก็บไว้ในกระเป๋าเงิน กระเป๋าเงินมีตัวชี้ไปยังตำแหน่งของข้อมูลเมตาในบล็อกเชนเอง

กล่าวอีกนัยหนึ่ง เราได้สร้างกระเป๋าเงินในโหนดขึ้นใหม่เพื่อให้ขับเคลื่อนฐานข้อมูลได้อย่างเหมาะสม (โดยใช้ เลเวลดีบี) แทนที่จะอาศัยโครงสร้างในหน่วยความจำที่ไร้เดียงสาที่ไม่สามารถค้นหาได้อย่างมีประสิทธิภาพ ไม่น่าแปลกใจเลยที่ความแตกต่าง (วัดจาก Intel Core i3.4 7 GHz) นั้นค่อนข้างน่าทึ่ง:

ปริมาณการทำธุรกรรมกระเป๋าเงิน MultiChain

ใช้หน่วยความจำ

กราฟแสดงให้เห็นว่า เมื่อกระเป๋าเงินเก่ามีธุรกรรม 250,000 รายการ อัตราการส่งจะลดลงเหลือ 3 tx/วินาที และเพิ่ม 600 MB ให้กับการใช้หน่วยความจำของโหนด ในทางตรงกันข้าม กระเป๋าเงินใหม่รองรับมากกว่า 100 tx/วินาที และเพิ่มเพียง 90 MB เท่านั้น เราหยุดทดสอบกระเป๋าเงินเก่า ณ จุดนี้ แต่ถึงแม้จะมีธุรกรรมที่จัดเก็บไว้ 6-8 ล้านครั้ง กระเป๋าเงินใหม่ยังคงส่งมากกว่า 100 tx/วินาที และมี RAM สูงสุดประมาณ 250 MB ที่ใช้ (เนื่องจากการแคชฐานข้อมูล)

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

เพื่อย้ำอีกครั้ง ตัวเลขทั้งหมดเหล่านี้อ้างอิงถึงอัตราที่โหนดสามารถสร้าง ส่ง และจัดเก็บธุรกรรมในกระเป๋าเงินท้องถิ่น แทนที่จะเป็นปริมาณงานในแง่ของการประมวลผลธุรกรรมที่สร้างโดยผู้อื่น สำหรับทรูพุตเครือข่ายทั่วไป ปัจจุบัน MultiChain สามารถประมวลผลได้ 200 ถึง 800 tx/วินาที ขึ้นอยู่กับฮาร์ดแวร์ที่ใช้งาน (อย่าสงสัยในซอฟต์แวร์บล็อคเชนใดๆ ที่มีแนวโน้มว่าจะมีตัวเลขเช่น 100,000 tx/วินาที บนฮาร์ดแวร์ปกติ เพราะคอขวดคือการตรวจสอบลายเซ็นดิจิทัล ซึ่งต้องใช้เวลาจริงในการดำเนินการ หากโหนดไม่ตรวจสอบลายเซ็นธุรกรรมแต่ละรายการ บล็อกเชนจะไม่สามารถใช้งานได้ในความเชื่อถือ ทำให้ไม่ดีกว่าฐานข้อมูลแบบกระจายทั่วไป)

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

กรุณาโพสต์ความคิดเห็นใด ๆ ใน LinkedIn.

ภาคผนวกทางเทคนิค

เริ่มต้นใน MultiChain alpha 22 คุณสามารถตรวจสอบเวอร์ชันของ wallet ที่กำลังรันอยู่โดยตรวจสอบ walletdbversion สนามของ getinfo or getwalletinfo การเรียก API ค่าของ 1 หมายถึงกระเป๋าเงิน Bitcoin Core ดั้งเดิมและ 2 หมายถึงกระเป๋าสตางค์ MultiChain ใหม่

หากคุณเรียกใช้ MultiChain เวอร์ชันใหม่บน chain ที่มีอยู่ ระบบจะไม่เปลี่ยนเป็น wallet ใหม่ทันที คุณสามารถอัพเกรดกระเป๋าเงินได้โดยหยุดโหนดแล้วเปิดใหม่ multichaind ด้วยพารามิเตอร์ -walletdbversion=2 –rescan. คุณสามารถดาวน์เกรดได้เช่นเดียวกันโดยใช้ –walletdbversion=1 –rescan.

โดยค่าเริ่มต้น เมื่อคุณเริ่มโหนดบนเชนใหม่ โหนดจะใช้กระเป๋าเงินใหม่โดยอัตโนมัติ คุณเปลี่ยนสิ่งนี้ได้ด้วยการเรียกใช้ multichaind ครั้งแรกกับพารามิเตอร์ –walletdbversion=1.

ด้วยกระเป๋าสตางค์ใบใหม่ทั้งหมด MultiChain API ทำงานเหมือนเดิมทุกประการ ยกเว้นการสืบค้นธุรกรรมแบบเก่า APIs getreceivedbyaddress, listreceivedbyaddress และ listtransactions (ใช้ listwallettransactions or listaddresstransactions แทนที่). นอกจากนี้ กระเป๋าเงินใหม่ไม่รองรับการเรียก API และพารามิเตอร์ที่เกี่ยวข้องกับกลไก "บัญชี" ของ Bitcoin Core ที่ใช้งานได้ไม่ดีและกำลังจะเลิกใช้ในไม่ช้า ซึ่ง MultiChain ไม่เคยรองรับอย่างเหมาะสม การโทรเหล่านี้ถูกปิดใช้งานอย่างปลอดภัยพร้อมข้อความแสดงข้อผิดพลาด

ที่มา: https://www.multichain.com/blog/2016/07/announcing-the-new-multichain-wallet/

ประทับเวลา:

เพิ่มเติมจาก มัลติเชน