mock.go 1.27 KB
Newer Older
Jeromy's avatar
Jeromy committed
1
package core
2 3 4 5 6 7 8 9

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"
	ci "github.com/jbenet/go-ipfs/crypto"
	mdag "github.com/jbenet/go-ipfs/merkledag"
	nsys "github.com/jbenet/go-ipfs/namesys"
Jeromy's avatar
Jeromy committed
10
	path "github.com/jbenet/go-ipfs/path"
11 12 13 14
	"github.com/jbenet/go-ipfs/peer"
	mdht "github.com/jbenet/go-ipfs/routing/mock"
)

Jeromy's avatar
Jeromy committed
15 16
func NewMockNode() (*IpfsNode, error) {
	nd := new(IpfsNode)
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

	//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)
Jeromy's avatar
Jeromy committed
33
	nd.Routing = dht
34 35 36 37 38 39 40 41 42

	// Bitswap
	//??

	bserv, err := bs.NewBlockService(nd.Datastore, nil)
	if err != nil {
		return nil, err
	}

Jeromy's avatar
Jeromy committed
43
	nd.DAG = &mdag.DAGService{bserv}
44 45

	// Namespace resolver
Jeromy's avatar
Jeromy committed
46 47 48 49 50 51 52 53
	nd.Namesys = nsys.NewMasterResolver(dht, nd.DAG)

	// Publisher
	nd.Publisher = nsys.NewPublisher(nd.DAG, dht)

	// Path resolver
	nd.Resolver = &path.Resolver{nd.DAG}

54 55
	return nd, nil
}