mirror of
https://github.com/ipfs/kubo.git
synced 2026-03-01 22:37:51 +08:00
50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package testutil
|
|
|
|
import (
|
|
ds "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/datastore.go"
|
|
syncds "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/datastore.go/sync"
|
|
bs "github.com/jbenet/go-ipfs/blockservice"
|
|
core "github.com/jbenet/go-ipfs/core"
|
|
ci "github.com/jbenet/go-ipfs/crypto"
|
|
mdag "github.com/jbenet/go-ipfs/merkledag"
|
|
nsys "github.com/jbenet/go-ipfs/namesys"
|
|
"github.com/jbenet/go-ipfs/peer"
|
|
mdht "github.com/jbenet/go-ipfs/routing/mock"
|
|
)
|
|
|
|
var _ = core.IpfsNode{}
|
|
|
|
func NewMockNode() (*core.IpfsNode, error) {
|
|
nd := new(core.IpfsNode)
|
|
|
|
//Generate Identity
|
|
nd.Identity = &peer.Peer{ID: []byte("TESTING")}
|
|
pk, sk, err := ci.GenerateKeyPair(ci.RSA, 1024)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
nd.Identity.PrivKey = pk
|
|
nd.Identity.PubKey = sk
|
|
|
|
// Temp Datastore
|
|
dstore := ds.NewMapDatastore()
|
|
nd.Datastore = syncds.MutexWrap(dstore)
|
|
|
|
// Routing
|
|
dht := mdht.NewMockRouter(nd.Identity, nd.Datastore)
|
|
|
|
// Bitswap
|
|
//??
|
|
|
|
bserv, err := bs.NewBlockService(nd.Datastore, nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
dserv := &mdag.DAGService{bserv}
|
|
|
|
// Namespace resolver
|
|
nd.Namesys = nsys.NewMasterResolver(dht, dserv)
|
|
return nd, nil
|
|
}
|