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

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

以太坊爱好者
特邀专栏作者
บทความนี้มีประมาณ 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_GoldenApe
บัญชีทางการ:
https://twitter.com/OdailyChina
สารบัญบทความ
คลังบทความของผู้เขียน
以太坊爱好者
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android