BTC
ETH
HTX
SOL
BNB
ดูตลาด
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

เรียนรู้การพัฒนาแอปพลิเคชั่น Lightning Network ในสามนาที

以太坊爱好者
特邀专栏作者
2021-09-13 03:30
บทความนี้มีประมาณ 6482 คำ การอ่านทั้งหมดใช้เวลาประมาณ 10 นาที
ทุกคนสามารถเข้าร่วมใน Lightning Network ได้ตราบเท่าที่ปฏิบัติตามมาตรฐาน
สรุปโดย AI
ขยาย
ทุกคนสามารถเข้าร่วมใน Lightning Network ได้ตราบเท่าที่ปฏิบัติตามมาตรฐาน

ชื่อต้นฉบับ: "Dry Goods | คู่มือฉบับย่อสำหรับการพัฒนาแอปพลิเคชัน Lightning Network" โดย Michael Rhee

หากคุณต้องการเริ่มต้นกับการเขียนโปรแกรม Lightning Network และไม่สนใจสิ่งที่เรียกว่าแนวทางปฏิบัติที่ถูกต้องและดีที่สุด บทความนี้เหมาะสำหรับคุณ กล่าวอีกนัยหนึ่ง แนวปฏิบัตินี้มีความเป็นส่วนตัวสูง หากคุณชอบข้อความที่เชื่อถือได้ในสไตล์ของ O'Reilly บทความนี้อาจไม่ถูกใจคุณ อย่างไรก็ตาม หากคุณต้องการเข้าใจสภาพแวดล้อมการพัฒนาขั้นต่ำของ Lightning Network และเนื้อหาพื้นฐาน คุณควรอ่าน จุดประสงค์ในการเขียนบทความนี้ของฉันคือเพื่อดึงประเด็นความรู้พื้นฐานสำหรับการสร้างแอปพลิเคชันเครือข่ายฟ้าผ่า เพื่อให้มือใหม่สามารถสร้างและทดลองได้อย่างรวดเร็ว

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

ก่อนที่จะลงลึกในรายละเอียด ให้ฉันให้ภูมิหลังเล็กน้อยเกี่ยวกับตัวฉัน:

เมื่อประมาณหนึ่งเดือนที่แล้ว ฉันลาออกจากงานที่มั่นคงในฐานะสถาปนิกข้อมูล และเริ่มศึกษาระบบนิเวศของ Bitcoin ที่เปลี่ยนแปลงตลอดเวลา คุณจะพบบทความนี้แสดงว่าคุณได้ดำเนินการตามขั้นตอนนั้นแล้ว (หรือกำลังคิดเกี่ยวกับเรื่องนี้)

ฉันคิดว่า Bitcoin เป็นนวัตกรรมทางเทคโนโลยีที่น่าสนใจที่สุดเท่าที่ฉันเคยเห็นมา ยิ่งฉันเรียนรู้เกี่ยวกับ Bitcoin มากเท่าไหร่ ฉันก็ยิ่งสนใจมากขึ้นเท่านั้น เทคโนโลยี Bitcoin สัญญาว่าจะเปลี่ยนแปลงและแม้กระทั่งปรับรูปแบบวิธีการโต้ตอบของเราในปัจจุบัน ทำให้มันใหม่ทั้งหมด ฉันหวังว่าจะมีส่วนร่วมในส่วนของฉัน

นั่นเป็นเหตุผลที่ฉันเลือกที่จะพัฒนาบน Bitcoin ฉันหวังว่าบทความนี้จะเป็นประโยชน์ต่อนักพัฒนาที่ไม่คุ้นเคยกับระบบนิเวศของ Lightning Network และศักยภาพของมัน และกระตุ้นให้นักพัฒนาจำนวนมากขึ้นใส่ความคิดสร้างสรรค์ลงไปในพื้นที่ Bitcoin

พูดตามตรง มีเรื่องมากมายที่ฉันอยากเขียนเกี่ยวกับระบบนิเวศของ Bitcoin (แนวคิดของ "สกุลเงินที่ใช้พลังงานสำรอง" เป็นอันดับหนึ่ง) แต่ฉันคงต้องรอวันอื่น ตอนนี้มาทำธุรกิจกันเถอะ:

คำอธิบายภาพ

-ที่มา: lnrouter.app-

