What is Distributed Hash Table (DHT)?
Distributed Hash Table คือสมุดที่อยู่ร่วมที่แพร่กระจายงานการค้นหาข้อมูลไปยังคอมพิวเตอร์อิสระหลายเครื่อง แทนที่จะมีเซิร์ฟเวอร์เดียวที่ตอบว่าข้อมูลชิ้นใดอยู่ที่ไหน DHT ทำให้เครือข่ายชี้ไปยังสถานที่ที่ถูกต้องร่วมกัน คิดว่าเป็นการถามฝูงชนที่ฉลาดว่าตำแหน่งไฟล์อยู่ที่ไหน และฝูงชนตอบกลับในไม่กี่ขั้นตอนอย่างรวดเร็ว
DHT เก็บไฟล์ของคุณไว้ตลอดกาล ไม่ใช่ทั้งหมด มันเก็บตำแหน่งที่จะพบสิ่งต่างๆ ไม่ใช่สิ่งเหล่านั้นจริงๆ และข้อมูลยังคงอยู่บน peers ที่เลือกให้โฮสต์มัน
How Distributed Hash Table (DHT) works
จิตนาการแอปของคุณถามฝูงชนเพื่อหาสิ่งที่ถูกกำหนดด้วยแฮชของเนื้อหา นี่คือรูปแบบการทำงานอย่างรวบรัด
- Step 1: คุณเข้าร่วม swarm และกลายเป็นหนึ่งใน nodes.
- Step 2: คุณต้องการ item X ดังนั้นคุณนำเนื้อหาของมันมาคำนวณแฮชที่ทำหน้าที่เป็น ID เฉพาะ
- Step 3: คุณถาม peers ใกล้เคียง ซึ่งจะส่งคำถามของคุณไปยัง peers ที่อยู่ใกล้เชิงคณิตศาสตร์กับ ID นั้น
- Step 4: คำถามจะไปถึง peers ที่รับผิดชอบ ซึ่งจะตอบว่าตอนนี้ใครมี item X
- Step 5: คุณเชื่อมต่อกับ peers เหล่านั้นและดาวน์โหลดโดยตรงจากพวกเขา เร็ว สะดวก เสร็จ
Real world anchor time: IPFS (InterPlanetary File System) ใช้ DHT เพื่อค้นหาว่าผู้ peers ใดถือ content สำหรับแฮชที่กำหนด แล้วดึงจากพวกเขา
Why Distributed Hash Table (DHT) Matters
แล้วทำไมคุณควรใส่ใจมากกว่าความ geek?
- Benefit: มันค้นหาข้อมูลอย่างรวดเร็วโดยไม่พึ่งผู้ดูแลศูนย์กลาง ซึ่งนำมาซึ่งความเร็วและความยืดหยุ่น
- Perspective: มันเป็นส่วนประกอบสำคัญของเครือข่าย decentralized ที่ฝูงชนดูแลการ lookup และลดจุดล้มเหลวเดียว
- Relevance: การค้นหา peers สำหรับการแชร์ไฟล์ ความพร้อมใช้ง้อมูลสำหรับ dapps และแม้กระทั่งการหาคู่ค้าทาง peer to peer transactions.
เมื่อ有人บอกว่า DHT มีข้อมูลของคุณ ให้ถามว่า data เองถูกเก็บไว้ที่ไหนและมี peers กี่ป่านที่ pin หรือ replicate ข้อมูลนั้น ลิงก์ชี้ไปไม่ใช่การสำรองข้อมูล
Key Characteristics of Distributed Hash Table (DHT)
อะไรทำให้มันโดดเด่นพอที่จะใช้งานใน crypto และ peer systems ต่อไป:
- Lookup: ให้ key แล้วค้นหาผู้รับผิดชอบในจำนวน hops อย่างสอดคล้องกับลองจิกูรี โดยแม้ในขนาดใหญ่
- Spread: ดัชนีถูกแชร์เพื่อไม่มีเซิร์ฟเวอร์เดียวที่สามารถบอกลาการค้นหาได้
- Resilience: peers สามารถเข้าร่วมออกจากเครือข่ายได้ และเครือข่ายยังคงนำทางได้
- Verifiability: Keys เป็นแฮช ดังนั้นสิ่งที่คุณดึงออกมาสามารถตรวจสอบกับ key ได้
Variations
มีหลาย flavor ที่ต่างกัน แต่ละแบบมีสไตล์ routing และ tradeoffs ของตนเอง:
- Kademlia: ใช้กันอย่างแพร่หลายในระยะไกล routing ตามระยะ XOR และชอบ peers ที่มีอายุการใช้งานนาน
- Chord: จัด peers เป็นวงกลมและ routing ตาม finger tables
- Pastry: ใช้ routing ตาม prefix พร้อมการรับรู้ระยะห่าง
DHT เป็น directory และระบบ routing ไม่ใช่ฐานข้อมูลของความจริง คุณยังต้องตรวจสอบ content ตาม hash และมองสิ่งที่ peers อ้างด้วยความสงสัยที่สมเหตุสมผล
Example
คุณขอ content hash ในแอปที่พูดถึง IPFS (InterPlanetary File System), DHT ตอบกลับด้วยที่อยู่ peers หลายคน และแอปของคุณดึง bytes โดยตรงจาก peers เหล่านั้น
Fun Fact
Kademlia ซึ่งเป็น flavor ที่เป็นที่นิยมที่สุดของ DHT เปิดตัวในปี 2002 และเงียบๆ มีอิทธิพลต่อทุกอย่างตั้งแต่ลิงก์ magnet ของ BitTorrent ไปจนถึงการจัดเก็บข้อมูลที่ระบุด้วย content used โดย crypto projects ข่าวเก่าสร้างผลกระทบใหม่
Wrap-Up
สั้นๆ วิธีคิด: DHT คือสมุดที่อยู่ที่ช่วยเครือข่าย peer ให้ค้นหาสิ่งที่ต้องการโดยไม่ถามจากเซิร์ฟเวอร์ศูนย์กลาง แนวคิดง่ายๆ ที่สร้างผลกระทรใหญ่