Indexer Quality Score TrustLess

This commit is contained in:
mr
2026-02-17 13:11:22 +01:00
parent fa914958b6
commit 6a5ffb9a92
10 changed files with 294 additions and 74 deletions

View File

@@ -0,0 +1,40 @@
package common
import (
"context"
"fmt"
"net"
"time"
"github.com/libp2p/go-libp2p/core/host"
pp "github.com/libp2p/go-libp2p/core/peer"
"github.com/multiformats/go-multiaddr"
)
func PeerIsAlive(h host.Host, ad pp.AddrInfo) bool {
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
err := h.Connect(ctx, ad)
return err == nil
}
func ExtractIP(addr string) (net.IP, error) {
ma, err := multiaddr.NewMultiaddr(addr)
if err != nil {
return nil, err
}
ips, err := ma.ValueForProtocol(multiaddr.P_IP4) // or P_IP6
if err != nil {
return nil, err
}
host, _, err := net.SplitHostPort(ips)
if err != nil {
return nil, err
}
ip := net.ParseIP(host)
if ip == nil {
return nil, fmt.Errorf("invalid IP: %s", host)
}
return ip, nil
}