Why Nostr? What is Njump?
2024-09-19 07:42:05

LATES on Nostr: ปัญหาของ Alby Hub ...

ปัญหาของ Alby Hub

ตอนต่อของโพสต์เกี่ยวกับงาน Thailand Bitcoin Conference 2024 นะครับ พูดแต่เรื่องตัวเองคนเบื่อตายชัก กลับมาพูดเรื่องคนอื่นบ้าง ตอนนี้คือเรื่องของ Alby Hub เพราะได้ทั้งคำถามเชิงขอร้องจาก กับ ให้ช่วย test มันให้หน่อยว่า user experience เป็นยังไงในสายตาของผม ติดขัดปัญหาอะไรบ้าง ก็จัดไปครับ

(ตอนก่อนหน้า)
https://www.facebook.com/share/p/NcczPjnESMib8fVr/?mibextid=oFDknk

Alby Hub คืออะไร Alby Hub ก็คือ lightning wallet อีกตัวนึงในตลาดที่มีคู่แข่งมากมายก่ายกอง เพียงแต่มันมีความเชี่ยวชาญพิเศษอย่างหนึ่งที่ wallet ตัวอื่นไม่ค่อยมีกัน คือมันเก่งมากในการต่อกับ Nostr เพราะมันเป็นเจ้าแรกที่ implement NIP-47 ก่อนชาวบ้านมาหลายเดือนแล้ว แล้วพอมาเวอร์ชั่นใหม่นี้มันเปลี่ยนชื่อเป็น Alby Hub (จากเดิมคือ NWC) โดยอ้างว่าคุณสมบัติพิเศษใหม่ที่ยิ่งใหญ่ไฉไลของมันคือเป็น full self-custodial wallet

ส่วนตัวผมเคยเทสต์ให้โรแลนด์สมัยมันยังเป็น nwc ก็พบว่าใช้ดีอยู่นะครับ แต่ดีอยู่สักเดือนสองเดือนเห็นจะได้แล้วก็เอ๋ออีก ผมเลยรำคาญ แถม Nostr ก็ไม่ค่อยได้เล่น จะรับ zap ไม่ได้ก็ช่างหัวมันก็เลยไม่สนใจอีก ทีนี้จะมาเทสต์ใหม่ก็ต้องลงใหม่เลย มีวิธีลง Alby Hub อยู่หลายวิธีดังนี้

The application can run in two modes:

Wails (Desktop app): Mac (arm64), Windows (amd64), Linux (amd64)
HTTP (Web app): Docker, Linux (amd64)

Ideally the app runs 24/7 (on a node, VPS or always-online desktop/laptop machine) so it can be connected to a lightning address and receive online payments.

วิธีที่ง่ายคือลงบน desktop หรือ browser แต่เนื่องจากคราวนี้มันเป็น self-custodial แล้วจึงมีโหนดในตัว เผื่อคนไม่เข้าใจ full self-custodial wallet ต้องมีโหนดเสมอ ส่วนจะเป็นโหนดแบบไหนอยู่ที่ใดนั้นอีกเรื่อง การมีโหนดคือพื้นฐานของการปกครองตัวเอง แต่ใช่ว่ามีแล้วจะ full เสมอไป ถ้าโหนดเป็นโหนดตอแหลก็ปกครองตัวเองแบบตอแหลเหมือนกัน ผมสอนเรื่องพวกนี้จนเบื่อแล้วครับ ไปหาอ่านกันเอง

กลับเข้าเรื่อง ผมก็ไปที่เว็บของมันเพื่อลองลงแบบง่าย พอมาเจอขั้นตอนแรกคือคุณต้องสมัครบัญชีกับ Alby ก่อน

จบเลยครับ...

จำผมไว้นะครับ ถ้ามันเป็น full self-custodial จริง คุณจะไม่ต้องไปสมัครอะไรกับใครทั้งสิ้นโดยที่ไม่รู้ว่าชะตากรรมของตนเองนั้นอยู่ในกำมือของตนเองโดยสมบูรณ์หรือไม่ ในการทำโหนด full bitcoin/lightning node แท้ๆกว่าจะลงได้เป็นอาทิตย์ โคตรจะมหายากสลับซับซ้อน คุณยังไม่ต้องไปสมัครอะไรกับใครเลย ไอ้นี่โหนดอะไรก็ไม่รู้จะไปสมัครเพื่อ?

