Skip to content

Commit

Permalink
bit of code clean up
Browse files Browse the repository at this point in the history
  • Loading branch information
billettc committed Oct 26, 2023
1 parent 103291d commit 72a3880
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 101 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,4 @@ venv
/build
accountresolver/devel
/accountresolver/tmp/
/validation_state.json
15 changes: 0 additions & 15 deletions accountresolver/processor.go
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,6 @@ func (p *Processor) ProcessBlock(ctx context.Context, stats *Stats, block *pbsol
if trx.Meta.Err != nil {
continue
}
//p.logger.Debug("processing transaction", zap.Uint64("block_num", block.Slot), zap.String("trx_id", base58.Encode(trx.Transaction.Signatures[0])))
err := ApplyTableLookup(ctx, stats, block.Slot, trx, p.accountsResolver, p.logger)
if err != nil {
return fmt.Errorf("applying table lookup at block %d: %w", block.Slot, err)
Expand Down Expand Up @@ -308,18 +307,12 @@ func ApplyTableLookup(ctx context.Context, stats *Stats, blockNum uint64, trx *p
return fmt.Errorf("resolving address table %s at block %d: %w", base58.Encode(addressTableLookup.AccountKey), blockNum, err)
}

if len(resolvedAccounts) == 0 {
logger.Warn("Resolved accounts is empty", zap.Uint64("block", blockNum), zap.String("table account", base58.Encode(addressTableLookup.AccountKey)), zap.Bool("cached", cached), zap.Int("account_count", len(resolvedAccounts)))
}

if cached {
stats.cacheHit += 1
stats.totalAccountsResolvedByCache += len(resolvedAccounts)
}
stats.totalAccountsResolved += len(resolvedAccounts)

//p.logger.Info("resolved accounts", zap.Uint64("block", blockNum), zap.String("table account", base58.Encode(addressTableLookup.AccountKey)), zap.Int("account_count", len(resolvedAccounts)))

for _, index := range addressTableLookup.WritableIndexes {
if int(index) >= len(resolvedAccounts) {
return fmt.Errorf("missing writable account key from %s at index %d for transaction %s with account keys count of %d at block %d cached: %t", base58.Encode(addressTableLookup.AccountKey), index, getTransactionHash(trx.Transaction.Signatures), len(resolvedAccounts), blockNum, cached)
Expand All @@ -336,17 +329,9 @@ func ApplyTableLookup(ctx context.Context, stats *Stats, blockNum uint64, trx *p
}
totalDuration := time.Since(start)
lookupCount := len(trx.Transaction.Message.AddressTableLookups)

if lookupCount > 0 {
stats.lookupCount += lookupCount
stats.totalLookupDuration += totalDuration
logger.Debug(
"applyTableLookup",
zap.Duration("duration", totalDuration),
zap.Int("lookup_count", lookupCount),
zap.Int64("average_lookup_time", totalDuration.Milliseconds()/int64(lookupCount)),
)

}
return nil
}
Expand Down
79 changes: 0 additions & 79 deletions accountresolver/processor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -478,82 +478,3 @@ func Test_BlockResolved(t *testing.T) {
blockAccounts := NewAccounts(blockAccountsData)
require.Equal(t, expectedBlockAccounts, blockAccounts)
}
func Test_BlockResolved_Multiple_extend(t *testing.T) {
tableLookupAccount := accountFromBase58(t, "6pyNrJXyGdDDA3esoLEHJ2uoohcdf2xGT11acfmfyA7Q")
tableLookupToExtendIndex := byte(2)

expectedCreatedAccounts1 := fromBase58Strings(t,
"He3iAEV5rYjv6Xf7PxKro19eVrC3QAcdic5CF2D2obPt",
)
expectedCreatedAccounts2 := fromBase58Strings(t,
"5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1",
)
solBlock := &pbsol.Block{
PreviousBlockhash: "9RXPunwLvRcNGiLKwMBFtxmqr3d1rTxSkYYsMZPbKCct",
Blockhash: "6CqnntW5shmcB92VivDAUkKdckn6m7Dmn7nTzSvX1G6o",
ParentSlot: 157_564_919,
Transactions: []*pbsol.ConfirmedTransaction{
{
Transaction: &pbsol.Transaction{
Signatures: [][]byte{{0}},
Message: &pbsol.Message{
AccountKeys: [][]byte{
accountFromBase58(t, "AddressLookupTab1e1111111111111111111111111"),
},
Instructions: []*pbsol.CompiledInstruction{
{
ProgramIdIndex: 0,
},
{
ProgramIdIndex: 0,
},
{
ProgramIdIndex: 0,
},
},
},
},
Meta: &pbsol.TransactionStatusMeta{
InnerInstructions: []*pbsol.InnerInstructions{
{
Index: 0,
Instructions: []*pbsol.InnerInstruction{
{
ProgramIdIndex: 0,
Accounts: []byte{tableLookupToExtendIndex, 15, 0, 3},
Data: append([]byte{2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, encodeAccounts(expectedCreatedAccounts1)...),
},
},
},
{
Index: 2,
Instructions: []*pbsol.InnerInstruction{
{
ProgramIdIndex: 0,
Accounts: []byte{tableLookupToExtendIndex, 15, 0, 3},
Data: append([]byte{2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, encodeAccounts(expectedCreatedAccounts2)...),
},
},
},
},
},
},
},
BlockHeight: &pbsol.BlockHeight{
BlockHeight: 157_564_920,
},
Slot: 157_564_920,
}
err := os.RemoveAll("/tmp/my-badger.db")
require.NoError(t, err)
db, err := kvstore.New("badger3:///tmp/my-badger.db")
require.NoError(t, err)

resolver := NewKVDBAccountsResolver(db, zap.NewNop())
p := NewProcessor("test", NewKVDBAccountsResolver(db, zap.NewNop()), zap.NewNop())
err = p.ProcessBlock(context.Background(), &Stats{}, solBlock)
require.NoError(t, err)

accounts, _, err := resolver.Resolve(context.Background(), 157_564_921, tableLookupAccount)
require.Equal(t, expectedCreatedAccounts1, accounts)
}
11 changes: 6 additions & 5 deletions cmd/firesol/resolve_accounts_block.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@ package main
import (
"context"
"fmt"
"io"
"strconv"
"strings"
"time"

"github.com/hako/durafmt"
"github.com/spf13/cobra"
"github.com/streamingfast/bstream"
Expand All @@ -14,10 +19,6 @@ import (
kvstore "github.com/streamingfast/kvdb/store"
"github.com/streamingfast/logging"
"go.uber.org/zap"
"io"
"strconv"
"strings"
"time"
)

func newResolveAccountsBlockCmd(logger *zap.Logger, tracer logging.Tracer, chain *firecore.Chain[*pbsol.Block]) *cobra.Command {
Expand Down Expand Up @@ -93,7 +94,7 @@ func processMergeBlocks(
zap.String("first_merge_filename", paddedBlockNum),
)

mergeBlocksFileChan := make(chan *mergeBlocksFile, 20)
mergeBlocksFileChan := make(chan *mergeBlocksFile, 5)
done := make(chan interface{})

go func() {
Expand Down
6 changes: 4 additions & 2 deletions cmd/firesol/validate_resolved_accounts.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import (
"context"
"encoding/json"
"fmt"
"github.com/streamingfast/cli/sflags"
"os"
"time"

solana "github.com/gagliardetto/solana-go"
addresslookuptable "github.com/gagliardetto/solana-go/programs/address-lookup-table"
"github.com/gagliardetto/solana-go/rpc"
"github.com/spf13/cobra"
"github.com/streamingfast/cli/sflags"
firecore "github.com/streamingfast/firehose-core"
accountsresolver "github.com/streamingfast/firehose-solana/accountresolver"
pbsolv1 "github.com/streamingfast/firehose-solana/pb/sf/solana/type/v1"
Expand Down Expand Up @@ -74,12 +74,14 @@ func processValidateResolvedAddressesE(chain *firecore.Chain[*pbsolv1.Block], lo
}

func newValidateAllResolvedAddresses(logger *zap.Logger, tracer logging.Tracer, chain *firecore.Chain[*pbsolv1.Block]) *cobra.Command {
return &cobra.Command{
cmd := &cobra.Command{
Use: "validate-all-resolve-addresses {kv-dsn}",
Short: "",
RunE: processValidateAllResolvedAddressesE(chain, logger, tracer),
Args: cobra.ExactArgs(1),
}
cmd.Flags().String("rpc-endpoint", "", "Pass in your RPC endpoint")
return cmd
}

type ValidationState struct {
Expand Down

0 comments on commit 72a3880

Please sign in to comment.