libp2p-mk
v1.4.1
Published
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.
Downloads
2,481
Readme
libp2p-mk
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.
🚀 Başlangıç (Starting)
1. Start Dosyasını Çalıştırma
import { StartAddrss, stratTopic } from "libp2p-mk/start";
StartAddrss();
stratTopic();
2. Proje Dosyası
import { Server, libp2pFun } from "libp2p-mk";
const server = new Server();
server.server = await libp2pFun();
📚 Metotlar ve Açıklamaları
Düğüm Yönetimi
| 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.|
PubSub Yönetimi
| 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. |
Veri Dönüşümü ve HTML Yardımcı Metotlar
| 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. |
⚙️ Kurulum
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
📜 Örnek Kullanım
HTML Sayfası ile Kullanım
<!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>
🛠️ Proje Durumu
Bu proje aktif geliştirme aşamasındadır. Yeni özellikler ve iyileştirmeler için güncellemeleri takip edin.
🤝 Katkıda Bulunma
Pull request'ler memnuniyetle karşılanır. Öneri veya hata bildirimi için bir issue oluşturabilirsiniz.
📄 Lisans
Bu proje MIT lisansı altında yayınlanmıştır.