การออกแบบพื้นฐานของ Lightning Network คือการใช้ช่องสัญญาณเพื่อให้เกิดการเชื่อมต่อแบบหนึ่งต่อหนึ่งระหว่างโหนดต่างๆ ในการเปิดช่อง คุณต้องฝาก Bitcoin จำนวนหนึ่ง และธุรกรรมนี้จะถูกบันทึกไว้ใน Bitcoin blockchain จากนั้นผู้ใช้สามารถใช้สัญญานอกเครือข่ายพิเศษเพื่อโอน bitcoins ในช่องทางระหว่างโหนดโดยไม่ต้องส่งธุรกรรมใหม่ไปยัง blockchain

แนวทางปฏิบัติคือติดตามการเปลี่ยนแปลงยอดคงเหลือในช่องตามเวลาจริง ตัวอย่างเช่น หากคุณฝาก 100 satoshi ในช่องที่เปิดกับ Alice คุณมีโควต้าการโอนประมาณ 100 satoshi (หักค่าธรรมเนียมการทำธุรกรรมบนเครือข่าย) ซึ่งสามารถโอนโดยตรงไปยัง Alice หรือโดยอ้อมผ่าน Alice การโอนเหล่านี้เกือบจะทันทีเนื่องจากเราเพียงต้องการปรับสมดุลของช่องในแต่ละธุรกรรม การปรับเปลี่ยนนี้ทำได้โดยการส่งข้อความที่เข้ารหัสระหว่างผู้ส่งและผู้รับ

แอพ Lightning ทำงานบนเครือข่าย Lightning (ที่เรียกว่า Bitcoin เลเยอร์ 2) Lightning Apps ยังใช้ Bitcoin เป็นวิธีการชำระเงิน แต่ด้วยการชำระเงินที่เร็วกว่าและค่าธรรมเนียมการทำธุรกรรมที่ต่ำกว่า

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

ฉันคิดว่าวิธีที่ดีกว่าในการทำความเข้าใจว่า Lightning Network และโหนดทำงานอย่างไรคือการเรียกใช้โหนดด้วยตัวคุณเองและค้นหาว่าการชำระเงินผ่านโหนดนั้นอย่างไร แม้ว่าวิธีนี้ต้องใช้เวลาและเงินมากขึ้น แต่ก็น่าสนใจและมีความรู้ 1

ทำให้สำเร็จ

Lightning Network เป็นโปรโตคอลแบบเปิด ซึ่งหมายความว่า Lightning Network มีวิธีมาตรฐานในการสื่อสารและตีความข้อความ เช่นเดียวกับ HTTPS และ TCP/IP ที่ไม่มีใครเป็นเจ้าของ และโปรโตคอล Lightning Network ก็เช่นกัน ทุกคนสามารถเข้าร่วมใน Lightning Network ได้ตราบเท่าที่ปฏิบัติตามมาตรฐาน ไม่เพียงแค่นั้น แต่มาตรฐานจะยังคงพัฒนาต่อไปในขณะที่นักพัฒนายังคงเพิ่มความแข็งแกร่งให้กับโปรโตคอลและเพิ่มคุณสมบัติใหม่

ปัจจุบัน บริษัท สี่แห่งเป็นหัวใจสำคัญของการพัฒนาโปรโตคอล Lightning: Lightning Labs, Blockstream, ACINQ และ Square Crypto ซึ่งทั้งหมดมีการใช้งานของตนเอง:

Lightning Labs — lnd (Go)

Blockstream — c-lighting (C)

ACINQ — eclair (Scala)

Square Crypto — Rust Lightning (Rust)

การใช้งานทั้งหมดข้างต้นสามารถสื่อสารผ่าน Lightning Network ได้ ความแตกต่างคือ API ของการใช้งานเหล่านี้ บทความนี้เน้นเฉพาะที่ Lightning Labs 'lnd เพราะนั่นเป็นครั้งแรกที่ฉันได้ติดต่อด้วยและเป็นคนที่ฉันรู้จักมากที่สุด แม้ว่าในที่สุดฉันจะเลือก Ind เพราะปัจจัยที่บังเอิญ แต่ฉันต้องอวดว่าเอกสาร Ind ของ Lightning Labs เขียนได้ดี และนักพัฒนาสามารถรับความช่วยเหลือและการสนับสนุนมากมายผ่านช่องทาง Slack อย่างเป็นทางการ

