Skip to content

Commit 3b6ea9e

Browse files
StebalienKubuxu
andauthored
Import go-log directly (except in GPBFT) and remove Logging (#427)
* Import go-log directly (except in GPBFT) and remove Logging It was causing circular import issues (which could have been fixed by moving it, I guess) but, more importantly, the abstraction really wasn't pulling its weight. We're keeping it out of GPBFT itself but our other packages already depend on things like go-datastore and go-libp2p, so depending on go-log doesn't really matter. * separate gpbft tracer subsystem and set skip * Update certexchange/polling/common.go * Update cmd/f3/run.go * Update certexchange/server.go --------- Co-authored-by: Jakub Sztandera <oss@kubuxu.com>
1 parent 8df83eb commit 3b6ea9e

13 files changed

+61
-78
lines changed

certexchange/client.go

+6-9
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"runtime/debug"
99
"time"
1010

11-
"github.com/filecoin-project/go-f3"
1211
"github.com/filecoin-project/go-f3/certs"
1312
"github.com/filecoin-project/go-f3/gpbft"
1413
"github.com/libp2p/go-libp2p/core/host"
@@ -27,8 +26,6 @@ type Client struct {
2726
Host host.Host
2827
NetworkName gpbft.NetworkName
2928
RequestTimeout time.Duration
30-
31-
Log f3.Logger
3229
}
3330

3431
func (c *Client) withDeadline(ctx context.Context) (context.Context, context.CancelFunc) {
@@ -44,7 +41,7 @@ func (c *Client) Request(ctx context.Context, p peer.ID, req *Request) (_rh *Res
4441
defer func() {
4542
if perr := recover(); perr != nil {
4643
_err = fmt.Errorf("panicked requesting certificates from peer %s: %v\n%s", p, perr, string(debug.Stack()))
47-
c.Log.Error(_err)
44+
log.Error(_err)
4845
}
4946
}()
5047

@@ -75,7 +72,7 @@ func (c *Client) Request(ctx context.Context, p peer.ID, req *Request) (_rh *Res
7572
bw := bufio.NewWriter(stream)
7673

7774
if err := req.MarshalCBOR(bw); err != nil {
78-
c.Log.Debugf("failed to marshal certificate exchange request to peer %s: %w", p, err)
75+
log.Debugf("failed to marshal certificate exchange request to peer %s: %w", p, err)
7976
return nil, nil, err
8077
}
8178
if err := bw.Flush(); err != nil {
@@ -91,7 +88,7 @@ func (c *Client) Request(ctx context.Context, p peer.ID, req *Request) (_rh *Res
9188
}
9289
err = resp.UnmarshalCBOR(br)
9390
if err != nil {
94-
c.Log.Debugf("failed to unmarshal certificate exchange response header from peer %s: %w", p, err)
91+
log.Debugf("failed to unmarshal certificate exchange response header from peer %s: %w", p, err)
9592
return nil, nil, err
9693
}
9794

@@ -105,7 +102,7 @@ func (c *Client) Request(ctx context.Context, p peer.ID, req *Request) (_rh *Res
105102
go func() {
106103
defer func() {
107104
if perr := recover(); perr != nil {
108-
c.Log.Errorf("panicked while receiving certificates from peer %s: %v\n%s", p, perr, string(debug.Stack()))
105+
log.Errorf("panicked while receiving certificates from peer %s: %v\n%s", p, perr, string(debug.Stack()))
109106
}
110107
cancelReq()
111108
close(ch)
@@ -122,12 +119,12 @@ func (c *Client) Request(ctx context.Context, p peer.ID, req *Request) (_rh *Res
122119
case io.EOF:
123120
return
124121
default:
125-
c.Log.Debugf("failed to unmarshal certificate from peer %s: %w", p, err)
122+
log.Debugf("failed to unmarshal certificate from peer %s: %w", p, err)
126123
return
127124
}
128125
// One quick sanity check. The rest will be validated by the caller.
129126
if cert.GPBFTInstance != request.FirstInstance+i {
130-
c.Log.Warnf("received out-of-order certificate from peer %s", p)
127+
log.Warnf("received out-of-order certificate from peer %s", p)
131128
return
132129
}
133130

certexchange/polling/common.go

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package polling
22

33
import (
44
"github.com/benbjohnson/clock"
5+
logging "github.com/ipfs/go-log/v2"
56
)
67

8+
var log = logging.Logger("f3/certexchange")
79
var clk clock.Clock = clock.New()

certexchange/polling/common_test.go

-4
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,12 @@ import (
1010
"github.com/filecoin-project/go-f3/sim/signing"
1111

1212
"github.com/benbjohnson/clock"
13-
logging "github.com/ipfs/go-log/v2"
1413
"github.com/stretchr/testify/require"
1514
)
1615

1716
// The network name used in tests.
1817
const TestNetworkName gpbft.NetworkName = "testnet"
1918

20-
// The logger used in tests.
21-
var TestLog = logging.Logger("f3-testing")
22-
2319
// The clock used in tests. Time doesn't pass in tests unless you add time to this clock.
2420
var MockClock = clock.NewMock()
2521

certexchange/polling/poller_test.go

-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ func TestPoller(t *testing.T) {
4949
NetworkName: polling.TestNetworkName,
5050
Host: serverHost,
5151
Store: serverCs,
52-
Log: polling.TestLog,
5352
}
5453

5554
require.NoError(t, server.Start())
@@ -62,7 +61,6 @@ func TestPoller(t *testing.T) {
6261
client := certexchange.Client{
6362
Host: clientHost,
6463
NetworkName: polling.TestNetworkName,
65-
Log: polling.TestLog,
6664
}
6765

6866
poller, err := polling.NewPoller(ctx, &client, clientCs, backend)

certexchange/polling/subscriber.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func (s *Subscriber) Start() error {
6464
}()
6565

6666
if err := s.run(ctx); err != nil && ctx.Err() == nil {
67-
s.Log.Errorf("polling certificate exchange subscriber exited early: %s", err)
67+
log.Errorf("polling certificate exchange subscriber exited early: %s", err)
6868
}
6969
}()
7070

@@ -115,7 +115,7 @@ func (s *Subscriber) run(ctx context.Context) error {
115115
nextInterval := predictor.update(progress)
116116
nextPollTime := pollTime.Add(nextInterval)
117117
delay := max(clk.Until(nextPollTime), 0)
118-
s.Log.Infof("predicted interval is %s (waiting %s)", nextInterval, delay)
118+
log.Infof("predicted interval is %s (waiting %s)", nextInterval, delay)
119119
timer.Reset(delay)
120120
case <-ctx.Done():
121121
return ctx.Err()
@@ -132,14 +132,14 @@ func (s *Subscriber) poll(ctx context.Context) (uint64, error) {
132132

133133
peers := s.peerTracker.suggestPeers()
134134
start := s.poller.NextInstance
135-
s.Log.Debugf("polling %d peers for instance %d", len(peers), s.poller.NextInstance)
135+
log.Debugf("polling %d peers for instance %d", len(peers), s.poller.NextInstance)
136136
for _, peer := range peers {
137137
oldInstance := s.poller.NextInstance
138138
res, err := s.poller.Poll(ctx, peer)
139139
if err != nil {
140140
return s.poller.NextInstance - start, err
141141
}
142-
s.Log.Debugf("polled %s for instance %d, got %+v", peer, s.poller.NextInstance, res)
142+
log.Debugf("polled %s for instance %d, got %+v", peer, s.poller.NextInstance, res)
143143
// If we manage to advance, all old "hits" are actually misses.
144144
if oldInstance < s.poller.NextInstance {
145145
misses = append(misses, hits...)

certexchange/polling/subscriber_test.go

-2
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ func TestSubscriber(t *testing.T) {
4545
NetworkName: polling.TestNetworkName,
4646
Host: h,
4747
Store: cs,
48-
Log: polling.TestLog,
4948
}
5049
}
5150

@@ -63,7 +62,6 @@ func TestSubscriber(t *testing.T) {
6362
client := certexchange.Client{
6463
Host: clientHost,
6564
NetworkName: polling.TestNetworkName,
66-
Log: polling.TestLog,
6765
}
6866

6967
subscriber := polling.Subscriber{

certexchange/protocol_test.go

-5
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,12 @@ import (
1111

1212
"github.com/ipfs/go-datastore"
1313
ds_sync "github.com/ipfs/go-datastore/sync"
14-
logging "github.com/ipfs/go-log/v2"
1514
mocknetwork "github.com/libp2p/go-libp2p/p2p/net/mock"
1615
"github.com/stretchr/testify/require"
1716
)
1817

1918
const testNetworkName gpbft.NetworkName = "testnet"
2019

21-
var log = logging.Logger("certexchange-test")
22-
2320
func testPowerTable(entries int64) (gpbft.PowerEntries, gpbft.CID) {
2421
powerTable := make(gpbft.PowerEntries, entries)
2522

@@ -68,13 +65,11 @@ func TestClientServer(t *testing.T) {
6865
NetworkName: testNetworkName,
6966
Host: h1,
7067
Store: cs,
71-
Log: log,
7268
}
7369

7470
client := certexchange.Client{
7571
Host: h2,
7672
NetworkName: testNetworkName,
77-
Log: log,
7873
}
7974

8075
require.NoError(t, server.Start())

certexchange/server.go

+10-8
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,16 @@ import (
88
"runtime/debug"
99
"time"
1010

11-
"github.com/filecoin-project/go-f3"
1211
"github.com/filecoin-project/go-f3/certstore"
1312
"github.com/filecoin-project/go-f3/gpbft"
13+
14+
logging "github.com/ipfs/go-log/v2"
1415
"github.com/libp2p/go-libp2p/core/host"
1516
"github.com/libp2p/go-libp2p/core/network"
1617
)
1718

19+
var log = logging.Logger("f3/certexchange")
20+
1821
const maxResponseLen = 256
1922

2023
// Server is libp2p a certificate exchange server.
@@ -24,7 +27,6 @@ type Server struct {
2427
NetworkName gpbft.NetworkName
2528
Host host.Host
2629
Store *certstore.Store
27-
Log f3.Logger
2830

2931
cancel context.CancelFunc
3032
}
@@ -40,7 +42,7 @@ func (s *Server) handleRequest(ctx context.Context, stream network.Stream) (_err
4042
defer func() {
4143
if perr := recover(); perr != nil {
4244
_err = fmt.Errorf("panicked in server response: %v", perr)
43-
s.Log.Errorf("%s\n%s", string(debug.Stack()))
45+
log.Errorf("%s\n%s", string(debug.Stack()))
4446
}
4547
}()
4648

@@ -56,7 +58,7 @@ func (s *Server) handleRequest(ctx context.Context, stream network.Stream) (_err
5658
// Request has no variable-length fields, so we don't need a limited reader.
5759
var req Request
5860
if err := req.UnmarshalCBOR(br); err != nil {
59-
s.Log.Debugf("failed to read request from stream: %w", err)
61+
log.Debugf("failed to read request from stream: %w", err)
6062
return err
6163
}
6264

@@ -72,14 +74,14 @@ func (s *Server) handleRequest(ctx context.Context, stream network.Stream) (_err
7274
if resp.PendingInstance >= req.FirstInstance && req.IncludePowerTable {
7375
pt, err := s.Store.GetPowerTable(ctx, req.FirstInstance)
7476
if err != nil {
75-
s.Log.Errorf("failed to load power table: %w", err)
77+
log.Errorf("failed to load power table: %w", err)
7678
return err
7779
}
7880
resp.PowerTable = pt
7981
}
8082

8183
if err := resp.MarshalCBOR(bw); err != nil {
82-
s.Log.Debugf("failed to write header to stream: %w", err)
84+
log.Debugf("failed to write header to stream: %w", err)
8385
return err
8486
}
8587

@@ -96,12 +98,12 @@ func (s *Server) handleRequest(ctx context.Context, stream network.Stream) (_err
9698
if err == nil || errors.Is(err, certstore.ErrCertNotFound) {
9799
for i := range certs {
98100
if err := certs[i].MarshalCBOR(bw); err != nil {
99-
s.Log.Debugf("failed to write certificate to stream: %w", err)
101+
log.Debugf("failed to write certificate to stream: %w", err)
100102
return err
101103
}
102104
}
103105
} else {
104-
s.Log.Errorf("failed to load finality certificates: %w", err)
106+
log.Errorf("failed to load finality certificates: %w", err)
105107
}
106108
}
107109
return bw.Flush()

cmd/f3/run.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ import (
2121
"golang.org/x/xerrors"
2222
)
2323

24-
const DiscoveryTag = "f3-standalone"
24+
var log = logging.Logger("f3/cli")
2525

26-
var log = logging.Logger("f3")
26+
const DiscoveryTag = "f3-standalone"
2727

2828
var runCmd = cli.Command{
2929
Name: "run",
@@ -115,8 +115,7 @@ var runCmd = cli.Command{
115115

116116
ec := ec.NewFakeEC(1, m.BootstrapEpoch, m.ECPeriod, initialPowerTable, true)
117117

118-
module, err := f3.New(ctx, mprovider, ds, h, ps,
119-
signingBackend, ec, log, nil)
118+
module, err := f3.New(ctx, mprovider, ds, h, ps, signingBackend, ec, nil)
120119
if err != nil {
121120
return xerrors.Errorf("creating module: %w", err)
122121
}

f3.go

+4-6
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ type F3 struct {
3131
host host.Host
3232
ds datastore.Datastore
3333
ec ec.Backend
34-
log Logger
3534
pubsub *pubsub.PubSub
3635

3736
runningCtx context.Context
@@ -48,7 +47,7 @@ type F3 struct {
4847
// The context is used for initialization not runtime.
4948
// signingMarshaller can be nil for default SigningMarshaler
5049
func New(_ctx context.Context, manifest manifest.ManifestProvider, ds datastore.Datastore, h host.Host,
51-
ps *pubsub.PubSub, verif gpbft.Verifier, ec ec.Backend, log Logger, signingMarshaller gpbft.SigningMarshaler) (*F3, error) {
50+
ps *pubsub.PubSub, verif gpbft.Verifier, ec ec.Backend, signingMarshaller gpbft.SigningMarshaler) (*F3, error) {
5251
runningCtx, cancel := context.WithCancel(context.Background())
5352
errgrp, runningCtx := errgroup.WithContext(runningCtx)
5453

@@ -63,7 +62,6 @@ func New(_ctx context.Context, manifest manifest.ManifestProvider, ds datastore.
6362
host: h,
6463
ds: ds,
6564
ec: ec,
66-
log: log,
6765
pubsub: ps,
6866
runningCtx: runningCtx,
6967
cancelCtx: cancel,
@@ -96,13 +94,13 @@ func (m *F3) Broadcast(ctx context.Context, signatureBuilder *gpbft.SignatureBui
9694
m.mu.Unlock()
9795

9896
if runner == nil {
99-
m.log.Error("attempted to broadcast message while F3 wasn't running")
97+
log.Error("attempted to broadcast message while F3 wasn't running")
10098
return
10199
}
102100

103101
err := runner.BroadcastMessage(msg)
104102
if err != nil {
105-
m.log.Errorf("failed to broadcast message: %+v", err)
103+
log.Errorf("failed to broadcast message: %+v", err)
106104
}
107105
}
108106

@@ -258,7 +256,7 @@ func (m *F3) reconfigure(ctx context.Context, manifest *manifest.Manifest) error
258256
m.cs = cs
259257
m.manifest = manifest
260258
m.runner, err = newRunner(
261-
ctx, m.cs, runnerEc, m.log, m.pubsub,
259+
ctx, m.cs, runnerEc, m.pubsub,
262260
m.signingMarshaller, m.verifier,
263261
m.busBroadcast.Publish, m.manifest,
264262
)

0 commit comments

Comments
 (0)