Replying to Avatar chontit

ในที่สุด StartOS ผมก็ sync bitcoin core เสร็จแล้วววว.... เฮ้อออ 🎉🎉🎉

สรุปเวลารวม คือ

- 12 ชั่วโมงแรกสำหรับ 70% (Sync ถึงประมาณ Block 560,000 ... โน๊ตวันก่อนอุตส่าห์ไปโม้ไว้ 😂)

- และอีก 30% ที่เหลือเพื่อ sync ให้ถึงบล็อกปัจจุบัน ใช้อีก 2 วันเต็ม ๆ 55555

สรุปว่าเริ่มทำระบบวันอาทิตย์ sync Bitcoin Core เสร็จวันพุธ ทั้ง ๆ ที่ครั้งที่แล้วที่เคยทำ (เมื่อ 6 เดือนก่อน) ใช้เวลา sync แค่ 1 วันครึ่งเองนะ (ประมาณ 36 ชั่วโมง) 🫠

ทำไมมันเป็นอย่างนั้นหว่า ???

ลองใช้หลักการตั้งสมมติฐานโดยมีตัวแปรควบคุมคือ "คน" "คอม" "เน็ท" เหมือนเดิม แต่ที่เปลี่ยนไป คือ "ssd" และการ "sync bitcoin core พร้อมกับ electrs" .... จึงสรุปคร่าว ๆ ได้ประมาณนี้

ประเด็นที่ 1 : SSD

ในท้องตลาดมีหลากหลายยี่ห้อ ทั้งวิ่งบน Interface PCI-E 3.0/4.0 แต่ถ้าใครเคยซื้ออุปกรณ์พวกนี้จะเห็นว่าราคามันไม่เท่ากัน ถึงแม้จะความจุ 2TB เท่ากันก็จริง วิ่งบน PCI-E 4.0 เหมือนกันก็จริง แม้กระทั่งตัวเลข Read/Write บนกล่องเขียนไว้เท่ากันก็จริง แต่ทำไมราคาถึงแตกต่างกันเป็นพันบาทเลยนะ ... ใช่แหละ มันต้องมีอะไรที่ไม่เหมือนกันแหละ ไม่งั้นราคาไม่แพงกว่ากันหรอก จริงมั้ย?

- ครั้งก่อนผมใช้ WD Blue 1 TB ซึ่งวิ่งบน PCI-E 3.0 แต่ถึงว่าราคาสูงกว่ายี่ห้ออื่น ทั้ง ๆ ที่ความจุเท่ากัน : ผลก็คือ sync 36 hrs.

- ครั้งนี้ผมใช้ PNY ขนาด 2 TB ซึ่งวิ่งบน PCI-E 4.0 แต่ราคาถูกกว่ารุ่นอื่นค่อนข้างเยอะ (ถูกกว่าเป็นพันบาท) : ผลก็คือ sync 3 วัน 5555

ข้อมูลเพิ่มเติม : คอมอีกเครื่องที่รัน Umbrel ผมใช้ WD Green SSD ขนาด 1 TB ที่มีราคาค่าตัวแค่พันกว่าบาท : ผลก็คือ sync 2 สัปดาห์เต็ม ๆ แหละ ... นี่แหละน้าาา ที่มาของคำว่าใช้เงินซื้อเวลา 555 ,,, ใครอยากประหยัดตังหน่อยก็จ่ายด้วยเวลาแทน (แต่เป็นทางเลือกที่ดีนะครับ ความจริงคือเราไม่ได้มีความจำเป็นต้องเร่งรีบให้ sync เสร็จในไม่กี่ชั่วโมง .. เก็บเงินไป stack sat ดีกว่าเย้อะะ) 🥹🥹

ประเด็นที่ 2 เทคนิคการ Sync

ครั้งนี้ผม Sync ทั้ง Bitcoin Core และ Electrs ไปพร้อมกัน โดยหวังว่าจะได้ไม่ต้องรอให้ Electrs ทำ Indexing เองอีกรอบ (ใช้เวลานานอยู่นะ...หลายชั่วโมงเลย) : ผลก็คือ "มัน Sync ใหม่" 5555 โดยเริ่มจาก Block 0 เลย!!!👍

แต่ประเด็นนี้ขอไม่ฟันธงครับว่ามีผลทำให้การ Sync ใช้เวลานานขึ้น และผมก็คงไม่เริ่มต้น sync ใหม่อีกรอบเพื่อทดสอบแน่นอน 😅 แต่อยากแนะนำว่าการเปิด sync Bitcoin Core กับ Electrs พร้อมกันแต่แรก "อย่าหาทำ!" มันไม่ค่อยช่วยเท่าไหร่ เพราะหลังจาก bitcoind sync เสร็จ เจ้า Electrs ก็เริ่มใหม่อยู่ดี เฮ้อออ....🫠

สรุปว่า ถ้าใครจะมาลองรันโหนดเล่น ๆ หรือคาดหวังจะทำตามบทความที่ผมกำลังเขียน (เขียนได้ 90% แล้ว) มีโอกาสสูงที่จะเจออุปสรรคต่าง ๆ นา ๆ อีกมากมายครับ แต่ผมจะขอเป็นกำลังใจให้ห่าง ๆ แล้วกันครับ 🧡🧡🧡