โปรดทราบว่าการสนทนาด้านล่างจะเกี่ยวกับ Ind แต่แนวคิดพื้นฐานจะนำไปใช้กับการใช้งาน Lightning Network ทั้งหมด

สภาพแวดล้อมการพัฒนาของคุณ

ไม่มีเรื่องไร้สาระ เพียงแค่ใช้ Polar

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

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

โหนดที่สามารถใช้สำหรับการพัฒนาเครือข่าย Lightning จะต้องดำเนินการสองกระบวนการ: (1) ไคลเอนต์ bitcoin ที่ซิงโครไนซ์กับบล็อกล่าสุดของ bitcoin blockchain (2) ไคลเอนต์เครือข่าย Lightning ที่เปิดช่อง (สามารถส่งและรับ การชำระเงิน)

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

หากเราเรียงลำดับเลเยอร์ของ Bitcoin เลเยอร์ Lightning Network จะเป็นเลเยอร์ที่สองของ Bitcoin ดังที่กล่าวไว้ข้างต้น เราต้องเปิดช่องทางบน Lightning Network เพื่อทำธุรกรรม แม้ว่าการเปิดช่องบน Lightning Network จะไม่ใช่เรื่องยาก แต่คุณต้องมีการวางแผนและการประสานงานบางอย่าง เช่นเดียวกับการจ่ายบิตคอยน์ แน่นอนคุณสามารถเดิมพัน bitcoins เพื่อเปิดช่องและเริ่มการซื้อขายได้ อย่างไรก็ตาม คุณไม่จำเป็นต้องรับความเสี่ยงทางการเงินนี้ 2

คำอธิบายภาพ

-ดู! แทบรอไม่ไหวที่จะซิงค์! (โพลาร์อินเตอร์เฟส) -

สิ่งที่ยอดเยี่ยมเกี่ยวกับ Polar คือเมื่อคุณพร้อมที่จะย้ายแอปไปยัง testnet หรือ mainnet backend คุณจะต้องอัปเดตการกำหนดค่าเพียงเล็กน้อยเท่านั้น ฉันสามารถสลับไปมาระหว่างแบ็กเอนด์ในเครื่อง testnet และ mainnet ได้อย่างง่ายดายโดยการเพิ่มหรือแสดงความคิดเห็นในโค้ดสองสามบรรทัดในแอป (ฉันจะลงเอยด้วยไฟล์ .env แน่นอนว่าเครื่องมือสร้างโปรไฟล์ไม่ใช่จุดประสงค์ของบทความนี้)

โพลาร์ยังรองรับโหนด lnd, c-lighting และ eclair ซึ่งหมายความว่าคุณมีความยืดหยุ่นในการทดสอบการใช้งานอื่นๆ

อีกครั้ง: เพียงใช้ Polar นี่เป็นวิธีที่ง่ายและรวดเร็วในการเริ่มต้น นอกจากนี้ ถ้าคุณไม่ชอบพัฒนาบน Lightning Network เลยล่ะ? การค้นหาสิ่งนี้ตั้งแต่เนิ่นๆ ดีกว่าเสียเวลาและเงินมากเกินไปกับระบบที่คุณไม่จำเป็นต้องใช้ ต้องบอกว่า หากคุณพบว่าตัวเองติดพอดแคสต์ของ Stephan Livera ซึ่งคุณไม่สามารถเลิกฟังได้ทุกคืน คุณก็สามารถสร้างสภาพแวดล้อมการพัฒนาที่จริงจังมากขึ้นได้

ข้อความ

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

ในที่สุดคุณจะเห็นอินเทอร์เฟซของ Polar คล้ายกับด้านล่าง:

ในอินเทอร์เฟซที่แสดงในรูปด้านบน เราสามารถเห็นโหนด Ind ของ Alice และ Bob และทั้งสองโหนดเชื่อมต่อกับกระบวนการแบ็กเอนด์ Bitcoin Core โปรดทราบว่าความสูงของบล็อกในขณะนี้คือ 1 นี่คือบล็อกกำเนิดของเรา! ซึ่งแตกต่างจากบล็อกเชนที่ใช้งานจริง Polar จะสร้างบล็อกเมื่อมีการส่งธุรกรรมระหว่างการพัฒนาและการทดสอบเท่านั้น

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

