libp2p-mk
v1.4.2
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.
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.
