update reporting api

This commit is contained in:
PanJ
2024-05-15 15:33:59 +07:00
parent 85fdf79a00
commit 58761b1ef5
5 changed files with 32 additions and 28 deletions

View File

@@ -30,7 +30,7 @@ import (
"github.com/gaze-network/indexer-network/pkg/errorhandler"
"github.com/gaze-network/indexer-network/pkg/logger"
"github.com/gaze-network/indexer-network/pkg/logger/slogx"
"github.com/gaze-network/indexer-network/pkg/reportingclient"
"github.com/gaze-network/indexer-network/pkg/reportingclientv2"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/compress"
fiberrecover "github.com/gofiber/fiber/v2/middleware/recover"
@@ -123,9 +123,9 @@ func runHandler(opts *runCmdOptions, cmd *cobra.Command, _ []string) error {
// use gracefulEG to coordinate graceful shutdown after context is done. (e.g. shut down http server, shutdown logic of each module, etc.)
gracefulEG, gctx := errgroup.WithContext(context.Background())
var reportingClient *reportingclient.ReportingClient
var reportingClient *reportingclientv2.ReportingClient
if !conf.Reporting.Disabled {
reportingClient, err = reportingclient.New(conf.Reporting)
reportingClient, err = reportingclientv2.New(conf.Reporting) // TODO: read private key from file
if err != nil {
logger.PanicContext(ctx, "Failed to create reporting client", slogx.Error(err))
}

View File

@@ -12,7 +12,7 @@ import (
runesconfig "github.com/gaze-network/indexer-network/modules/runes/config"
"github.com/gaze-network/indexer-network/pkg/logger"
"github.com/gaze-network/indexer-network/pkg/logger/slogx"
"github.com/gaze-network/indexer-network/pkg/reportingclient"
"github.com/gaze-network/indexer-network/pkg/reportingclientv2"
"github.com/spf13/pflag"
"github.com/spf13/viper"
)
@@ -32,12 +32,12 @@ var (
)
type Config struct {
Logger logger.Config `mapstructure:"logger"`
BitcoinNode BitcoinNodeClient `mapstructure:"bitcoin_node"`
Network common.Network `mapstructure:"network"`
HTTPServer HTTPServerConfig `mapstructure:"http_server"`
Modules Modules `mapstructure:"modules"`
Reporting reportingclient.Config `mapstructure:"reporting"`
Logger logger.Config `mapstructure:"logger"`
BitcoinNode BitcoinNodeClient `mapstructure:"bitcoin_node"`
Network common.Network `mapstructure:"network"`
HTTPServer HTTPServerConfig `mapstructure:"http_server"`
Modules Modules `mapstructure:"modules"`
Reporting reportingclientv2.Config `mapstructure:"reporting"`
}
type BitcoinNodeClient struct {

View File

@@ -16,7 +16,7 @@ import (
"github.com/gaze-network/indexer-network/modules/runes/internal/entity"
"github.com/gaze-network/indexer-network/modules/runes/runes"
"github.com/gaze-network/indexer-network/pkg/logger"
"github.com/gaze-network/indexer-network/pkg/reportingclient"
"github.com/gaze-network/indexer-network/pkg/reportingclientv2"
"github.com/gaze-network/uint128"
"github.com/samber/lo"
)
@@ -29,7 +29,7 @@ type Processor struct {
bitcoinClient btcclient.Contract
bitcoinDataSource indexers.BitcoinDatasource
network common.Network
reportingClient *reportingclient.ReportingClient
reportingClient *reportingclientv2.ReportingClient
newRuneEntries map[runes.RuneId]*runes.RuneEntry
newRuneEntryStates map[runes.RuneId]*runes.RuneEntry
@@ -39,7 +39,7 @@ type Processor struct {
newRuneTxs []*entity.RuneTransaction
}
func NewProcessor(runesDg datagateway.RunesDataGateway, indexerInfoDg datagateway.IndexerInfoDataGateway, bitcoinClient btcclient.Contract, bitcoinDataSource indexers.BitcoinDatasource, network common.Network, reportingClient *reportingclient.ReportingClient) *Processor {
func NewProcessor(runesDg datagateway.RunesDataGateway, indexerInfoDg datagateway.IndexerInfoDataGateway, bitcoinClient btcclient.Contract, bitcoinDataSource indexers.BitcoinDatasource, network common.Network, reportingClient *reportingclientv2.ReportingClient) *Processor {
return &Processor{
runesDg: runesDg,
indexerInfoDg: indexerInfoDg,
@@ -72,7 +72,7 @@ func (p *Processor) VerifyStates(ctx context.Context) error {
}
}
if p.reportingClient != nil {
if err := p.reportingClient.SubmitNodeReport(ctx, "runes", p.network); err != nil {
if err := p.reportingClient.SubmitNodeReport(ctx, "runes", p.network, Version); err != nil {
return errors.Wrap(err, "failed to submit node report")
}
}

View File

@@ -18,7 +18,7 @@ import (
"github.com/gaze-network/indexer-network/modules/runes/runes"
"github.com/gaze-network/indexer-network/pkg/logger"
"github.com/gaze-network/indexer-network/pkg/logger/slogx"
"github.com/gaze-network/indexer-network/pkg/reportingclient"
"github.com/gaze-network/indexer-network/pkg/reportingclientv2"
"github.com/gaze-network/uint128"
"github.com/samber/lo"
)
@@ -810,7 +810,7 @@ func (p *Processor) flushBlock(ctx context.Context, blockHeader types.BlockHeade
// submit event to reporting system
if p.reportingClient != nil {
if err := p.reportingClient.SubmitBlockReport(ctx, reportingclient.SubmitBlockReportPayload{
if err := p.reportingClient.SubmitBlockReport(ctx, reportingclientv2.SubmitBlockReportPayload{
Type: "runes",
ClientVersion: Version,
DBVersion: DBVersion,

View File

@@ -39,7 +39,7 @@ type ReportingClient struct {
const (
defaultBaseURL = "https://indexer.api.gaze.network"
defaultPublicKey = "0251e2dfcdeea17cc9726e4be0855cd0bae19e64f3e247b10760cd76851e7df47e"
defaultPublicKey = "039298683d53a1cbdb6f318d5ad4b12bc0d752f3a6cd62c19b2c22b1ae1e12fe05"
)
func New(config Config, indexerPrivateKey string) (*ReportingClient, error) {
@@ -118,21 +118,25 @@ type SubmitNodeReportPayload struct {
}
type SubmitNodeReportPayloadData struct {
Name string `json:"name"`
Type string `json:"type"`
Network common.Network `json:"network"`
WebsiteURL string `json:"websiteUrl,omitempty"`
APIURL string `json:"apiUrl,omitempty"`
Name string `json:"name"`
Type string `json:"type"`
Network common.Network `json:"network"`
WebsiteURL string `json:"websiteUrl,omitempty"`
APIURL string `json:"apiUrl,omitempty"`
IndexerPublicKey string `json:"indexerPublicKey"`
ClientVersion string `json:"clientVersion"`
}
func (r *ReportingClient) SubmitNodeReport(ctx context.Context, module string, network common.Network) error {
func (r *ReportingClient) SubmitNodeReport(ctx context.Context, module string, network common.Network, clientVersion string) error {
payload := SubmitNodeReportPayload{
Data: SubmitNodeReportPayloadData{
Name: r.config.NodeInfo.Name,
Type: module,
Network: network,
WebsiteURL: r.config.NodeInfo.WebsiteURL,
APIURL: r.config.NodeInfo.APIURL,
Name: r.config.NodeInfo.Name,
Type: module,
Network: network,
WebsiteURL: r.config.NodeInfo.WebsiteURL,
APIURL: r.config.NodeInfo.APIURL,
IndexerPublicKey: r.cryptoClient.PublicKey(),
ClientVersion: clientVersion,
},
IndexerPublicKey: r.cryptoClient.PublicKey(),
}