คลิก "ฝาก" แล้วฝาก 1 ล้าน satoshi เข้ากระเป๋าเงินของอลิซ

หากทุกอย่างเป็นไปตามแผน คุณจะเห็นความสูงของบล็อกและยอดคงเหลือในกระเป๋าเงินของอลิซเปลี่ยนไป ถ้าไม่โปรดขอความช่วยเหลือ นี่ไม่ใช่ความผิดของคุณ 3

ตอนนี้เราสามารถเปิดช่องระหว่างอลิซกับบ๊อบได้แล้ว ตอนนี้อลิซมีเงินแล้ว เราสามารถให้เธอเปิดช่อง "ขาออก" กับบ๊อบได้ ช่องทางการโอนที่เรียกว่า หมายความว่า Alice สามารถโอน bitcoins จำนวนหนึ่งให้กับ Bob ผ่านช่องทางนี้ ธุรกรรมการโอนหลายรายการสามารถทำได้ระหว่างอลิซและบ็อบ ตราบใดที่ยังมียอดคงเหลือในช่องทาง อย่างไรก็ตาม โปรดทราบว่าเมื่อช่องเปิดขึ้นครั้งแรก มีเพียงอลิซเท่านั้นที่สามารถโอนเงินให้บ๊อบได้ เนื่องจากยอดเงินที่มีอยู่อยู่กับเธอ แน่นอน หลังจากที่อลิสโอนเงินให้บ๊อบแล้ว บ๊อบก็สามารถโอนเงินให้อลิสได้

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

พูดตามตรง ฉันมีปัญหาในการเปิดช่องกับโพลาร์ ฉันสงสัยว่ามันเป็นสถานะที่ไม่ตรงกันระหว่าง UI และแบ็กเอนด์ แต่ฉันไม่แน่ใจ บางครั้ง การปิดและรีสตาร์ทโหนด (หรือทั้งเครือข่าย) ก็ช่วยได้ การออกจากระบบอย่างสมบูรณ์และรีสตาร์ท Polar ก็จะใช้งานได้เช่นกัน นอกจากนี้ เมื่อคุณอยู่ในสถานการณ์เช่นนี้ การออกไปข้างนอกเป็นเวลา 10 นาทีอาจเป็นวิธีที่ดีในการผ่อนคลายจิตใจและจิตวิญญาณของคุณ

ไม่ว่าจะด้วยเหตุผลใดก็ตาม ฉันพบว่าวิธีที่ดีที่สุดในการดำเนินการกับโหนดเหล่านี้คือผ่าน CLI ที่ Polar จัดหาให้ แม้ว่า UI ไม่จำเป็นต้องแสดงการเปลี่ยนแปลง แต่เราสามารถสอบถามฐานข้อมูลได้โดยตรง (กล่าวคือ 4) เพื่อพิจารณาว่า UI นั้นสะท้อนถึงการเปลี่ยนแปลงอย่างถูกต้องหรือไม่ โพลาร์ทำให้มันง่าย มาทำกันเถอะ

ก่อนอื่นให้เลือกโหนด Alice's Ind ป้อนอินเทอร์เฟซ "Actions" คลิก "Launch" ใต้ "Terminal" จากนั้นพรอมต์คำสั่งจะปรากฏขึ้นดังที่แสดงในรูปต่อไปนี้:

ตอนนี้เราสามารถใช้เครื่องมือ lncli ของโหนด Ind เพื่อเปิดช่องทาง สร้างใบแจ้งหนี้ และชำระเงิน ขั้นแรก ให้รันคำสั่งต่อไปนี้เพื่อดูภาพรวม:

lncli --help

เราสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อเปิดช่องที่มียอด 100,000 satoshi ระหว่าง Alice และ Bob:

lncli openchannel --node_key --local_amt 100000

คุณจะเห็นการตอบกลับด้วย "funding_txid" ซึ่งสอดคล้องกับธุรกรรมการระดมทุนที่ Alice และ Bob ถ่ายทอดไปยัง Bitcoin blockchain จำลองของเรา เรียกใช้คำสั่งต่อไปนี้เพื่อดูช่องที่สร้างขึ้นใหม่ของเรา:

lncli listchannels

