Libp2p tabanlı bir P2P ağ çözümü! Bu proje, Libp2p kullanarak ağ bağlantıları oluşturmak, PubSub sistemiyle mesajlaşmak ve düğümler arası iletişimi kolaylaştırmak için tasarlanmıştır.
import { StartAddrss, stratTopic } from "libp2p-mk/start";
StartAddrss();
stratTopic();
import { Server, libp2pFun } from "libp2p-mk";
const server = new Server();
server.server = await libp2pFun();
Metot | Açıklama |
---|---|
getPeerId() |
Libp2p düğümünün Peer ID'sini döner. |
writePeerIdOn(el) |
Peer ID'yi belirtilen bir HTML elementine yazar. |
Dialer(address) |
Belirtilen bir multiaddr adresine bağlanır. |
dialerWith(btn, input) |
Butona tıklandığında input'taki adrese bağlanır. |
getMultiaddrs() |
Düğümün dinlediği multiaddr'leri bir dizi olarak döner. |
writeMultiaddrs(el) |
Multiaddr'leri belirtilen HTML elementine yazar. |
getConnectionAddress() |
İlk multiaddr adresini döner. |
getConnectionPeers() |
Bağlantıdaki tüm peer'lerin adreslerini döner. |
onConected(func) |
Bağlantı güncellendiğinde çalışacak bir fonksiyon ekler. |
Metot | Açıklama |
---|---|
subscribeTo(topic) |
Belirtilen PubSub topic'ine abone olur. |
subscribeWith(btn, input) |
Butona tıklandığında input'taki topic'e abone olur. |
getSubscribers(topic) |
Belirtilen topic'e abone olanları döner. |
subscribeOnChange(func) |
Abone listesi değiştiğinde bir olay tetikler. |
sendMessage(topic, msg) |
Belirtilen topic'e mesaj yayınlar. |
sendMessageWith(btn, input, topic) |
Butona tıklandığında belirtilen topic'e mesaj gönderir. |
onMessageGet(fun) |
PubSub üzerinden mesaj alındığında çalışır. |
Metot | Açıklama |
---|---|
toString(d) |
Uint8Array türündeki veriyi string'e çevirir. |
writeOn(el, arr) |
Bir dizi içeriğini belirtilen HTML elementine yazar. |
Bu projeyi kullanmak için aşağıdaki paketleri yükleyin:
npm install libp2p @chainsafe/libp2p-gossipsub @chainsafe/libp2p-noise @chainsafe/libp2p-yamux @libp2p/circuit-relay-v2 @libp2p/dcutr @libp2p/identify @libp2p/webrtc @libp2p/websockets @multiformats/multiaddr uint8arrays
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Libp2p Example</title>
</head>
<body>
<div>PeerID: <span id="peer-id"></span></div>
<ul id="multiaddrs"></ul>
<input type="text" id="multiaddr-input" placeholder="Multiaddr girin">
<button id="dial-btn">Bağlan</button>
<script type="module">
import { Server, libp2pFun } from "libp2p-mk";
(async () => {
const libp2pNode = await libp2pFun();
const server = new Server();
server.server = libp2pNode;
server.writePeerIdOn("#peer-id");
server.writeMultiaddrs("#multiaddrs");
server.dialerWith("#dial-btn", "#multiaddr-input");
})();
</script>
</body>
</html>
Bu proje aktif geliştirme aşamasındadır. Yeni özellikler ve iyileştirmeler için güncellemeleri takip edin.
Pull request'ler memnuniyetle karşılanır. Öneri veya hata bildirimi için bir issue oluşturabilirsiniz.
Bu proje MIT lisansı altında yayınlanmıştır.