@@ -26,51 +26,35 @@ type Ouroboros struct {
2626 sendKeepAlives bool
2727 delayMuxerStart bool
2828 // Mini-protocols
29- Handshake * handshake.Handshake
30- ChainSync * chainsync.ChainSync
31- chainSyncCallbackConfig * chainsync.ChainSyncCallbackConfig
32- BlockFetch * blockfetch.BlockFetch
33- blockFetchCallbackConfig * blockfetch.BlockFetchCallbackConfig
34- KeepAlive * keepalive.KeepAlive
35- keepAliveCallbackConfig * keepalive.KeepAliveCallbackConfig
36- LocalTxSubmission * localtxsubmission.LocalTxSubmission
37- localTxSubmissionCallbackConfig * localtxsubmission.CallbackConfig
38- LocalStateQuery * localstatequery.LocalStateQuery
39- localStateQueryCallbackConfig * localstatequery.CallbackConfig
40- TxSubmission * txsubmission.TxSubmission
41- txSubmissionCallbackConfig * txsubmission.CallbackConfig
29+ Handshake * handshake.Handshake
30+ ChainSync * chainsync.ChainSync
31+ BlockFetch * blockfetch.BlockFetch
32+ KeepAlive * keepalive.KeepAlive
33+ LocalTxSubmission * localtxsubmission.LocalTxSubmission
34+ LocalStateQuery * localstatequery.LocalStateQuery
35+ TxSubmission * txsubmission.TxSubmission
4236}
4337
4438type OuroborosOptions struct {
45- Conn net.Conn
46- NetworkMagic uint32
47- ErrorChan chan error
48- Server bool
49- UseNodeToNodeProtocol bool
50- SendKeepAlives bool
51- DelayMuxerStart bool
52- ChainSyncCallbackConfig * chainsync.ChainSyncCallbackConfig
53- BlockFetchCallbackConfig * blockfetch.BlockFetchCallbackConfig
54- KeepAliveCallbackConfig * keepalive.KeepAliveCallbackConfig
55- LocalTxSubmissionCallbackConfig * localtxsubmission.CallbackConfig
56- LocalStateQueryCallbackConfig * localstatequery.CallbackConfig
39+ Conn net.Conn
40+ NetworkMagic uint32
41+ ErrorChan chan error
42+ Server bool
43+ UseNodeToNodeProtocol bool
44+ SendKeepAlives bool
45+ DelayMuxerStart bool
5746}
5847
5948func New (options * OuroborosOptions ) (* Ouroboros , error ) {
6049 o := & Ouroboros {
61- conn : options .Conn ,
62- networkMagic : options .NetworkMagic ,
63- server : options .Server ,
64- useNodeToNodeProto : options .UseNodeToNodeProtocol ,
65- chainSyncCallbackConfig : options .ChainSyncCallbackConfig ,
66- blockFetchCallbackConfig : options .BlockFetchCallbackConfig ,
67- keepAliveCallbackConfig : options .KeepAliveCallbackConfig ,
68- localTxSubmissionCallbackConfig : options .LocalTxSubmissionCallbackConfig ,
69- localStateQueryCallbackConfig : options .LocalStateQueryCallbackConfig ,
70- ErrorChan : options .ErrorChan ,
71- sendKeepAlives : options .SendKeepAlives ,
72- delayMuxerStart : options .DelayMuxerStart ,
73- protoErrorChan : make (chan error , 10 ),
50+ conn : options .Conn ,
51+ networkMagic : options .NetworkMagic ,
52+ server : options .Server ,
53+ useNodeToNodeProto : options .UseNodeToNodeProtocol ,
54+ ErrorChan : options .ErrorChan ,
55+ sendKeepAlives : options .SendKeepAlives ,
56+ delayMuxerStart : options .DelayMuxerStart ,
57+ protoErrorChan : make (chan error , 10 ),
7458 }
7559 if o .ErrorChan == nil {
7660 o .ErrorChan = make (chan error , 10 )
@@ -147,6 +131,7 @@ func (o *Ouroboros) setupConnection() error {
147131 }
148132 // Perform handshake
149133 o .Handshake = handshake .New (protoOptions , protoVersions )
134+ o .Handshake .Start ()
150135 // TODO: figure out better way to signify automatic handshaking and returning the chosen version
151136 if ! o .server {
152137 err := o .Handshake .ProposeVersions (protoVersions , o .networkMagic )
@@ -178,22 +163,22 @@ func (o *Ouroboros) setupConnection() error {
178163 if o .useNodeToNodeProto {
179164 versionNtN := GetProtocolVersionNtN (o .Handshake .Version )
180165 protoOptions .Mode = protocol .ProtocolModeNodeToNode
181- o .ChainSync = chainsync .New (protoOptions , o . chainSyncCallbackConfig )
182- o .BlockFetch = blockfetch .New (protoOptions , o . blockFetchCallbackConfig )
183- o .TxSubmission = txsubmission .New (protoOptions , o . txSubmissionCallbackConfig )
166+ o .ChainSync = chainsync .New (protoOptions )
167+ o .BlockFetch = blockfetch .New (protoOptions )
168+ o .TxSubmission = txsubmission .New (protoOptions )
184169 if versionNtN .EnableKeepAliveProtocol {
185- o .KeepAlive = keepalive .New (protoOptions , o . keepAliveCallbackConfig )
170+ o .KeepAlive = keepalive .New (protoOptions )
186171 if o .sendKeepAlives {
187- o .KeepAlive .Start ()
172+ o .KeepAlive .Start (nil )
188173 }
189174 }
190175 } else {
191176 versionNtC := GetProtocolVersionNtC (o .Handshake .Version )
192177 protoOptions .Mode = protocol .ProtocolModeNodeToClient
193- o .ChainSync = chainsync .New (protoOptions , o . chainSyncCallbackConfig )
194- o .LocalTxSubmission = localtxsubmission .New (protoOptions , o . localTxSubmissionCallbackConfig )
178+ o .ChainSync = chainsync .New (protoOptions )
179+ o .LocalTxSubmission = localtxsubmission .New (protoOptions )
195180 if versionNtC .EnableLocalQueryProtocol {
196- o .LocalStateQuery = localstatequery .New (protoOptions , o . localStateQueryCallbackConfig )
181+ o .LocalStateQuery = localstatequery .New (protoOptions )
197182 }
198183 }
199184 // Start muxer
0 commit comments