หากคำสั่งส่งคืนรายการว่าง ให้ลองขุดบล็อกสองสามบล็อกด้วยโหนด Bitcoin (ใต้หน้าจอ "การดำเนินการ") การดำเนินการดังกล่าวน่าจะช่วยยืนยันการทำธุรกรรมและเปิดช่องทาง

ตอนนี้ เราสามารถเห็นได้จากการตอบสนองของช่องรายการว่าช่องระหว่างอลิซและบ๊อบเปิดสำเร็จแล้ว และยอดคงเหลือของช่องอยู่ที่ประมาณ 100,000 satoshi (หักค่าธรรมเนียมการทำธุรกรรม) น้อยกว่า 100,000 satoshi คือยอดคงเหลือที่อลิซสามารถจ่ายให้ Bob ผ่าน Lightning Network

ขั้นตอนการชำระเงิน

กระบวนการชำระเงินที่ง่ายที่สุด (และฉันเชื่อว่าพบบ่อยที่สุด) บน Lightning Network คือผ่านใบแจ้งหนี้ โดยพื้นฐานแล้วใบแจ้งหนี้คือชุดคำสั่งการชำระเงินที่มี "จำนวนเงิน" และ "ผู้รับเงิน" มีพารามิเตอร์และตัวแปรอื่นๆ ที่ช่วยให้คำแนะนำในการชำระเงินปลดล็อกความเป็นไปได้ที่น่าสนใจมากขึ้น (เช่น ใบแจ้งหนี้ hodl และข้อเสนอ BOLT12) แต่บทความนี้เน้นเฉพาะรูปแบบพื้นฐานที่สุดเท่านั้น

ไปที่การตั้งค่า Polar ของเรา สร้างใบแจ้งหนี้ก่อน แต่คราวนี้ใช้โหนดของ Bob ดังนั้นเราจะเริ่มการทำงานของเทอร์มินัลของ Bob และเรียกใช้คำสั่งต่อไปนี้:

lncli addinvoice --amt 100

คำสั่งดังกล่าวสร้างใบแจ้งหนี้มูลค่า 100 satoshi (อันที่จริง ฉันพบข้อผิดพลาดในการเชื่อมต่อขณะทำตามขั้นตอนเหล่านี้ หากคุณมีปัญหาเดียวกัน ให้หยุดและรีสตาร์ทโหนดของ Bob) เราสามารถดูข้อมูลของใบแจ้งหนี้นี้ผ่านการตอบกลับที่ส่งคืน:

{    "r_hash": "7d91cafaba85b6086924142dfd890f350eb53b17b80e2993d0a2ce5ccc7252f1",    "payment_request": "lnbcrt1u1ps3lu04pp50kgu4746skmqs6fyzsklmzg0x58t2wchhq8zny7s5t89enrj2tcsdqqcqzpgsp55rtlzlf5rt0z5zg34nc2rlcm9mw6nd77x45r85z6zp07qumphr7q9qyyssqzrvxdlsluaeu7esscvv8skcmaly4794j7pg9ytapmn50uukezf4xpqma9758s39wpn4pwk475dztezg4tff8xpylksl4mww57q8hj7cq7s7222",    "add_index": "1",    "payment_addr": "a0d7f17d341ade2a0911acf0a1ff1b2edda9b7de356833d05a105fe07361b8fc"}

สำหรับตอนนี้ เรามุ่งเน้นไปที่ส่วน "payment_request" เท่านั้น เนื่องจากข้อมูลส่วนนี้มีทุกสิ่งที่ Alice ต้องการในการชำระเงินให้กับ Bob นั่นคือจำนวนเงินที่ชำระและที่อยู่ของผู้รับเงิน5

หากเราเปลี่ยนกลับไปใช้เทอร์มินัลโหนดของ Alice เราจะได้รับคำขอชำระเงินและส่งเป็นอาร์กิวเมนต์ไปยังคำสั่งต่อไปนี้:

  • lncli sendpayment --pay_req

ผลลัพธ์คือ:

ความสำเร็จ.

ข้อความ

