API บอตซื้อขาย Ethereum โดยทั่วไปเป็นชุดของส่วนต่อประสานหลายส่วน แทนที่จะเป็นบริการเดียวที่เข้าใจงานซื้อขายทั้งหมด โหนดให้ข้อมูลสังเกตการณ์จากบล็อกเชนและรับธุรกรรมที่ลงนามแล้วได้ องค์ประกอบเสนอราคาอธิบายเส้นทางที่เสนอได้ ผู้ลงนามอนุมัติข้อมูลธุรกรรมได้ แอปพลิเคชันต้องเชื่อมส่วนเหล่านี้เข้าด้วยกัน พร้อมบังคับใช้นโยบายของผู้ใช้และเก็บบันทึกผลลัพธ์ที่สอดคล้องกัน
การออกแบบไคลเอนต์ให้รับมือความขัดข้องได้เริ่มจากการแยกความรับผิดชอบเหล่านี้ คำขอที่สำเร็จไม่ได้พิสูจน์ว่าข้อมูลเป็นข้อมูลล่าสุด ธุรกรรมที่ลงนามแล้วไม่ใช่การซื้อขายที่ยืนยันแล้ว และการหมดเวลารอไม่ได้พิสูจน์ว่าการส่งล้มเหลว ต้องตีความคำตอบแต่ละรายการตามบริบทของการดำเนินการที่คำตอบนั้นเป็นตัวแทน
คู่มือนี้เกี่ยวกับไคลเอนต์ซื้อขายโทเคนแบบสปอตบน Ethereum โดยอธิบายสถาปัตยกรรมและการกู้คืนผ่านตัวอย่างสมมติ ไม่ได้ส่งคำขอ RPC จริงหรือให้สูตรนำระบบขึ้นใช้งาน เป้าหมายคือทำให้สามารถวิเคราะห์พฤติกรรมของไคลเอนต์ได้อย่างปลอดภัย เมื่อข้อมูลสังเกตการณ์ การรับส่งข้อมูล และการดำเนินธุรกรรมไม่ได้มาถึงตามลำดับที่สะดวก
API บอตซื้อขาย Ethereum: กำหนดส่วนต่อประสานให้ชัดเจน
ไคลเอนต์ดำเนินธุรกรรมของ Ethereum เปิดให้ใช้เมธอด JSON-RPC สำหรับอ่านสถานะและประวัติ รวมถึงส่งธุรกรรมที่ลงนามแล้ว เมธอดเหล่านี้เป็นองค์ประกอบพื้นฐาน ไม่ใช่บริการกลยุทธ์ที่ครบถ้วน แอปพลิเคชันยังต้องตัดสินใจว่าจะซื้อขายสินทรัพย์ใดและกระเป๋าเงินให้อำนาจอะไรบ้าง เอกสารอ้างอิง JSON-RPC ของ Ethereum
อธิบายแต่ละส่วนต่อประสานตามความรับผิดชอบ ส่วนสังเกตการณ์อ่านสถานะเชน ส่วนตีความตลาดทำความเข้าใจพูลและโทเคนที่รองรับ ส่วนนโยบายประเมินข้อเสนอ ส่วนลงนามอนุมัติธุรกรรมที่เป็นรูปธรรม และส่วนกระทบยอดตีความผลลัพธ์ ควรติดตามความขัดข้องกลับไปยังขอบเขตความรับผิดชอบที่เกี่ยวข้องได้
อย่าใช้ออบเจ็กต์คำตอบ API ทั่วไปเพียงแบบเดียวเป็นหลักฐานทั้งห้าประเภท ใบเสนอราคาเส้นทางกับใบรับธุรกรรมมีความหมายต่างกัน แม้ทั้งคู่จะมีจำนวนโทเคนก็ตาม
คู่มือบอตซื้อขายคริปโต ให้ภาพสถาปัตยกรรมที่กว้างขึ้น การออกแบบไคลเอนต์ API บอตซื้อขาย Ethereum ควรระบุขอบเขตเหล่านี้ชัดเจนพอที่จะทดสอบและตรวจสอบแต่ละส่วนแยกกันได้
ตรวจสอบเครือข่ายก่อนตีความข้อมูล
ไคลเอนต์ต้องระบุให้ได้ว่าปลายทางให้บริการเครือข่ายใด ก่อนใช้ที่อยู่ ยอดคงเหลือ หรือข้อมูลอ้างอิงธุรกรรม สตริงที่อยู่เดียวกันอาจปรากฏบนหลายเครือข่าย โดยไม่ได้หมายถึงระบบที่ติดตั้งใช้งานหรือสินทรัพย์ที่รองรับรายการเดียวกัน
เก็บข้อมูลระบุเครือข่ายไว้ในการกำหนดค่าไคลเอนต์และบันทึกเจตนาการดำเนินการแบบถาวร การสลับไปใช้ผู้ให้บริการสำรองต้องไม่เปลี่ยนสภาพแวดล้อมโดยเงียบ ๆ ไม่ควรนำข้อมูลย้อนหลังที่นำเข้าจากสภาพแวดล้อมทดสอบมาเป็นหลักฐานเกี่ยวกับบัญชีในระบบใช้งานจริง
ควรตรวจสอบเครือข่ายในจุดสำคัญของวงจรการทำงาน รวมถึงเมื่อเชื่อมต่อครั้งแรกและเมื่อเปลี่ยนการกำหนดค่าปลายทาง การเชื่อมต่อ HTTP สำเร็จยืนยันเพียงว่าช่องทางรับส่งข้อมูลพร้อมใช้งาน ไม่ได้ยืนยันตัวตนในเชิงความหมายของบริการที่อยู่เบื้องหลัง
หากเครือข่ายที่สังเกตได้ขัดกับเครือข่ายที่กำหนดค่าไว้ ให้หยุดการดำเนินการที่พึ่งพาข้อมูลนี้และเก็บบริบทสำหรับวินิจฉัยไว้ การเดาว่าค่าใดถูกอาจเปลี่ยนธุรกรรมที่เดิมถูกต้องให้กลายเป็นการดำเนินการกับสถานะบัญชีผิดชุด
แยกความสำเร็จในการรับส่งข้อมูลออกจากความหมายทางธุรกิจ
คำขออาจเสร็จสมบูรณ์ในชั้นรับส่งข้อมูล แต่ส่งกลับข้อผิดพลาดหรือผลลัพธ์ที่ไม่คาดคิด ในทางกลับกัน การรับส่งข้อมูลอาจหมดเวลารอหลังจากบริการระยะไกลรับธุรกรรมที่ส่งไปแล้ว ไคลเอนต์ต้องแยกประเภทเงื่อนไขเหล่านี้
ตีความโครงสร้างคำตอบของการดำเนินการ แทนที่จะอาศัยธงความสำเร็จเพียงค่าเดียว สำหรับการอ่าน ผลลัพธ์อาจขาดหาย ล้าสมัย หรือไม่ตรงกับชนิดข้อมูลที่คาดไว้ สำหรับการส่งธุรกรรม การไม่มีคำตอบที่ใช้ได้อาจทำให้ไม่ทราบผลและจำเป็นต้องตรวจสอบ
เก็บบริบทให้เพียงพอที่จะอธิบายความล้มเหลวโดยไม่บันทึกความลับ เมธอด ข้อมูลระบุคำขอที่ตัดข้อมูลอ่อนไหวออก เวลา และข้อมูลอ้างอิงเจตนาการดำเนินการ มักมีประโยชน์กว่าการเทส่วนหัวหรือเพย์โหลดทุกส่วนที่มีข้อมูลรับรองลงในบันทึก
การแยกแยะนี้ช่วยให้นโยบายลองใหม่ของ API บอตซื้อขาย Ethereum มีความหมาย การลองอ่านข้อมูลที่ไม่ก่อผลเสียอีกครั้งกับการกู้คืนธุรกรรมที่ลงนามแล้วแต่ยังไม่ทราบผล เป็นคนละงานที่มีผลตามมาต่างกัน
ใช้ปริมาณที่แม่นยำตรงขอบเขตส่วนต่อประสาน
ส่วนต่อประสานโหนดแสดงปริมาณและข้อมูลตามกฎการเข้ารหัสที่กำหนดไว้ ไคลเอนต์ควรถอดรหัสให้เป็นรูปแบบภายในที่แม่นยำ แทนที่จะส่งสตริงที่กำหนดชนิดไม่ชัดเจนหรือค่าทศนิยมแบบจุดลอยตัวผ่านการคำนวณทางเศรษฐกิจ
จำนวนโทเคนดิบ มูลค่าเหรียญประจำเครือข่าย ขีดจำกัดแก๊ส และค่าธรรมเนียมมีหน่วยต่างกัน ขอบเขตของชนิดข้อมูลหรือสคีมาควรทำให้หน่วยเหล่านั้นชัดเจน เพื่อไม่ให้การแปลงสำหรับแสดงผลกลายเป็นจำนวนในธุรกรรมโดยไม่ตั้งใจ
ตัวอย่างจำนวนโทเคนดิบ 2,500,000 ที่มีทศนิยมหกตำแหน่งหมายถึง 2.5 โทเคน จำนวนเต็มดิบเดียวกันที่ใช้มาตราส่วนอื่นซึ่งตรวจสอบแล้วจะมีความหมายอีกแบบ มาตราส่วนเป็นส่วนหนึ่งของการตีความสินทรัพย์ ไม่ใช่ของตัวจัดรูปแบบตัวเลขทั่วไป
ตรวจสอบค่าที่ขาดหายและค่าที่อยู่นอกช่วงก่อนจะถึงส่วนนโยบายหรือลงนาม คำตอบที่ผิดรูปแบบควรทำให้เกิดสถานะไม่รองรับอย่างชัดเจน แทนการใช้ศูนย์เพื่อความสะดวกจนทำให้การคำนวณภาระความเสี่ยงดูน้อยลง
เก็บบริบทของการอ่านสถานะ
การสอบถามสถานะผูกกับบริบทของบล็อกได้ ไคลเอนต์ควรเก็บบริบทนั้นไว้สำหรับข้อมูลสังเกตการณ์ที่รองรับการตัดสินใจ โดยเฉพาะเมื่อค่าหลายค่าต้องอธิบายสถานะเดียวกันอย่างสอดคล้อง ป้าย latest เพียงอย่างเดียวอาจซ่อนว่าคำขอแต่ละรายการถูกประเมินเมื่อใดจริง ๆ
ตัวอย่างเช่น การอ่านพูลก่อนสภาพคล่องเปลี่ยนและการอ่านการควบคุมโทเคนหลังจากนั้น อาจถูกต้องแยกกันแต่เมื่อนำมารวมกลับให้ภาพที่ไม่สอดคล้องกัน นโยบายควรกำหนดว่ายอมรับความต่างของอายุข้อมูลและบริบทนั้นได้หรือไม่
อย่าสมมติว่าคำขอที่ทำพร้อมกันสร้างภาพสถานะ ณ เวลาเดียวกัน การทำงานขนานลดเวลารอในเครื่อง แต่ไม่ได้ผูกคำตอบที่เป็นอิสระต่อกันเข้ากับสถานะเดียวโดยอัตโนมัติ ไคลเอนต์ต้องมีแนวทางรักษาความสอดคล้องที่ออกแบบไว้อย่างตั้งใจ
หากอ่านข้อมูลที่จำเป็นไม่ได้ ให้เก็บช่องว่างนั้นไว้ การแทนด้วยค่าแคชเก่าโดยไม่ระบุอายุอาจทำให้การตัดสินใจจากข้อมูลล้าสมัยดูเหมือนเป็นปัจจุบัน และบั่นทอนการวินิจฉัยภายหลัง
ตัวอย่างความสอดคล้องของสถานะบน MegaETH แสดงให้เห็นว่าการอ่านสถานะล่าสุดแบบสตรีมอาจต่างจากมุมมองบล็อกย้อนหลังที่สร้างซ้ำได้อย่างไร แม้คำตอบทั้งสองจะถูกต้อง
มองแคชเป็นหลักฐานที่มีอายุ
การใช้แคชช่วยลดงานที่ไม่จำเป็นได้ แต่ทุกค่าที่แคชไว้ต้องมีอายุใช้งานและนโยบายยกเลิกความใช้ได้ที่เหมาะสม การกำหนดค่าเครือข่าย เมทาดาทาโทเคน สถานะพูล และยอดคงเหลือกระเป๋าเงินไม่ควรใช้เวลาหมดอายุตามอำเภอใจค่าเดียวกัน เพียงเพราะใช้กลไกจัดเก็บเดียวกัน
ค่าบางอย่างคงที่ภายในแบบจำลองที่รองรับ ส่วนค่าอื่นเปลี่ยนได้ทุกธุรกรรมที่เกี่ยวข้อง แคชควรแสดงอายุและบริบทแหล่งที่มา เพื่อให้นโยบายตัดสินได้ว่าอนุญาตให้นำกลับมาใช้หรือไม่
การกันวงเงินบัญชีไม่ใช่แคชของยอดคงเหลือบนเชน แต่เป็นสถานะแอปพลิเคชันแบบถาวรที่แสดงภาระผูกพันซึ่งได้รับอนุญาต การรีเฟรชยอดคงเหลือต้องไม่ลบวงเงินที่กันไว้สำหรับธุรกรรมที่ยังไม่ทราบข้อยุติ
คู่มือระบบซื้อขายเหรียญมีมอัตโนมัติ อธิบายสถานะที่ใช้ร่วมกันระหว่างขั้นตอนงาน แคชของไคลเอนต์ควรเพิ่มประสิทธิภาพโดยคงความแตกต่างระหว่างการสังเกตการณ์ การตีความ และอำนาจดำเนินการไว้
ตัวอย่างการซื้อขายผ่านเบราว์เซอร์ ติดตามข้อมูลสังเกตการณ์ที่มีอายุเหล่านั้นไปถึงส่วนติดต่อผู้ใช้ ซึ่งใบเสนอราคาปัจจุบันไม่อาจชดเชยยอดสินทรัพย์คงเหลือที่เก่าได้
ตีความการเรียกและการประมาณเป็นหลักฐานตรวจสอบก่อนดำเนินการ
การเรียกอ่านสถานะและการประมาณแก๊สช่วยตรวจสอบการดำเนินการที่เสนอก่อนลงนามได้ ผลลัพธ์อธิบายพฤติกรรมภายใต้บริบทที่สังเกตและพารามิเตอร์ที่ให้ไว้ ไม่ได้ยืนยันว่าธุรกรรมที่ส่งภายหลังจะพบสถานะเดียวกัน
ผูกผลตรวจสอบก่อนดำเนินการกับข้อเสนอหรือเพย์โหลดที่ผลนั้นรองรับโดยตรง หากจำนวนขาเข้า เส้นทาง หรือผู้มีสิทธิใช้จ่ายเปลี่ยน ผลก่อนหน้าอาจไม่เกี่ยวข้องอีกต่อไป ชื่อโทเคนเป็นคีย์ที่กว้างเกินไปสำหรับการนำผลจำลองที่สำเร็จกลับมาใช้
จัดประเภทความล้มเหลวตามสิ่งที่หลักฐานรองรับ วงเงินอนุญาตใช้จ่ายที่ขาดอยู่ ขอบเขตผลลัพธ์ที่หาไม่ได้ และคำขอผิดรูปแบบ ต้องรับมือต่างกัน การขยายขีดจำกัดธุรกรรมโดยอัตโนมัติจนการตรวจสอบก่อนดำเนินการสำเร็จอาจละเมิดนโยบายผู้ใช้
เก็บค่าประมาณไว้เปรียบเทียบกับการดำเนินการจริงภายหลัง ไคลเอนต์ควรอธิบายได้ว่าต้นทุนที่ต่างเกิดจากความคลาดเคลื่อนในการประมาณ สถานะที่เปลี่ยน หรือการแก้ไขที่ได้รับอนุญาต
จำกัดส่วนต่อประสานของผู้ลงนามให้แคบและชัดเจน
ผู้ลงนามควรได้รับคำขอธุรกรรมที่ผ่านการตรวจสอบแล้วพร้อมขีดจำกัดอำนาจที่ชัดเจน ไม่ควรรับคำสั่งตามอำเภอใจจากคำตอบข้อมูลตลาดหรือเมทาดาทาของโทเคน แอปพลิเคชันต้องตรวจสอบอย่างเป็นอิสระว่าเพย์โหลดตรงกับเจตนาที่ได้รับอนุญาต
อย่าให้กุญแจส่วนตัวและข้อมูลรับรองที่มีสิทธิกว้างเข้าไปอยู่ในบันทึกทั่วไปหรือรายงานข้อผิดพลาดของไคลเอนต์ ชั้นสังเกตการณ์ไม่ควรต้องเข้าถึงข้อมูลสำหรับลงนาม เพียงเพื่ออ่านยอดคงเหลือหรือเหตุการณ์ย้อนหลัง
ขอบเขตการลงนามควรบันทึกด้วยว่านโยบายรุ่นใดอนุญาตการดำเนินการ หากผู้ใช้เปลี่ยนขีดจำกัดก่อนลงนาม อาจต้องประเมินคำขอใหม่ แทนการสืบทอดอำนาจเก่าจากงานในคิว
ส่วนต่อประสานผู้ลงนามที่จำกัดขอบเขตทำให้วิเคราะห์การกู้คืนได้ง่ายขึ้น ไคลเอนต์แยกข้อเสนอที่ไม่เคยได้รับอนุญาตออกจากข้อมูลธุรกรรมที่ลงนามแล้ว ซึ่งอาจยังมีผลต่อการดำเนินงานได้
API บอตซื้อขาย Ethereum: กู้คืนเมื่อไม่แน่ใจผลการส่ง
การส่งธุรกรรมที่ลงนามแล้วอาจได้ข้อมูลอ้างอิงที่ใช้ได้ การปฏิเสธ หรือไม่ได้คำตอบที่ใช้ได้ กรณีที่สามต้องมีสถานะไม่ทราบผล ไม่ควรถูกมองโดยอัตโนมัติว่าเป็นการดำเนินการทางเศรษฐกิจที่ล้มเหลว
บันทึกเจตนาการดำเนินการและข้อมูลระบุธุรกรรมที่ลงนามแล้วอย่างถาวรก่อนส่งต่อ หากไคลเอนต์เริ่มใหม่ จะตรวจสอบความพยายามเดิมได้ แทนการสร้างการซื้อใหม่จากสัญญาณเดิม เงินที่กันไว้ยังคงผูกพันอยู่จนกว่าจะทราบข้อยุติ
การกู้คืนควรตรวจสอบธุรกรรมที่ทราบและประวัติบัญชีที่เกี่ยวข้องผ่านการอ่านที่รองรับ การไม่พบผลลัพธ์จากปลายทางเดียวเป็นหลักฐานที่จำกัด โดยเฉพาะเมื่อผู้ให้บริการสังเกตได้ต่างกัน
การกู้คืนสถานะของ API บอตซื้อขาย Ethereum จึงเป็นกระบวนการกระทบยอด ไม่ใช่เพียงวงรอบลองใหม่ ไคลเอนต์ต้องระบุให้ได้ว่ามีอะไรเกิดขึ้นแล้วก่อนตัดสินว่าควรส่งเพิ่มเติมหรือส่งธุรกรรมทดแทนที่ได้รับอนุญาตหรือไม่
ประสาน nonce ในฐานะสถานะบัญชีที่ใช้ร่วมกัน
สำหรับบัญชีที่ควบคุมจากภายนอกทั่วไป การจัดสรร nonce เป็นหน้าที่ของตัวประสานงานบัญชี ไม่ใช่ของตัวทำงานแต่ละกลยุทธ์ มิฉะนั้นตัวทำงานอิสระที่อ่านสถานะเดียวกันอาจจัดสรรตำแหน่งลำดับที่ขัดแย้งกัน
ตัวประสานงานควรเก็บการจัดสรรอย่างถาวรและเชื่อมกับเจตนาการดำเนินการและความพยายามส่งที่ลงนามแล้ว อีกทั้งต้องคำนึงถึงธุรกรรมที่ผู้ใช้ทำเองหรือผู้เขียนรายอื่นที่ได้รับอนุญาต ตัวนับภายในเครื่องเพียงอย่างเดียวไม่เพียงพอเมื่อบัญชีเปลี่ยนได้จากนอกโปรเซส
เมื่อการจัดสรรเริ่มไม่แน่นอน ไคลเอนต์ควรกระทบยอดก่อนนำกลับมาใช้อย่างง่าย ๆ กฎการทดแทนและกู้คืนต้องรักษาความสัมพันธ์ระหว่างธุรกรรมที่อาจอยู่ในตำแหน่งนั้น
ความรับผิดชอบนี้แยกจากการทำคำขอพร้อมกัน ไคลเอนต์อ่านข้อมูลอิสระหลายรายการพร้อมกันได้ ขณะยังคงจัดลำดับการตัดสินใจที่จัดสรรอำนาจบัญชีร่วม การทำงานขนานควรเป็นไปตามโครงสร้างการพึ่งพา แทนการใช้โดยไม่แยกแยะ
สำรองความสามารถรองรับคำขอไว้สำหรับการกู้คืน
ขีดจำกัดอัตราคำขอและโควตาบริการอาจจำกัดการสังเกตการณ์และการกู้คืน ไคลเอนต์ที่ใช้ความสามารถรองรับคำขอทั้งหมดไปกับการสำรวจข้อมูลตลาดที่มีความสำคัญต่ำ อาจตรวจสอบธุรกรรมที่ไม่ทราบผลไม่ได้ในยามจำเป็น
จัดลำดับคำขอตามผลกระทบต่อการดำเนินงาน การกระทบยอดบัญชีและตรวจสอบธุรกรรมที่ยังไม่ทราบข้อยุติอาจสมควรได้ใช้ความสามารถก่อนการสแกนค้นหาวงกว้าง ควรกำหนดนโยบายที่แน่นอนสำหรับผู้ให้บริการที่เลือก โดยไม่สมมติว่ามีโควตาสากลค่าเดียว
ใช้การลองใหม่ที่มีขีดจำกัดพร้อมหน่วงเวลาระหว่างครั้งตามความเหมาะสม และแยกเงื่อนไขการรับส่งข้อมูลที่ลองใหม่ได้ออกจากข้อผิดพลาดทางธุรกิจหรือสคีมาที่ต้องตรวจสอบ การทำคำขอที่ไม่ถูกต้องซ้ำให้เร็วขึ้นมีแต่จะสิ้นเปลืองความสามารถรองรับและบดบังสาเหตุเดิม
ไคลเอนต์ควรรายงานเมื่อการจำกัดอัตรากระทบความสดใหม่ของหลักฐาน ข้อมูลสังเกตการณ์ที่ล่าช้าเพราะโควตาหมดไม่ควรยังดูเป็นปัจจุบัน เพียงเพราะแอปพลิเคชันยังทำงานอยู่
เชื่อมต่อสตรีมใหม่พร้อมแผนกู้ประวัติ
การสมัครรับข้อมูลสดให้ข้อมูลสังเกตการณ์ตราบเท่าที่การเชื่อมต่อยังใช้ได้ หลังการเชื่อมต่อหลุด ไคลเอนต์ต้องมีวิธีระบุช่วงที่ขาดหาย ดึงประวัติที่เกี่ยวข้อง และทำงานต่อโดยไม่สูญเสียหรือสร้างเหตุการณ์ซ้ำ ซ็อกเก็ตที่เชื่อมต่อใหม่ไม่ใช่หลักฐานว่าสถานะครบถ้วน
เก็บเคอร์เซอร์แบบถาวรหรือขอบเขตการสังเกตการณ์ที่เทียบเท่าซึ่งแหล่งข้อมูลรองรับ ขั้นตอนกู้คืนควรอ่านทับช่วงเดิมอย่างปลอดภัยตามที่จำเป็น และตัดรายการซ้ำตามข้อมูลระบุเหตุการณ์ที่คงที่
คำนึงถึงการเปลี่ยนแปลงใกล้ปลายเชนตามนโยบายความเสถียรที่เลือก เหตุการณ์ที่เคยสังเกตอาจไม่อยู่ในประวัติที่ถือเป็นหลักอีกต่อไป และสถานะแอปพลิเคชันที่พึ่งพาเหตุการณ์นั้นอาจต้องแก้ไข
คู่มือ API บอตซื้อขาย Solana อธิบายความจำเป็นทั่วไปในการกู้คืนเมื่อข้อมูลสดหยุดชะงัก ไคลเอนต์ Ethereum ต้องใช้ตัวระบุเหตุการณ์และบริบทเชนของตนเอง แทนการคัดลอกความหมายของวงจรการทำงานจากเครือข่ายอื่น
กระทบยอดใบรับธุรกรรมและผลทางเศรษฐกิจ
ใบรับธุรกรรมช่วยระบุผลการดำเนินธุรกรรมได้ แต่ไคลเอนต์ยังต้องตีความการเคลื่อนย้ายสินทรัพย์และต้นทุนจริงตามเส้นทางและพฤติกรรมโทเคนที่รองรับ ใบเสนอราคาเดิมไม่ใช่บัญชีแยกประเภทขั้นสุดท้าย
ผูกข้อมูลสังเกตจากใบรับธุรกรรมกับเจตนาการดำเนินการเดิม และประมวลผลเข้าสู่บันทึกทางเศรษฐกิจเพียงครั้งเดียว การสอบถามซ้ำหรือการส่งข้อมูลสตรีมซ้ำควรปรับระดับความเชื่อมั่นหรือบริบท โดยไม่บันทึกการรับโทเคนรายการเดิมเพิ่มอีก
หากธุรกรรมล้มเหลวหลังถูกบรรจุในบล็อก ให้บันทึกค่าใช้จ่ายดำเนินการจริง พร้อมรักษาข้อเท็จจริงว่าไม่มีการได้มาซึ่งสินทรัพย์ตามที่ตั้งใจ หากสำเร็จแต่มีการเคลื่อนย้ายที่ไม่คาดคิด ให้สร้างข้อยกเว้นในการกระทบยอด แทนการบังคับข้อมูลให้เข้ากับค่าประมาณเดิม
สถานะถือครองที่ได้ควรใช้ปริมาณที่แม่นยำ ตัวตนสินทรัพย์ที่ตรวจสอบแล้ว และวิธีปันส่วนต้นทุนที่มีเอกสารกำกับ บันทึกเหล่านั้นคือสิ่งที่ข้อเสนอออกจากสถานะในภายหลังต้องพึ่งพา
แยกการสลับผู้ให้บริการออกจากการเปลี่ยนหลักตัดสินใจ
การเปลี่ยนไปใช้ปลายทางอื่นอาจกู้การเข้าถึงได้ แต่ก็อาจทำให้ความสดใหม่ของข้อมูล ความสามารถ หรือการมองเห็นธุรกรรมที่รอดำเนินการเปลี่ยนไป ตรวจสอบตัวตนเครือข่ายและเมธอดที่รองรับก่อนถือว่าปลายทางทดแทนเทียบเท่ากัน
อย่าเปลี่ยนนโยบายทางเศรษฐกิจเพียงเพราะผู้ให้บริการหนึ่งตอบได้เป็นประโยชน์กว่า หากข้อมูลสังเกตการณ์ไม่ตรงกัน ให้เก็บความคลาดเคลื่อนและกระทบยอดสถานะ การเลือกใบเสนอราคาถูกที่สุดหรือยอดคงเหลือที่สะดวกที่สุดจากบริบทที่ไม่สอดคล้องกันอาจทำให้เกิดการตัดสินใจที่ไม่มีสถานะสอดคล้องใดรองรับ
บันทึกการสลับผู้ให้บริการควรระบุว่าแหล่งข้อมูลเปลี่ยนเมื่อใดและตรวจสอบการดำเนินการที่ยังไม่ทราบข้อยุติรายการใดใหม่แล้วบ้าง วิธีนี้ช่วยวินิจฉัยภายหลัง โดยผู้ใช้ไม่ต้องเดาการเปลี่ยนแปลงโครงสร้างพื้นฐานจากพฤติกรรมที่ต่างไปอย่างอธิบายไม่ได้
การหยุดให้บริการของผู้ให้บริการไม่ควรมอบอำนาจลงนามที่กว้างขึ้นแก่บริการใหม่ สิ่งที่ต้องพึ่งพาในการสังเกตการณ์และรับส่งธุรกรรมเปลี่ยนได้ ขณะที่ยังคงบังคับใช้ขอบเขตสิทธิของกระเป๋าเงินแยกเป็นอิสระ
ทดสอบไคลเอนต์ด้วยจังหวะเวลาที่ท้าทายระบบ
สร้างสถานการณ์ที่คำตอบมาถึงผิดลำดับ ใบรับธุรกรรมปรากฏก่อนข้อความตอบรับที่คาดไว้ และการเชื่อมต่อใหม่ส่งเหตุการณ์เดิมซ้ำ ไคลเอนต์ควรบรรจบสู่เจตนาการดำเนินการและสถานะสินทรัพย์คงเหลือชุดเดียวที่สอดคล้องกัน
ทดสอบปริมาณที่ผิดรูปแบบ คำตอบจากเครือข่ายผิด และสถานะแคชที่ล้าสมัยด้วย กรณีเหล่านี้ควรทำให้ล้มเหลวหรือหยุดรออย่างชัดเจนตรงขอบเขตที่เกี่ยวข้อง ไม่ใช่ใช้ค่าสำรองโดยเงียบ ๆ จนอนุญาตให้ซื้อขาย
ควรเขียนผลที่คาดหวังก่อนทดสอบ ในแต่ละสถานการณ์ ให้ระบุว่าเงินส่วนใดยังถูกกันไว้ อนุญาตให้ลงนามหรือไม่ และผลสุดท้ายในบัญชีแยกประเภทควรเป็นอย่างไร วิธีนี้ทำให้การทดสอบเป็นการตรวจสอบพฤติกรรม แทนที่จะเป็นเพียงชุดข้อยืนยันที่สะท้อนโค้ดที่เขียนไว้
ไม่จำเป็นต้องมีกิจกรรมกระเป๋าเงินจริงเพื่อทดสอบการเปลี่ยนสถานะเหล่านี้ด้วยบันทึกที่สร้างขึ้น หากเลือกตรวจสอบด้วยระบบจริงภายหลัง ต้องได้รับอนุญาตแยกต่างหากและกำหนดขอบเขตจำกัดไว้อย่างตั้งใจ
จำกัดช่วงคำค้นประวัติและระบุการทำต่อให้ชัดเจน
การกู้ประวัติควรใช้ช่วงที่กำหนดและเก็บความคืบหน้าไว้ การขอประวัติโดยไม่จำกัดช่วงทุกครั้งที่เริ่มใหม่อาจใช้ความสามารถบริการจนหมด และทำให้ไคลเอนต์ช้าตรงเวลาที่จำเป็นต้องจัดการภาระผูกพันปัจจุบันพอดี
แบ่งงานตามพฤติกรรมที่ผู้ให้บริการรองรับ และเก็บขอบเขตล่าสุดที่ตรวจสอบแล้ว หากคำตอบไม่ครบหรือถูกปฏิเสธ ไคลเอนต์ควรรู้ว่าส่วนใดยังไม่เสร็จ แทนการเลื่อนเคอร์เซอร์เสมือนคำขอทั้งหมดสำเร็จ
อ่านช่วงที่ติดกันให้ทับซ้อนเมื่อการออกแบบการกู้คืนต้องการ แล้วตัดรายการซ้ำด้วยข้อมูลระบุเหตุการณ์ที่คงที่ เป้าหมายคือการตีความที่ครบถ้วน ไม่ใช่แค่ได้จำนวนแถวที่ดูสมเหตุสมผล แม้ช่วงที่ขาดหายจะไม่มีเหตุการณ์ส่งกลับมา ก็ยังต้องมีเหตุผลที่จะถือว่าได้ตรวจครอบคลุมแล้ว
บันทึกการกู้ประวัติแยกจากการสังเกตการณ์สด สตรีมอาจทำงานดีขณะที่ช่องว่างเก่ายังไม่คลี่คลาย และการอนุญาตใหม่อาจต้องรอหากช่องว่างนั้นกระทบเงินหรือสินทรัพย์คงเหลือที่ใช้ได้ สถานะว่าเชื่อมต่อแล้วเพียงค่าเดียวอธิบายทั้งสองเงื่อนไขได้ไม่ตรงความจริง
อย่าให้การเปลี่ยนสคีมากลายเป็นค่าเริ่มต้นแบบเงียบ ๆ
ส่วนต่อประสานภายนอกและการเชื่อมระบบที่รองรับอาจพัฒนาเปลี่ยนแปลงได้ ไคลเอนต์ควรตรวจสอบฟิลด์ที่พึ่งพาและปฏิเสธการเปลี่ยนแปลงที่เข้ากันไม่ได้อย่างชัดเจน แทนการแทนค่าที่ทำให้คำตอบเข้ากับสมมติฐานเดิม
ตัวอย่างเช่น ฟิลด์ปริมาณที่ขาดหายไม่ควรกลายเป็นศูนย์เพียงเพราะตัวแยกวิเคราะห์ทั่วไปใส่ค่าเริ่มต้นให้ สิ่งนี้อาจปลดการกันสินทรัพย์คงเหลือหรือรายงานภาระความเสี่ยงต่ำกว่าจริง ไม่ควรตีความสถานะที่เปลี่ยนชื่อแล้วว่าเป็นความสำเร็จเพียงเพราะไม่ใช่ค่าว่าง
เก็บตัวอย่างบันทึกคำตอบที่เป็นตัวแทนของสคีมาที่รองรับ และตรวจสอบการเปลี่ยนแปลงตามผลทางเศรษฐกิจ ฟิลด์เพิ่มเติมที่ไม่ก่อผลเสียอาจไม่ต้องเปลี่ยนพฤติกรรม แต่หน่วยหรือความหมายสถานะที่เปลี่ยนอาจทำให้การตีความใช้ไม่ได้ ความเข้ากันได้เป็นเรื่องความหมาย ไม่ใช่เพียงว่าคำตอบยังเป็น JSON ที่ถูกต้องหรือไม่
ให้สุขภาพการดำเนินงานสะท้อนหลักฐาน
โปรเซสอาจยังทำงานขณะให้ข้อมูลสังเกตการณ์ที่ล้าสมัย ขาดใบรับธุรกรรม หรือสะสมเจตนาการดำเนินการที่ยังไม่ทราบข้อยุติ ดังนั้นรายงานสุขภาพควรรวมความสดใหม่ของหลักฐานและงานกระทบยอดค้างสะสม ไม่ใช่เพียงว่าบริการตอบ ping หรือไม่
แสดงอายุสถานะบัญชีที่สำคัญ จำนวนการส่งที่ไม่ทราบผล และความสามารถรองรับคำขอกู้คืนที่เหลืออยู่ มาตรวัดเหล่านี้บอกผู้ดูแลว่าไคลเอนต์สามารถอนุญาตกิจกรรมใหม่อย่างรับผิดชอบได้หรือไม่
การแจ้งเตือนควรระบุขอบเขตที่ได้รับผลกระทบและการตอบสนองที่จำเป็น ฟีดค้นหาที่ล้าสมัยอาจทำให้พักการพิจารณาโทเคนใหม่ ขณะการกระทบยอดบัญชียังดำเนินต่อ ความล้มเหลวที่ขอบเขตการลงนามอาจต้องหยุดในวงกว้างกว่า ควรแสดงความแตกต่างนั้นให้เห็น
ไคลเอนต์ API บอตซื้อขาย Ethereum รับมือความขัดข้องได้เมื่อรักษาความหมายไว้ท่ามกลางการรับส่งข้อมูลที่ไม่สมบูรณ์ ขอบเขตที่ชัดเจน ปริมาณที่แม่นยำ และสถานะกู้คืนแบบถาวรช่วยให้ระบบอธิบายได้ว่ารู้อะไร ก่อนใช้อำนาจของกระเป๋าเงิน