เขาอ้างว่ายังต้องให้สมัครเพราะ lightning address ...โอเค ในการทำ lightning address นั้น ถ้าทำแบบ self-custodial คุณต้องทำ web server บวก domain name certification ซึ่งอาจจะเป็นเรื่องยุ่งยากเกินคนทั่วไปจะทำเอง Alby Hub อาจจะหวังดี ช่วยตรงขั้นตอนนี้ให้ ลูกค้าจะได้ใช้มันง่ายๆ

แต่สำหรับผม มันคือจบครับ ไม่มีประเทศเอกราชประเทศไหนที่เวลากษัตริย์ขึ้นครองราชย์จะต้องได้รับการเซ็นอนุมัติจากอีกประเทศก่อนแล้วสวมมงกุฎให้ อย่างนั้นเขาไม่เรียกว่าเอกราช ต่อให้มึงปกครองตัวเองได้ทุกอย่างก็เถอะ

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

แต่เดี๋ยวจะหาว่าผมไม่แฟร์ ผมยังเหลือทางเลือกอีกทางนึงก็คือลงมันบนโหนดของผมนี่แหละ เอาไปล็อคกับ lnd backend แล้วทำ server กับ name certification เอง ไม่เท่าไหร่ ...พอไหว

ผมก็เลยไปที่ GitHub ของมัน เลือกวิธีลงที่เป็น full self-custodial ของแทร่ ก่อนอื่นขอบอกก่อนว่าห้ามลงอะไรแบบนี้บนโหนดที่ยัง production หรือใช้งานจริงอยู่เป็นอันขาดนะครับ แต่เนื่องจากผมมีโหนดหลายโหนด ขนาดแจกไปแล้วก็ยังมีเหลืออีก 3 โหนด ผมเลยไปเอาโหนดสำรองอันนึง เป็น Raspiblitz on AMD64 มาลงไอ้นี่โดยเฉพาะ สำหรับท่านที่คิดเหมือนผม ต้องการจะลงแบบเดียวกัน ให้ลองทำตามนี้ครับ

ก่อนอื่นเลยเราต้องลง 4 services นี้ก่อน มันถึงจะลง Alby ได้

Go
Node
NPM
SQLite

Raspiblitz ผมมี Node กับ NPM อยู่แล้วก็แค่ลงเพิ่มอีก 2 ตัวที่เหลือ ..หมูๆ ใช้เวลาไม่ถึง 10 นาที ต่อไป ต้องลง Lightning Polar ด๊ายย.. ใน LAN ผมมีโหนดหลายโหนด กู setup Polar เล่นขำๆก็ได้ (แต่ในใจเนี่ยผมเริ่มตะหงิดแล้วนะ ใครมันจะมีโหนดเยอะแยะแบบกูวะเนี่ย มันต้อง control โหนดได้ 2 โหนดน่ะ)

เสร็จแล้ว compile frontend ด้วยคำสั่ง

touch frontend/dist/tmp

ติดครั้งแรก จำไม่ได้แล้วว่าเวอร์ชั่นมัน conflict ห่าอะไรก็ไม่รู้ ผมต้องอัพ Go อีกรอบ พอผ่านแล้วค่อยสั่ง

go run cmd/http/main.go

แล้วมาที่ฝั่ง React frontend ลง yarn

yarn install
yarn dev

แล้วสั่ง compile go อีกที ติดอีก ...ไอ้ชิบหาย 2 ทีแล้วนะ

ไม่เป็นไร สงสัยเครื่องกูมันจะเก่าไป ลองเปลี่ยนเป็นลงใน docker container ก็ได้วะ

docker build . -t nwc-local --progress=plain

ติดเป็นครั้งที่ 3 ต้องลง buildx เพิ่มตามในรูปนั่นแหละ ในที่สุดผมก็หมดความอดทน ...เพราะนี่ยังไม่ถึงครึ่งทางเลยนะครับ

กะอีแค่ลง wallet ให้รับ zap จาก Nostr ได้มึงต้องรุงรังขนาดนี้เลยเหรอ

กูยอมแพ้ครับ เพราะดูสเต็ปต่อไปของมัน ต้องทำ Profiling ต่อ แล้วเอา datadog profiler ไป config SQLite แถมยังมี deeplink option อีก

คงจะเกินความสามารถผมละ ใครทำเป็น ทำสำเร็จช่วยกลับมาสอนพวกเราด้วยนะครับ ถ้าทำได้จริง ผมจะยอมทำตามอีกรอบ

สรุป - ถึงแจ็คและโรแลนด์ กูไม่ไหว ยากเกินความสามารถกูครับ ...555

#siamstr #tbc24 #albyhub

Author Public Key
npub1nsxnfp5690uplzgkslthcvt6269htshqeymhghthenr9wnpt869q57q2hf