ปล. สิ่งใดที่ได้มาโดยง่าย..มักจะเสียไปโดยง่าย, แต่สิ่งใดที่ได้มาด้วยความยากลำบาก..สิ่งนั้นมักจะมีค่าเสมอ👍

"อิสรภาพก็เช่นกัน"

#siamstr

นับถือในความตั้งใจและพยายามมากครับ

มันมีอีกหลายปัจจัยที่ทำให้ sync เร็วช้าแตกต่างกันด้วยนะครับ ปัจจัยนึงที่สำคัญคือ network ผมเคย sync ด้วย tor กับ ip ก็ต่างกันมาก บางครั้งถ้า node ของเราเชื่อมต่อกับ node อื่นที่โหลดข้อมูลช้า เราก็ sync ช้าไปด้วย แต่พอผมสั่ง restart service มันอาจเชื่อม node ที่ต่างจากเดิมและ sync ได้เร็วขึ้นมาก็มี แต่บางครั้งก็ช้าเหมือนเดิม

วิธีที่เร็วกว่าคือมี full node อีกเครื่องและให้ node ใหม่ทำการ sync จาก full node ที่อยู่ใน network เดียวกัน

และวิธีที่เร็วที่สุดคือ copy blockchain data รอไว้ก่อน อันนี้เร็วมากเพราะ bitcoin core จะ verify เพิ่งแค่ 6 block ล่าสุดเท่านั้น

Reply to this note

Please Login to reply.

Discussion

ขอบคุณพี่ตี๋มากๆ ครับ

Network ผมลืมมองไปเลยครับ แต่ถ้า Default มันจะวิ่งผ่าน Clearnet (แต่ก็เป็นไปได้ที่จะเจอ Node ที่ช้า ผมมองแต่เน็ท 1000/500 ของฝั่งผม .... ทำไมมัน sync ช้าจังเลยยย)

ส่วนวิธี sync จาก full node ใน Network เดียวกัน กับก๊อปปี้ data เดิมไว้ก่อน อาจจะไม่ตอบโจทย์กับคนที่เริ่มต้นใหม่เพราะยังไม่มี Node เดิมให้ sync ครับ

ปล.ผมจะรบกวนหลังไมค์ให้พี่ช่วยดูบทความผมหน่อยนะครับพี่ เผื่อว่ามีคำแนะนำที่ผมควรปรับแก้/เพิ่มเติมตรงไหนครับ

ขอบคุณค้าบบบ

ปกติ bitcoin node ส่วนใหญ่จะใช้เป็น tor เป็นอ่ะครับ ทำให้เราก็ต้องใช้ tor. สำหรับ sync ซึ่ง tor มันช้ามากครับ อาจต้องลองเช็คด้วยคำสั่ง bitcoin-cli -getpeersinfo แล้วดูที่ address ที่ node ของเราเชื่อมต่อด้วยครับ ซึ่งส่วนใหญ่จะเป็น tor นะครับ บางทีผมไปแก้ bitcoin.conf เพื่อให้ sync ด้วย ipได้เร็วขึ้นมากครับ

ช่วงนี้ผมกำลังวางแผน workshop ซึ่งจำเป็นต้องทำให้ node ประมาณ 5 node สามารถ sync เสร็จใน 3-4 ชั่วโมง เพื่อให้พร้อมใช้งานได้ครบทุกหัวข้อใน 1 วันด้วย จึงศึกษาวิธีร่นระยะเวลาให้มากที่สุดครับ

อย่างไรก็แล้วแต่ จะช้าจะเร็วการ sync มันก็แค่ช่วงแรกเท่านั้น แล้วมือใหม่คงไม่จำเป็นต้องกังวลอะไรมาก แค่รอไปจนมันเสร็จก็เป็นอันใช้ได้ครับ

ส่วนเรื่องช่วยอ่านบทความยินดีเสมอครับ แต่ผมจะไม่เก่งเรื่องภาษาและความสละสลวยนะ 555

ขอบพระคุณครับพี่ตี๋ ,, DM เรียบร้อยคับ

เทคนิคใหม่ ถ้ามีโอกาสจะลองทำดูบาง 🤟

เอะถ้าทำแบบนั้นได้ก็ประหยัดความจำได้ด้วยหรือเปล่าเพราะเอาแต่ 6 block ล่าสุดพอ

ไม่ใช่แบบนั้นครับ

พี่ตี๋หมายถึงให้คัดลอก full block database เดิมไอที่มันเกือบ 700 กิ๊กไปไว้เครื่องใหม่ก่อน ค่อยให้ระบบเริ่ม sync ครับ

😅 เสียดายนึกว่าจะมีโอกาสประหยัดความจำด้วยเชื่อใจเอา 6 block ล่าสุดพอ 555+

ทำได้ครับ แต่จะเป็นแบบ Pruning node ครับ

แต่ผมเคยลองละ ไม่เวิร์ค 5555

งั้นยอมเก็บประวัติศาสตร์ตั้งแต่ block แรกได้ครับ 55+

มาคิด ๆ ต้องเก็บแต่ block แรกเพราะอาจมี address ที่ไมได้มีการเคลื่อนไหวใน block เก่า ด้วย