mock.go 1.1 KB
Newer Older
Jeromy's avatar
Jeromy committed
1
package core
2 3 4 5 6 7 8 9 10 11 12 13

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"
	"github.com/jbenet/go-ipfs/peer"
	mdht "github.com/jbenet/go-ipfs/routing/mock"
)

Jeromy's avatar
Jeromy committed
14 15
func NewMockNode() (*IpfsNode, error) {
	nd := new(IpfsNode)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

	//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
}