diff options
Diffstat (limited to 'plugin')
-rw-r--r-- | plugin/evm/block.go | 7 | ||||
-rw-r--r-- | plugin/evm/service.go | 17 | ||||
-rw-r--r-- | plugin/evm/vm.go | 28 |
3 files changed, 27 insertions, 25 deletions
diff --git a/plugin/evm/block.go b/plugin/evm/block.go index 98280f0..ff1f6ae 100644 --- a/plugin/evm/block.go +++ b/plugin/evm/block.go @@ -8,6 +8,7 @@ import ( "fmt" "github.com/ava-labs/coreth/core/types" + "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/rlp" "github.com/ava-labs/avalanchego/ids" @@ -30,7 +31,7 @@ func (b *Block) ID() ids.ID { return b.id } func (b *Block) Accept() error { vm := b.vm - vm.ctx.Log.Verbo("Block %s is accepted", b.id) + log.Trace(fmt.Sprintf("Block %s is accepted", b.ID())) vm.updateStatus(b.id, choices.Accepted) if err := vm.acceptedDB.Put(b.ethBlock.Number().Bytes(), b.id.Bytes()); err != nil { return err @@ -50,7 +51,7 @@ func (b *Block) Accept() error { // Reject implements the snowman.Block interface func (b *Block) Reject() error { - b.vm.ctx.Log.Verbo("Block %s is rejected", b.ID()) + log.Trace(fmt.Sprintf("Block %s is rejected", b.ID())) b.vm.updateStatus(b.ID(), choices.Rejected) return nil } @@ -68,10 +69,8 @@ func (b *Block) Status() choices.Status { func (b *Block) Parent() snowman.Block { parentID := ids.NewID(b.ethBlock.ParentHash()) if block := b.vm.getBlock(parentID); block != nil { - b.vm.ctx.Log.Verbo("Parent(%s) has status: %s", parentID, block.Status()) return block } - b.vm.ctx.Log.Verbo("Parent(%s) has status: %s", parentID, choices.Unknown) return &missing.Block{BlkID: parentID} } diff --git a/plugin/evm/service.go b/plugin/evm/service.go index 65d389d..a3325b7 100644 --- a/plugin/evm/service.go +++ b/plugin/evm/service.go @@ -14,15 +14,16 @@ import ( "github.com/ava-labs/coreth" - "github.com/ava-labs/coreth/core/types" "github.com/ava-labs/avalanchego/api" "github.com/ava-labs/avalanchego/utils/constants" "github.com/ava-labs/avalanchego/utils/crypto" "github.com/ava-labs/avalanchego/utils/formatting" "github.com/ava-labs/avalanchego/utils/json" + "github.com/ava-labs/coreth/core/types" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" ethcrypto "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/log" ) const ( @@ -87,7 +88,7 @@ func (api *SnowmanAPI) GetAcceptedFront(ctx context.Context) (*GetAcceptedFrontR // GetGenesisBalance returns the current funds in the genesis func (api *DebugAPI) GetGenesisBalance(ctx context.Context) (*hexutil.Big, error) { lastAccepted := api.vm.getLastAccepted() - api.vm.ctx.Log.Verbo("Currently accepted block front: %s", lastAccepted.ethBlock.Hash().Hex()) + log.Trace(fmt.Sprintf("Currently accepted block front: %s", lastAccepted.ethBlock.Hash().Hex())) state, err := api.vm.chain.BlockState(lastAccepted.ethBlock) if err != nil { return nil, err @@ -97,7 +98,7 @@ func (api *DebugAPI) GetGenesisBalance(ctx context.Context) (*hexutil.Big, error // SpendGenesis funds func (api *DebugAPI) SpendGenesis(ctx context.Context, nonce uint64) error { - api.vm.ctx.Log.Info("Spending the genesis") + log.Info("Spending the genesis") value := big.NewInt(1000000000000) gasLimit := 21000 @@ -127,7 +128,7 @@ func (api *DebugAPI) SpendGenesis(ctx context.Context, nonce uint64) error { // IssueBlock to the chain func (api *DebugAPI) IssueBlock(ctx context.Context) error { - api.vm.ctx.Log.Info("Issuing a new block") + log.Info("Issuing a new block") return api.vm.tryBlockGen() } @@ -146,7 +147,7 @@ type ExportKeyReply struct { // ExportKey returns a private key from the provided user func (service *AvaxAPI) ExportKey(r *http.Request, args *ExportKeyArgs, reply *ExportKeyReply) error { - service.vm.ctx.Log.Info("Platform: ExportKey called") + log.Info("EVM: ExportKey called") address, err := service.vm.ParseEthAddress(args.Address) if err != nil { @@ -176,7 +177,7 @@ type ImportKeyArgs struct { // ImportKey adds a private key to the provided user func (service *AvaxAPI) ImportKey(r *http.Request, args *ImportKeyArgs, reply *api.JsonAddress) error { - service.vm.ctx.Log.Info("Platform: ImportKey called for user '%s'", args.Username) + log.Info(fmt.Sprintf("EVM: ImportKey called for user '%s'", args.Username)) if !strings.HasPrefix(args.PrivateKey, constants.SecretKeyPrefix) { return fmt.Errorf("private key missing %s prefix", constants.SecretKeyPrefix) @@ -228,7 +229,7 @@ type ImportAVAXArgs struct { // ImportAVAX issues a transaction to import AVAX from the X-chain. The AVAX // must have already been exported from the X-Chain. func (service *AvaxAPI) ImportAVAX(_ *http.Request, args *ImportAVAXArgs, response *api.JsonTxID) error { - service.vm.ctx.Log.Info("Platform: ImportAVAX called") + log.Info("EVM: ImportAVAX called") chainID, err := service.vm.ctx.BCLookup.Lookup(args.SourceChain) if err != nil { @@ -277,7 +278,7 @@ type ExportAVAXArgs struct { // ExportAVAX exports AVAX from the P-Chain to the X-Chain // It must be imported on the X-Chain to complete the transfer func (service *AvaxAPI) ExportAVAX(_ *http.Request, args *ExportAVAXArgs, response *api.JsonTxID) error { - service.vm.ctx.Log.Info("Platform: ExportAVAX called") + log.Info("EVM: ExportAVAX called") if args.Amount == 0 { return errors.New("argument 'amount' must be > 0") diff --git a/plugin/evm/vm.go b/plugin/evm/vm.go index 55411cf..c6bc728 100644 --- a/plugin/evm/vm.go +++ b/plugin/evm/vm.go @@ -22,9 +22,10 @@ import ( "github.com/ava-labs/coreth/node" "github.com/ava-labs/coreth/params" - "github.com/ava-labs/coreth/rpc" "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/rlp" + "github.com/ethereum/go-ethereum/rpc" ethcrypto "github.com/ethereum/go-ethereum/crypto" @@ -291,7 +292,7 @@ func (vm *VM) Initialize( return nil, nil }) chain.SetOnSealFinish(func(block *types.Block) error { - vm.ctx.Log.Verbo("EVM sealed a block") + log.Trace("EVM sealed a block") blk := &Block{ id: ids.NewID(block.Hash()), @@ -299,6 +300,7 @@ func (vm *VM) Initialize( vm: vm, } if blk.Verify() != nil { + vm.newBlockChan <- nil return errInvalidBlock } vm.newBlockChan <- blk @@ -369,14 +371,14 @@ func (vm *VM) Initialize( var hash common.Hash if err = rlp.DecodeBytes(b, &hash); err == nil { if block := chain.GetBlockByHash(hash); block == nil { - vm.ctx.Log.Debug("lastAccepted block not found in chaindb") + log.Debug("lastAccepted block not found in chaindb") } else { lastAccepted = block } } } if lastAccepted == nil { - vm.ctx.Log.Debug("lastAccepted is unavailable, setting to the genesis block") + log.Debug("lastAccepted is unavailable, setting to the genesis block") lastAccepted = chain.GetGenesisBlock() } vm.lastAccepted = &Block{ @@ -385,7 +387,7 @@ func (vm *VM) Initialize( vm: vm, } vm.genesisHash = chain.GetGenesisBlock().Hash() - vm.ctx.Log.Info(fmt.Sprintf("lastAccepted = %s", vm.lastAccepted.ethBlock.Hash().Hex())) + log.Info(fmt.Sprintf("lastAccepted = %s", vm.lastAccepted.ethBlock.Hash().Hex())) // TODO: shutdown this go routine go vm.ctx.Log.RecoverAndPanic(func() { @@ -393,10 +395,10 @@ func (vm *VM) Initialize( for { select { case <-vm.txSubmitChan: - vm.ctx.Log.Verbo("New tx detected, trying to generate a block") + log.Trace("New tx detected, trying to generate a block") vm.tryBlockGen() case <-vm.atomicTxSubmitChan: - vm.ctx.Log.Verbo("New atomic Tx detected, trying to generate a block") + log.Trace("New atomic Tx detected, trying to generate a block") vm.tryBlockGen() case <-time.After(5 * time.Second): vm.tryBlockGen() @@ -442,7 +444,7 @@ func (vm *VM) BuildBlock() (snowman.Block, error) { vm.blockDelayTimer.SetTimeoutIn(minBlockTime) vm.bdlock.Unlock() - vm.ctx.Log.Debug("built block 0x%x", block.ID().Bytes()) + log.Debug(fmt.Sprintf("built block 0x%x", block.ID().Bytes())) // make sure Tx Pool is updated <-vm.txPoolStabilizedOk return block, nil @@ -626,7 +628,7 @@ func (vm *VM) getCachedStatus(blockID ids.ID) choices.Status { acceptedIDBytes, err := vm.acceptedDB.Get(heightKey) if err == nil { if acceptedID, err := ids.ToID(acceptedIDBytes); err != nil { - vm.ctx.Log.Error("snowman-eth: acceptedID bytes didn't match expected value: %s", err) + log.Error(fmt.Sprintf("snowman-eth: acceptedID bytes didn't match expected value: %s", err)) } else { if acceptedID.Equals(blockID) { vm.blockStatusCache.Put(blockID, choices.Accepted) @@ -641,7 +643,7 @@ func (vm *VM) getCachedStatus(blockID ids.ID) choices.Status { if status == choices.Accepted { err := vm.acceptedDB.Put(heightKey, blockID.Bytes()) if err != nil { - vm.ctx.Log.Error("snowman-eth: failed to write back acceptedID bytes: %s", err) + log.Error(fmt.Sprintf("snowman-eth: failed to write back acceptedID bytes: %s", err)) } tempBlock := wrappedBlk @@ -659,7 +661,7 @@ func (vm *VM) getCachedStatus(blockID ids.ID) choices.Status { } if err := vm.acceptedDB.Put(heightKey, parentID.Bytes()); err != nil { - vm.ctx.Log.Error("snowman-eth: failed to write back acceptedID bytes: %s", err) + log.Error(fmt.Sprintf("snowman-eth: failed to write back acceptedID bytes: %s", err)) } } } @@ -729,10 +731,10 @@ func (vm *VM) writeBackMetadata() { b, err := rlp.EncodeToBytes(vm.lastAccepted.ethBlock.Hash()) if err != nil { - vm.ctx.Log.Error("snowman-eth: error while writing back metadata") + log.Error("snowman-eth: error while writing back metadata") return } - vm.ctx.Log.Debug("writing back metadata") + log.Debug("writing back metadata") vm.chaindb.Put([]byte(lastAcceptedKey), b) atomic.StoreUint32(&vm.writingMetadata, 0) } |