โโโโโโโโโ โโโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโโโ โโโโโโโโ โโโโโโโโ โโโโโโโโโ โโโโโโโโ โโโ โโโ โโโโโโ โโโโโโโโ โโโโโ โโโโโโโโ โโโ โโโ โโโโโโ โโโโโโโ โโโโโ โโโโโโโ โโโโโโโโโ โโโโโโโโ โโโ โโโโโโโโ โโโ โโโโโโโโ โโโโโโโโ โโโ โโโโโโโโ โโโ
็ฎๆดใๅฏ้ ใๅฎๅ
จ็ P2P ็ฝ็ปๅบ็กๅบ๏ผQUIC ไผๅ
๏ผ
NodeID ็ด่ฟ + Realm ้็ฆป + NAT ็ฉฟ้/ไธญ็ปงๅ้๏ผๅผ็ฎฑๅณ็จ
่ฎฉๅปไธญๅฟๅๅไบ่็ฝไธๆ ท่ช็ถ๏ผ่ฎฉ่ฟๆฅๅ่ฐ็จๅฝๆฐไธๆ ทไผ้
๐ English | ไธญๆ
๐ ไปฃ็ ่งๆจก๏ผ16.1 ไธ่ก Go ไปฃ็ ๏ผๆป่กๆฐ 25.0 ไธ๏ผๅซๆณจ้/็ฉบ่ก๏ผ
- ๆ ธๅฟๆฟๆฏ
- ๆ่พฐๅคงๆตท
- ไธบไปไน้ๆฉ DeP2P๏ผ
- ๆ ธๅฟ็นๆง
- ๅฟซ้ๅผๅง
- ๆๆฏๆถๆ
- ๅไธไปทๅผ
- ้็จๅบๆฏ
- ๆๆกฃไธ่ตๆบ
- ่ดก็ฎไธ็คพๅบ
- ่ฎธๅฏ่ฏ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ่ฎฉ P2P ๆไธบไธ็็บงๅบ็ก่ฎพๆฝ๏ผ็ปไธไธช NodeID๏ผๅฐฑ่ฝ่ทจ่ถ็ฝ็ป่พน็ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
NodeID = ๅ ฌ้ฅ่บซไปฝ๏ผBase58 ็ผ็ ๏ผใ็ฎๆ ๆฏโๆ่บซไปฝ่ฟๆฅโ๏ผ่ไธๆฏโๆ IP/ๅๅ่ฟๆฅโใ
Realm = ไธๅก่พน็๏ผๅค็งๆท/ๅคๅบ็จ้็ฆป๏ผใไธๅ Realm ็่็นไบไธๅฏ่ง๏ผ้ฟๅ ็ฝ็ปๆฑกๆใ
DeP2P ็ๆฟๆฏไธๆฏโๅ้ ไธไธช P2P ๅ่ฎฎ้ๅโ๏ผ่ๆฏๆ็ไบงๅฏ็จ็่ฟๆฅ่ฝๅๆถๆๆไบบไบบๅฏ็จใ้ๅคๅฏ็จใๅฏ้ ๅฏๆง็ๅทฅ็จๅบๅบง๏ผ
- 3 ่กไปฃ็ ๅ ฅ็ฝๅฏ้ไฟก๏ผๅฏๅจ่็น โ ๅ ๅ ฅ Realm โ ๅ้/ๆถๆถๆฏ๏ผโ 5 ๅ้ไธๆ / ๅ ๅ ฅ็ฌฌไธไธช Realm๏ผ
- ่ฟๆฅ้พ่ทฏ่ชๅจๅ้๏ผ็ด่ฟ โ ๆๆด โ ไธญ็ปง๏ผๆ ้ไธๅกไปๅ ฅ้ ็ฝฎ๏ผ๏ผโ NAT ็ฉฟ้ / ไฝฟ็จไธญ็ปง๏ผ
- ๅฏ่งๆตๅฏ่งฃ้๏ผ็จไธไปฝ่ฏๆญๆฅๅๅ็ญโไธบไปไน่ฟไธไธ/ไธบไปไนๆ ข/ไธบไปไนไธ็จณๅฎโ๏ผโ ๆฌๅฐ่ช็ๆฅๅฃ / ๆ ้ๆๆฅ / ๅฏ่งๆตๆง๏ผ
DeP2P ็็ฎๆ ๆฏๆไธบ Web3 ไธ็ฐๅฎไธ็็็ฝ็ปๅบๅบงใๆไปฌๆณ่ฎฉ่ฟๆฅ็่พน็ๆถๅคฑ๏ผ่ฎฉ็ณป็ป่ทจ่ถไบใ่พนใ็ซฏใ้พไธๅ จ็็ฝ็ป๏ผ
- ๅปไธญๅฟๅๅบ็จ๏ผ่ฎฉๆฏไธชๅบ็จ้ฝ่ฝๆฅๆ่ชๅทฑ็็งๅ็ฝ็ปไธๅ จ็ๅฏ่พพๆง
- AI ไธ Agent ็ฝ็ป๏ผ่ฎฉๆบ่ฝไฝไน้ดๅๅฝๆฐ่ฐ็จไธๆ ทไบ่ไธๅไฝ
- ่พน็ผไธ IoT๏ผๅจไธ็จณๅฎ็ฝ็ปไธญไฟๆโๅฏ่พพใๅฏๆงใๅฏ่งฃ้โ
- ่ทจๅฐๅๅไฝ๏ผๅคๅฝๅฎถใๅค็ฝ็ปใๅค่ฟ่ฅๅ็็จณๅฎไบ่
- ๅผๆพๅบ็ก่ฎพๆฝ๏ผ่ฎฉๆฏไธช่็นๆขๆฏ็จๆทไนๆฏ็ฝ็ป็ไธ้จๅ
ๆไปฌ็ธไฟก๏ผๆชๆฅ็็ฝ็ปไธๆฏโๆดๅคๆๅกๅจโ๏ผ่ๆฏโๆดๅค่็นโใDeP2P ่ฆๅ็๏ผๆฏ่ฎฉๆฏไธช่็น้ฝๆไธบไธ็็ไธ้จๅใ
| ็็น | ไผ ็ปๆนๆก | DeP2P ๆนๆก |
|---|---|---|
| ไธๆ้พ | ๆผ่ฃ ไธๅ ๅบๅฑ็ปไปถ๏ผ่ชๅทฑๆฅ็บฟ | ไธๆญฅ็ด่พพ๏ผๅฏๅจ โ ๅ ๅ ฅ็ฝ็ป โ ๅๆถๆฏ |
| ็ฝ็ปไนฑ | ่ทฏ็ฑ่กจๅ ๆปกไธ็ธๅ ณ่็น | ไธๅก้็ฆป๏ผๅช็่งโ่ชๅทฑไบบโ |
| ๅฏๅจๆ ข | ้่ชๅปบๆๆๅบ็ก่ฎพๆฝ | ๅผ็ฎฑๅณ็จ๏ผๆๅจ็ฎๅฝ + ็ด่ฟๅ ฅๅฃ |
| ็ถๆ็ฒ | ไธ็ฅ้่ฐๅจ็บฟใ่ฐๆ็บฟใ่ฐไธ็จณๅฎ | ๅฎๆถๆ็ฅ๏ผ็ง็บงๆฃๆต + ๆบ่ฝๅคๅฎ |
| ่ตๆบ็ | ่ฟๆฅๆฐๆดๆถจ๏ผ่ตๆบ่ๅฐฝ | ๆบ่ฝ็ฎกๆง๏ผ่ชๅจ่ฃๅช + ้่ฆไฟๆค |
| ็ปดๅบฆ | libp2p | iroh | DeP2P |
|---|---|---|---|
| API ็ฎๆดๆง | โ ๆ็ฎ API | ||
| ไธๅก้็ฆป | โ ๆ ๅ็ๆฏๆ | โ Realm ้็ฆป | |
| ่ฟๆฅๅฏ้ ๆง | โ ่ชๅจๅ้ | ||
| ๆญๅผๆฃๆต | โ ๅคๅฑๆฃๆต+่ง่ฏไบบ | ||
| ้ถ้ ็ฝฎๅฏๅจ | โ ้่ฆ้ ็ฝฎ | โ ๅผ็ฎฑๅณ็จ |
| ็นๆง | ่ฏดๆ |
|---|---|
| ๆ็ฎ API | ไธ่กไปฃ็ ๅๆถๆฏ๏ผๆ ้้ ็ฝฎๅคๆ็ปไปถ |
| ่บซไปฝไผๅ | ่ฟๆฅ็ฎๆ ๆฏ NodeID๏ผๅ ฌ้ฅ๏ผ๏ผ่้ IP ๅฐๅ |
| Realm ้็ฆป | ไธๅก็ฝ็ป็ฌ็ซ๏ผ้ฟๅ ่็นๆฑกๆ |
| ๆบ่ฝ่ฟๆฅ | ่ชๅจ NAT ็ฉฟ้ใๅฐๅๅ็ฐใ้ๆไธญ็ปงๅ้ |
| ๅคๅฑๆญๅผๆฃๆต | QUIC ๅฟ่ทณ + ้่ฟๅฎฝ้ + ่ง่ฏไบบๆบๅถ + ้่กๆๅถ |
| ๆๅจ็ฎๅฝๅ็ฐ | ๆๅจ็ฎๅฝไฟ่ฏโๆพๅพๅฐโ๏ผ็ผๅญๅ ้่ฎฉโๆดๅฟซโ |
| ่ฟๆฅ็ฎก็ | ๆฐดไฝ็บฟๆงๅถ + ้่ฆ่ฟๆฅไฟๆค + ่ชๅจ่ฃๅช |
| QUIC ไผๅ | ็ฐไปฃไผ ่พๅ่ฎฎ๏ผๅ ็ฝฎๅ ๅฏๅๅค่ทฏๅค็จ |
| ้ถ้ ็ฝฎๅฏๅจ | ๅ็้ป่ฎคๅผ๏ผๅผ็ฎฑๅณ็จ |
- Go: 1.21+
- Git: ็จไบ็ๆฌๆงๅถ
go get github.com/dep2p/go-dep2ppackage main
import (
"context"
"fmt"
"log"
"github.com/dep2p/go-dep2p"
"github.com/dep2p/go-dep2p/pkg/types"
)
func main() {
ctx := context.Background()
// Step 1: ๅๅปบๅนถๅฏๅจ่็น๏ผ็ณป็ปๅฑ่ชๅจๅฐฑ็ปช๏ผ
node, err := dep2p.New(ctx, dep2p.WithPreset(dep2p.PresetDesktop))
if err != nil {
log.Fatalf("ๅๅปบ่็นๅคฑ่ดฅ: %v", err)
}
if err := node.Start(ctx); err != nil {
log.Fatalf("ๅฏๅจ่็นๅคฑ่ดฅ: %v", err)
}
defer node.Close()
fmt.Printf("่็น ID: %s\n", node.ID())
// Step 2: ๅ ๅ
ฅไธๅก็ฝ็ป๏ผๅฟ
้กป๏ผ๏ผ
realm, err := node.Realm("my-first-realm")
if err != nil {
log.Fatalf("่ทๅ Realm ๅคฑ่ดฅ: %v", err)
}
if err := realm.Join(ctx); err != nil {
log.Fatalf("ๅ ๅ
ฅ Realm ๅคฑ่ดฅ: %v", err)
}
// Step 3: ไฝฟ็จไธๅก API
messaging := realm.Messaging()
// messaging.Send(ctx, peerID, "/my/protocol/1.0", []byte("Hello!"))
fmt.Println("่็นๅทฒๅฐฑ็ปช๏ผๅฏไปฅๅผๅง้ไฟก๏ผ")
}่ฟๅฐฑๆฏ DeP2P ็็ฎๆดๆง๏ผ
- โ 3 ่กไปฃ็ ๅปบ็ซ่ฟๆฅ๏ผๅฏๅจ่็น โ ๅ ๅ ฅ Realm โ ๅ้ๆถๆฏ
- โ ่ชๅจๅค็ๅคๆ็ป่๏ผNAT ็ฉฟ้ใๅฐๅๅ็ฐใไธญ็ปงๅ้
- โ ่บซไปฝไผๅ ๏ผๅช้ NodeID๏ผๆ ้ๅ ณๅฟ IP ๅฐๅ
ไบๆๅกๅจๅบๆฏๆจ่้ ็ฝฎ๏ผ
// ไบๆๅกๅจ๏ผไฝฟ็จ known_peers ็ด่ฟ + ไฟกไปป STUN ๅฐๅ
node, err := dep2p.New(ctx,
dep2p.WithPreset(dep2p.PresetServer),
dep2p.WithKnownPeers([]dep2p.KnownPeer{
{PeerID: "12D3KooW...", Addrs: []string{"/ip4/1.2.3.4/udp/4001/quic-v1"}},
}),
dep2p.WithTrustSTUNAddresses(true), // ่ทณ่ฟๅ
ฅ็ซ้ช่ฏ๏ผๅ ้ๅฏๅจ
)
if err != nil {
log.Fatalf("ๅๅปบ่็นๅคฑ่ดฅ: %v", err)
}
if err := node.Start(ctx); err != nil {
log.Fatalf("ๅฏๅจ่็นๅคฑ่ดฅ: %v", err)
}๐ ่ฏฆ็ป้ ็ฝฎ๏ผ้ ็ฝฎๆๅ
| ็คบไพ | ้พๅบฆ | ่ฏดๆ |
|---|---|---|
| ๅบ็ก็คบไพ | โญ | ๆ็ฎๅ็่็นๅๅปบ |
| Echo ็คบไพ | โญโญ | ๅญฆไน ๆต้ไฟก |
| Chat ็คบไพ | โญโญโญ | ๅฑๅ็ฝ่ๅคฉๅบ็จ |
| Chat Public | โญโญโญโญ | ๅ ฌ็ฝไธ่็น่ๅคฉ |
| Relay ็คบไพ | โญโญโญโญ | NAT ็ฉฟ้ไธไธญ็ปง |
DeP2P ้็จไธๅฑๆถๆ่ฎพ่ฎก๏ผๆธ ๆฐๅ็ฆป็ณป็ปๅบ็กใไธๅก้็ฆปๅๅบ็จๅ่ฎฎ๏ผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Layer 3: ๅบ็จๅ่ฎฎๅฑ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โข Messaging / PubSub / Discovery / Streams โ
โ โข ๅ่ฎฎๅ็ผ: /dep2p/app/* โ
โ โข [!] ๅฟ
้กปๅ ๅ
ฅ Realm ๅๆ่ฝไฝฟ็จ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Layer 2: Realm ๅฑ๏ผไธๅก้็ฆป๏ผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โข ไธๅก้็ฆปใๆๅ็ฎก็ใๅๅ
ฅๆงๅถ๏ผPSK ่ฎค่ฏ๏ผ โ
โ โข ๅ่ฎฎๅ็ผ: /dep2p/realm/* โ
โ โข [*] ็จๆทๆพๅผๅ ๅ
ฅ๏ผไธฅๆ ผๅ Realm โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Layer 1: ็ณป็ปๅบ็กๅฑ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โข Transport / Security / DHT / Relay / NAT / Bootstrap โ
โ โข ๅ่ฎฎๅ็ผ: /dep2p/sys/* โ
โ โข [~] ่็นๅฏๅจ่ชๅจๅฐฑ็ปช๏ผ็จๆทๆ ๆ็ฅ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| ๅฑ | ่่ดฃ | ็น็น |
|---|---|---|
| Layer 3 | ๆไพไธๅก้ไฟก่ฝๅ | ๅฟ ้กปๅ ๅ ๅ ฅ Realm ๆ่ฝไฝฟ็จ |
| Layer 2 | ไธๅก้็ฆปๅๆๅ็ฎก็ | ็จๆทๆพๅผๅ ๅ ฅ๏ผPSK ่ฎค่ฏ |
| Layer 1 | P2P ็ฝ็ปๅบ็ก่ฎพๆฝ | ่็นๅฏๅจ่ชๅจๅฐฑ็ปช๏ผ็จๆทๆ ๆ็ฅ |
| ไผๅ ็บง | ็ฎๆ | ้ชๆถๆ ๅ |
|---|---|---|
| P0 ๆ ธๅฟ | ็ฎๆดๆง | 3 ่กไปฃ็ ๅปบ็ซ่ฟๆฅ |
| P0 ๆ ธๅฟ | ๅฏ้ ๆง | 95%+ ่ฟๆฅๆๅ็๏ผ็ด่ฟโๆๆดโไธญ็ปง๏ผ |
| P1 ้่ฆ | ๅฎๅ จๆง | ็ซฏๅฐ็ซฏๅ ๅฏ๏ผ่บซไปฝไธๅฏไผช้ |
| P1 ้่ฆ | ๆจกๅๅ | ๅๆจกๅๅฏ็ฌ็ซๆต่ฏๅๆฟๆข |
๐ ่ฏฆ็ปๆถๆ๏ผๆถๆๆป่ง | ๆถๆๅณ็ญ่ฎฐๅฝ
DeP2P ไธไป ๆฏไธไธช P2P ๅบ๏ผๆดๆฏ Web3 ๅบ็ก่ฎพๆฝ็ๆ ธๅฟ็ฝ็ปๅฑใ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DeP2P ๅไธไปทๅผๅฎไฝ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ ๐ ๅบๅ้พ็ฝ็ป โ
โ โโโโโโโโโโโโโโ โ
โ โข ไบคๆๅนฟๆญ๏ผPubSub + Gossip๏ผ โ
โ โข ๅบๅๅๆญฅ๏ผๅคๆบๅนถ่ก + ๆญ็น็ปญไผ ๏ผ โ
โ โข ๅ
ฑ่ฏ้ไฟก๏ผไฝๅปถ่ฟ็ด่ฟ + ไธญ็ปงๅ้๏ผ โ
โ โข ็ฝ็ป้็ฆป๏ผไธป็ฝ/ๆต่ฏ็ฝ Realm ๅ็ฆป๏ผ โ
โ โ
โ ๐พ ๅปไธญๅฟๅๅญๅจ โ
โ โโโโโโโโโโโโโโ โ
โ โข ๆไปถๅๅ โ ๅ
ๅฎนๅฏปๅ๏ผDHT๏ผ โ
โ โข ๅคๆบไธ่ฝฝ โ ๆญ็น็ปญไผ โ
โ โข Merkle Proof ๅฎๆดๆงๆ ก้ช โ
โ โ
โ ๐ก PCDN ๅ
ๅฎนๅๅ โ
โ โโโโโโโโโโโโโโ โ
โ โข ่ฝฏไปถไธ่ฝฝ๏ผP2P ๆถ็ๆ้ซ๏ผ โ
โ โข ้ๆ็ซ็น๏ผWeb3 DApp ๅ็ซฏ๏ผ โ
โ โข ่ง้ข็นๆญ๏ผHLS/DASH ๅ็ๅ ้๏ผ โ
โ โข ็ดๆญ๏ผPubSub + ๆ ็ถๆๆ๏ผ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| ๅฝขๆ | ็น็น | P2P ๆถ็ | DeP2P ๆนๆก |
|---|---|---|---|
| ่ฝฏไปถไธ่ฝฝ | ๅคงๆไปถใๅผบไธ่ดๆง | โญโญโญ ๆ้ซ | ๅไบคๆข + ๅคๆบๅนถ่ก |
| ้ๆ็ซ็น | ็ๆฌๅใ้ฆๅฑๆๆ | โญโญ ไธญ็ญ | Manifest + Merkle |
| ่ง้ข็นๆญ | ๅ็ใ็ญ็น่้ | โญโญโญ ้ซ | ๅ็็ดขๅผ + ้ขๅ ่ฝฝ |
| ็ดๆญ | ่ถ ไฝๅปถ่ฟใๅฎๆถๆๅบ | โญโญโญ ้ซ | PubSub + ๆ ็ถๆๆ |
| ๅไธๆจกๅผ | DeP2P ๆไพ็่ฝๅ |
|---|---|
| ๅธฆๅฎฝๆฟๅฑ | ไธไผ /ไธ่ฝฝๅญ่ๆฐ่ฎก้๏ผไธบ Token ๆฟๅฑๆไพๆฐๆฎๅบ็ก |
| ๅญๅจๆฟๅฑ | ๅ ๅฎน็ดขๅผๅ่ฎฎ๏ผ่ฏๆ"ๆๅญๅจไบๅชไบๆฐๆฎ" |
| CDN ๆๆฌไผๅ | P2P ๅๆต๏ผ้ไฝ Origin/CDN ๅธฆๅฎฝๆๆฌ |
| ๅปไธญๅฟๅๆ็ฎก | ้ๆ็ซ็น P2P ๅๅ๏ผๆ ้ไธญๅฟๅๆๅกๅจ |
| ้ถๆฎต | ็ฎๆ | ่ฏดๆ |
|---|---|---|
| Phase 1 | ่ฝฏไปถไธ่ฝฝ | ๆๆ้ช่ฏ P2P ๆถ็๏ผๆๆฏ็ฑปไผผ BitTorrent |
| Phase 2 | ้ๆ็ซ็น | Manifest + Chunk๏ผๅฏนๆฅ Web3 ็ซ็นๅ่ฎฎ |
| Phase 3 | ่ง้ข็นๆญ | ๅขๅ ๅ็็ญๅบฆใ้ขๅ ่ฝฝ็ญ็ฅ |
| Phase 4 | ็ดๆญ | PubSub + ๆ ็ถๆๆ + ไธฅๆ ผๅปถ่ฟๆงๅถ |
| ๅบๆฏ | DeP2P ไผๅฟ |
|---|---|
| ๅบๅ้พ / DeFi | Realm ้็ฆป + ่็นๅ็ฐ + ไบคๆๅนฟๆญ |
| ้พๆธธ / GameFi | ไฝๅปถ่ฟ + ไธๅก้็ฆป + ็ถๆๅๆญฅ |
| ๅปไธญๅฟๅๅญๅจ | ๅคๆบไธ่ฝฝ + ๅ ๅฎนๅฏปๅ + ๆญ็น็ปญไผ |
| ๅณๆถ้่ฎฏ | ็ฎๅ API + ๅฏ้ ไผ ่พ + ็ซฏๅฐ็ซฏๅ ๅฏ |
| ๅๅ็ผ่พ | ๅฎๆถๅๆญฅ + ๅฒ็ช่งฃๅณ + ็ฆป็บฟๆฏๆ |
| ่ฏไผฐ | ๅบๆฏ | ่ฏดๆ |
|---|---|---|
| โ ้ๅธธ้ๅ | ๅบๅ้พใๅๅธๅผๅญๅจใๅณๆถ้่ฎฏใๅๅ็ผ่พ | DeP2P ๆ ธๅฟ่ฎพ่ฎก็ฎๆ |
| ่ง้ข็นๆญใ็ฉ่็ฝ | ๅปถ่ฟๅฏๆฅๅ๏ผ้่ฏไผฐ่ตๆบๅ ็จ | |
| โ ไธ้ๅ | ่ถ ไฝๅปถ่ฟ็ดๆญ(<100ms)ใๅฎๆถ่ง้ขไผ่ฎฎใไบๆธธๆ | ้่ฆไธๅฏ้ ไผ ่พ๏ผWebRTC๏ผ |
| ่ตๆบ | ่ฏดๆ |
|---|---|
| ๐ ๆๆกฃไธญๅฟ | ๅฎๆด็ไธญๆๆๆกฃ๏ผๅ ๅซๆ็จใๆฆๅฟตใAPI ๅ่ |
| ๐ฏ 5 ๅ้ไธๆ | ไป้ถๅผๅง็ๅฟซ้ๅ ฅ้จๆ็จ |
| ๐ก ็คบไพไปฃ็ | ไป็ฎๅๅฐๅคๆ็ๅฎๆด็คบไพ |
| โ๏ธ ้ ็ฝฎๆๅ | ้ข่ฎพ้ ็ฝฎใ่ฟๆฅๆงไผๅใ้จ็ฝฒๅปบ่ฎฎ |
| ๐๏ธ ่ฎพ่ฎกๆๆกฃ | ๆถๆๅณ็ญใๅ่ฎฎ่ง่๏ผ็ป่ดก็ฎ่ ๏ผ |
ๆไปฌๆฌข่ฟ็คพๅบ่ดก็ฎ๏ผ
# 1. Fork ๅนถๅ
้ไปๅบ
git clone https://github.com/your-username/go-dep2p.git
# 2. ่ฎพ็ฝฎๅผๅ็ฏๅข
cd go-dep2p
go mod tidy
# 3. ่ฟ่กๆต่ฏ
go test ./...
# 4. ๆไบคๅๆด
git commit -S -m "feat: your contribution"
git push origin your-branch| ๆธ ้ | ็จ้ |
|---|---|
| GitHub Issues | Bug ๆฅๅใๅ่ฝ่ฏทๆฑ |
| GitHub Discussions | ้ฎ้ข่ฎจ่ฎบใไฝฟ็จๅธฎๅฉ |
| ่ดก็ฎๆๅ | ๅฆไฝๅไธ่ดก็ฎ |
่็นๅฏๅจๅคฑ่ดฅ
ๅธธ่งๅๅ ๏ผ็ซฏๅฃ่ขซๅ ็จ
# ๆฃๆฅ็ซฏๅฃๅ ็จ
netstat -tulpn | grep :4001
# ่งฃๅณๆนๆก๏ผไฝฟ็จ่ชๅจๅ้
็ซฏๅฃ๏ผไธๆๅฎ WithListenPort๏ผ
node, _ := dep2p.New(ctx, dep2p.WithPreset(dep2p.PresetDesktop))
_ = node.Start(ctx)ErrNotMember ้่ฏฏ
ๅๅ ๏ผๆชๅ ๅ ฅ Realm ๅฐฑ่ฐ็จไธๅก API
// โ ้่ฏฏ๏ผๆชๅ ๅ
ฅ Realm ๅฐฑ่ฐ็จไธๅก API
// err == ErrNotMember
// โ
ๆญฃ็กฎ๏ผๅ
่ทๅ Realm ๅนถๅ ๅ
ฅ
realm, _ := node.Realm("my-realm")
_ = realm.Join(ctx)
err := realm.Messaging().Send(ctx, peerID, "/my/protocol/1.0", data)่ฟๆฅ่ถ ๆถ
ๅฏ่ฝๅๅ ๏ผ
- ้ฒ็ซๅข้ปๆญข่ฟๆฅ
- NAT ็ฉฟ้ๅคฑ่ดฅ
- ๅฐๅๆ ผๅผไธๆญฃ็กฎ
่งฃๅณๆนๆก๏ผ
- ๆฃๆฅ็ฝ็ปๅ้ฒ็ซๅข่ฎพ็ฝฎ
- ๅฏ็จ Relay ๆๅก
- ไฝฟ็จ
ShareableAddrs()่ทๅๅฎๆดๅฐๅ
๐ ่ฏฆ็ปๆ้๏ผๆ ้ๆๆฅ | ้่ฏฏ็ ๅ่
ๆฌ้กน็ฎๅบไบ MIT ่ฎธๅฏ่ฏๅผๆบ - ่ฏฆ่ง LICENSE ๆไปถใ
ๅฟซ้ๅผๅง โข ๆๆกฃไธญๅฟ โข ่ฎพ่ฎกๆๆกฃ
Made with โค๏ธ by the DeP2P Team