crdt: fix: Create the ipfslite peer before peermanager bootstrapping
Bitswap needs to exist before connections are opened! Fixes #798
This commit is contained in:
parent
451b91d8d1
commit
f0b7d2a839
|
@ -63,6 +63,7 @@ type Consensus struct {
|
|||
|
||||
state state.State
|
||||
crdt *crdt.Datastore
|
||||
ipfs *ipfslite.Peer
|
||||
|
||||
dht *dht.IpfsDHT
|
||||
pubsub *pubsub.PubSub
|
||||
|
@ -92,6 +93,25 @@ func New(
|
|||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
|
||||
var blocksDatastore ds.Batching
|
||||
ns := ds.NewKey(cfg.DatastoreNamespace)
|
||||
blocksDatastore = namespace.Wrap(store, ns.ChildString(blocksNs))
|
||||
|
||||
ipfs, err := ipfslite.New(
|
||||
ctx,
|
||||
blocksDatastore,
|
||||
host,
|
||||
dht,
|
||||
&ipfslite.Config{
|
||||
Offline: false,
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
logger.Errorf("error creating ipfs-lite: %s", err)
|
||||
cancel()
|
||||
return nil, err
|
||||
}
|
||||
|
||||
css := &Consensus{
|
||||
ctx: ctx,
|
||||
cancel: cancel,
|
||||
|
@ -100,7 +120,8 @@ func New(
|
|||
peerManager: pstoremgr.New(ctx, host, ""),
|
||||
dht: dht,
|
||||
store: store,
|
||||
namespace: ds.NewKey(cfg.DatastoreNamespace),
|
||||
ipfs: ipfs,
|
||||
namespace: ns,
|
||||
pubsub: pubsub,
|
||||
rpcReady: make(chan struct{}, 1),
|
||||
readyCh: make(chan struct{}, 1),
|
||||
|
@ -147,23 +168,6 @@ func (css *Consensus) setup() {
|
|||
logger.Errorf("error registering topic validator: %s", err)
|
||||
}
|
||||
|
||||
var blocksDatastore ds.Batching
|
||||
blocksDatastore = namespace.Wrap(css.store, css.namespace.ChildString(blocksNs))
|
||||
|
||||
ipfs, err := ipfslite.New(
|
||||
css.ctx,
|
||||
blocksDatastore,
|
||||
css.host,
|
||||
css.dht,
|
||||
&ipfslite.Config{
|
||||
Offline: false,
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
logger.Errorf("error creating ipfs-lite: %s", err)
|
||||
return
|
||||
}
|
||||
|
||||
broadcaster, err := crdt.NewPubSubBroadcaster(
|
||||
css.ctx,
|
||||
css.pubsub,
|
||||
|
@ -231,7 +235,7 @@ func (css *Consensus) setup() {
|
|||
crdt, err := crdt.New(
|
||||
css.store,
|
||||
css.namespace,
|
||||
ipfs,
|
||||
css.ipfs,
|
||||
broadcaster,
|
||||
opts,
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue
Block a user