ณ จุดนี้ คุณควรมีความรู้พื้นฐานและเครื่องมือเพียงพอที่จะเริ่มสร้างแอปพลิเคชัน ไดอะแกรมด้านบนแสดงตัวอย่างแอปพลิเคชันง่ายๆ โดยใช้การเรียก API แบบเดียวกับที่เราใช้ใน Polar เพื่อสร้างและชำระใบแจ้งหนี้ นั่นคือทั้งหมดที่คุณต้องการเพื่อสร้างสถาปัตยกรรมแอปพลิเคชันพื้นฐาน แน่นอนว่านี่เป็นเพียงตัวอย่างหนึ่ง เราจะพบปัญหาอื่นๆ อีกมากมายในระหว่างขั้นตอนการพัฒนา (นี่เป็นเพียงจุดเริ่มต้นเท่านั้น) แต่คุณจะค่อยๆ เข้าใจว่าคุณต้องการอะไรและจะแก้ปัญหาอย่างไร

คำแนะนำและการอ้างอิงเพิ่มเติม:

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

  • หากคุณต้องการดูตัวอย่างการใช้งานที่เป็นรูปธรรมมากขึ้น โปรดดูบทช่วยสอนในคู่มือ Lightning Labs Builder's Guide หากคุณคุ้นเคยกับเครื่องมือ express, mobx และ React ที่ใช้ในบทช่วยสอน ฉันขอแนะนำบทช่วยสอนนี้เป็นอย่างยิ่ง หากคุณไม่คุ้นเคยกับเครื่องมือเหล่านี้ คุณอาจไม่ได้อะไรมากจากบทช่วยสอนนี้ แต่คุณยังคงสามารถเรียนรู้บางอย่างได้ สิ่งหนึ่งที่ฉันชอบเกี่ยวกับบทช่วยสอนนี้คือมันแสดงสิ่งที่น่าสนใจบางอย่างที่คุณสามารถทำได้ด้วยแอปที่สร้างขึ้นโดยใช้ Lightning Network (และการพิสูจน์การเข้ารหัส)

สุดท้าย หากคุณคิดว่าสิ่งใดในบทความนี้ไม่ชัดเจนหรือไม่ถูกต้อง โปรดอย่าลังเลที่จะส่งคำติชมหรือคำถามถึงฉัน

ขอบคุณที่อ่าน.

มาเร็ว.

เชิงอรรถ

  • หากคุณต้องการรันโหนด Umbrel นั้นยอดเยี่ยมสำหรับผู้เริ่มต้น ฉันได้ยินมาว่า MyNode, RaspiBolt และ RaspiBlitz ก็ใช้ได้ดีเช่นกัน หากคุณชอบปรับแต่งระบบซอฟต์แวร์ (หรือ SimCity) การรันโหนดเป็นงานอดิเรกที่สนุกที่สุด ดีที่สุดคือเกมที่มีค่าใช้จ่ายสูงและปรับแต่งได้ไม่รู้จบ (ต้องใช้เงินจริง)

  • คุณยังสามารถเรียกใช้การทดสอบบนเครือข่ายทดสอบและรับ bitcoins ทดลองผ่าน bitcoin faucet เหรียญเหล่านี้ไม่มีค่า แต่การเป็นคนขี้เหนียวก็สนุกได้ หากคุณไม่สนใจที่จะกำหนดค่าและจัดการโหนดด้วยตนเอง คุณสามารถใช้บริการเช่น Voltage ได้ Voltage เป็นบริการคลาวด์แบบจ่ายตามการใช้งานที่รองรับโหนด testnet และ mainnet

  • เราไม่สามารถแน่ใจได้ 100% สำหรับข้อควรระวัง โปรดดูช่องนักพัฒนาบน lnd Slack ฉันได้พบกับนักพัฒนาหลายคนที่นี่ซึ่งสร้างและดูแลเครื่องมือเหล่านี้ คุณอาจเห็นฉัน! บางคนอาจเคยประสบปัญหาที่คุณกำลังเผชิญอยู่ ถ้าไม่ดี ทุกคนสามารถเรียนรู้จากคำถามของคุณ

  • บล็อกเชนเป็นฐานข้อมูลสาธารณะ และทุกคนมีสิทธิ์เข้าถึงรูท สำหรับข้อมูลเพิ่มเติม โปรดดูที่: https://balajis.com/yes-you-may-need-a-blockchain/

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



เครือข่ายฟ้าผ่า
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
ค้นหา
สารบัญบทความ
คลังบทความของผู้เขียน
以太坊爱好者
อันดับบทความร้อน
Daily
Weekly
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android