Skip to content

Commit d5832f1

Browse files
committed
Add logger support to RPC Chain VM server
Signed-off-by: Sam Batschelet <sam.batschelet@avalabs.org>
1 parent 2c3029a commit d5832f1

File tree

3 files changed

+24
-12
lines changed

3 files changed

+24
-12
lines changed

snow/engine/snowman/block/batched_vm.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ import (
1111
"github.com/ava-labs/avalanchego/database"
1212
"github.com/ava-labs/avalanchego/ids"
1313
"github.com/ava-labs/avalanchego/snow/consensus/snowman"
14+
"github.com/ava-labs/avalanchego/utils/logging"
1415
"github.com/ava-labs/avalanchego/utils/wrappers"
16+
"go.uber.org/zap"
1517
)
1618

1719
var ErrRemoteVMNotImplemented = errors.New("vm does not implement RemoteVM interface")
@@ -33,6 +35,7 @@ type BatchedChainVM interface {
3335

3436
func GetAncestors(
3537
ctx context.Context,
38+
log logging.Logger,
3639
vm Getter, // fetch blocks
3740
blkID ids.ID, // first requested block
3841
maxBlocksNum int, // max number of blocks to be retrieved
@@ -77,6 +80,10 @@ func GetAncestors(
7780
blk, err = vm.GetBlock(ctx, blk.Parent())
7881
if err != nil {
7982
// After state sync we may not have the full chain
83+
log.Debug("failed to get block during ancestorial lookup",
84+
zap.String("parent id", blk.Parent().String()),
85+
zap.Error(err),
86+
)
8087
break
8188
}
8289
blkBytes := blk.Bytes()
@@ -85,7 +92,7 @@ func GetAncestors(
8592
// is repr. by an int.
8693
newLen := ancestorsBytesLen + len(blkBytes) + wrappers.IntLen
8794
if newLen > maxBlocksSize {
88-
// reached maximum response size
95+
// Reached maximum response size
8996
break
9097
}
9198
ancestorsBytes = append(ancestorsBytes, blkBytes)

snow/engine/snowman/block/batched_vm_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/ava-labs/avalanchego/database"
1515
"github.com/ava-labs/avalanchego/ids"
1616
"github.com/ava-labs/avalanchego/snow/consensus/snowman"
17+
"github.com/ava-labs/avalanchego/utils/logging"
1718
)
1819

1920
var errTest = errors.New("non-nil error")
@@ -25,7 +26,7 @@ func TestGetAncestorsDatabaseNotFound(t *testing.T) {
2526
require.Equal(t, someID, id)
2627
return nil, database.ErrNotFound
2728
}
28-
containers, err := GetAncestors(context.Background(), vm, someID, 10, 10, 1*time.Second)
29+
containers, err := GetAncestors(context.Background(), logging.NewLogger("test"), vm, someID, 10, 10, 1*time.Second)
2930
require.NoError(t, err)
3031
require.Empty(t, containers)
3132
}
@@ -39,7 +40,7 @@ func TestGetAncestorsPropagatesErrors(t *testing.T) {
3940
require.Equal(t, someID, id)
4041
return nil, errTest
4142
}
42-
containers, err := GetAncestors(context.Background(), vm, someID, 10, 10, 1*time.Second)
43+
containers, err := GetAncestors(context.Background(), logging.NewLogger("test"), vm, someID, 10, 10, 1*time.Second)
4344
require.Nil(t, containers)
4445
require.ErrorIs(t, err, errTest)
4546
}

vms/rpcchainvm/vm_server.go

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ type VMServer struct {
7575

7676
processMetrics prometheus.Gatherer
7777
dbManager manager.Manager
78+
log logging.Logger
7879

7980
serverCloser grpcutils.ServerCloser
8081
connCloser wrappers.Closer
@@ -184,6 +185,16 @@ func (vm *VMServer) Initialize(ctx context.Context, req *vmpb.InitializeRequest)
184185
}
185186
vm.dbManager = dbManager
186187

188+
// TODO: Allow the logger to be configured by the client
189+
vm.log = logging.NewLogger(
190+
fmt.Sprintf("<%s Chain>", chainID),
191+
logging.NewWrappedCore(
192+
logging.Info,
193+
originalStderr,
194+
logging.Colors.ConsoleEncoder(),
195+
),
196+
)
197+
187198
clientConn, err := grpcutils.Dial(
188199
req.ServerAddr,
189200
grpcutils.WithChainUnaryInterceptor(grpcClientMetrics.UnaryClientInterceptor()),
@@ -233,15 +244,7 @@ func (vm *VMServer) Initialize(ctx context.Context, req *vmpb.InitializeRequest)
233244
CChainID: cChainID,
234245
AVAXAssetID: avaxAssetID,
235246

236-
// TODO: Allow the logger to be configured by the client
237-
Log: logging.NewLogger(
238-
fmt.Sprintf("<%s Chain>", chainID),
239-
logging.NewWrappedCore(
240-
logging.Info,
241-
originalStderr,
242-
logging.Colors.ConsoleEncoder(),
243-
),
244-
),
247+
Log: vm.log,
245248
Keystore: keystoreClient,
246249
SharedMemory: sharedMemoryClient,
247250
BCLookup: bcLookupClient,
@@ -657,6 +660,7 @@ func (vm *VMServer) GetAncestors(ctx context.Context, req *vmpb.GetAncestorsRequ
657660
maxBlksNum,
658661
maxBlksSize,
659662
maxBlocksRetrivalTime,
663+
vm.log,
660664
)
661665
return &vmpb.GetAncestorsResponse{
662666
BlksBytes: blocks,

0 commit comments

Comments
 (0)