diff --git a/app/ship_processor.go b/app/ship_processor.go index aa5f3c8..bd57d03 100644 --- a/app/ship_processor.go +++ b/app/ship_processor.go @@ -28,23 +28,23 @@ func logDecoratedEncoder(encoder message.Encoder) message.Encoder { } type ShipProcessor struct { - abi *abi.AbiManager - writer transport.Writer - shClient *shipclient.Client - encode message.Encoder + abi *abi.AbiManager + writer transport.Writer + shipStream *shipclient.Stream + encode message.Encoder } -func SpawnProccessor(shClient *shipclient.Client, writer transport.Writer, abi *abi.AbiManager) *ShipProcessor { +func SpawnProccessor(shipStream *shipclient.Stream, writer transport.Writer, abi *abi.AbiManager) *ShipProcessor { processor := &ShipProcessor{ - abi: abi, - writer: writer, - shClient: shClient, - encode: logDecoratedEncoder(json.Marshal), + abi: abi, + writer: writer, + shipStream: shipStream, + encode: logDecoratedEncoder(json.Marshal), } // Attach handlers - shClient.BlockHandler = processor.processBlock - shClient.TraceHandler = processor.processTraces + shipStream.BlockHandler = processor.processBlock + shipStream.TraceHandler = processor.processTraces return processor } diff --git a/cmd/main/main.go b/cmd/main/main.go index 753cca2..2db44e1 100644 --- a/cmd/main/main.go +++ b/cmd/main/main.go @@ -32,7 +32,7 @@ import ( var conf *config.Config -var shClient *shipclient.Client +var shClient *shipclient.Stream // Reader states const ( @@ -77,24 +77,7 @@ func readerLoop() { state = RS_READ recon_cnt = 0 case RS_READ: - err := shClient.Read() - if err != nil { - if shErr, ok := err.(shipclient.ClientError); ok { - - // Bail out if socket is closed - if shErr.Type == shipclient.ErrSockClosed { - log.Info("Socket closed, Exiting") - return - } - - // Reconnect - if shErr.Type == shipclient.ErrSockRead || shErr.Type == shipclient.ErrNotConnected { - state = RS_CONNECT - } - } - - log.WithError(err).Error("Failed to read from ship") - } + log.WithError(shClient.Run()).Error("Failed to read from ship") } } } @@ -113,11 +96,6 @@ func run() { sig := <-signals log.WithField("signal", sig).Info("Signal received") - if !shClient.IsOpen() { - log.Info("ship client not connected, exiting...") - return - } - // Cleanly close the connection by sending a close message. err := shClient.Shutdown() if err != nil { @@ -214,10 +192,10 @@ func main() { } } - shClient = shipclient.NewClient(func(c *shipclient.Client) { - c.StartBlock = conf.Ship.StartBlockNum - c.EndBlock = conf.Ship.EndBlockNum - c.IrreversibleOnly = conf.Ship.IrreversibleOnly + shClient = shipclient.NewStream(func(s *shipclient.Stream) { + s.StartBlock = conf.Ship.StartBlockNum + s.EndBlock = conf.Ship.EndBlockNum + s.IrreversibleOnly = conf.Ship.IrreversibleOnly }) processor := app.SpawnProccessor( diff --git a/go.mod b/go.mod index 104ed08..0ee27f2 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/alicebob/miniredis/v2 v2.30.0 github.com/eoscanada/eos-go v0.10.3-0.20221117104514-64cafd714c60 - github.com/eosswedenorg-go/antelope-ship-client v0.2.2 + github.com/eosswedenorg-go/antelope-ship-client v0.2.3 github.com/eosswedenorg-go/pid v1.0.1 github.com/go-redis/cache/v8 v8.4.4 github.com/go-redis/redis/v8 v8.11.6-0.20220405070650-99c79f7041fc diff --git a/go.sum b/go.sum index 6dec914..d1d8af8 100644 --- a/go.sum +++ b/go.sum @@ -30,8 +30,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/eoscanada/eos-go v0.10.3-0.20221117104514-64cafd714c60 h1:ARNYziHaKCrqe0S6DpQqEPVKGhdEr18iBRlbd/LHlPw= github.com/eoscanada/eos-go v0.10.3-0.20221117104514-64cafd714c60/go.mod h1:oZfBd71yux4P7WrWYy/AvtGCjAP38bBP7z/keeu15A0= -github.com/eosswedenorg-go/antelope-ship-client v0.2.2 h1:eFj1gczfiueuLelo7H1PGKDaGMDxc0n5xtYfKvda5Es= -github.com/eosswedenorg-go/antelope-ship-client v0.2.2/go.mod h1:/DTza5QuczvTtXYxBjHt4GDFHnXS2rBMUVJ/sxRt/jE= +github.com/eosswedenorg-go/antelope-ship-client v0.2.3 h1:08HOQj3YtlEYVsm0RoNZ27JsZWikrUISKAUli6H1Qac= +github.com/eosswedenorg-go/antelope-ship-client v0.2.3/go.mod h1:kZ/4gkAIdAq4/WiZlVaSONpELcDCMJQJMmlikLUGCb8= github.com/eosswedenorg-go/pid v1.0.1 h1:W4AEnnNwb041SpNR1uTZ/KbJ0OTA5eqiqIR1Q5Ah6A0= github.com/eosswedenorg-go/pid v1.0.1/go.mod h1:wiOB/JXGt4YA3+T0j0xmCGSc3Jxzb7Ti/Ftli1fgWu4= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -74,7 +74,6 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -270,7 +269,6 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -308,7 +306,6 @@ golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -358,7 +355,6 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= -gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=