Documentation ¶
Index ¶
- Constants
- func ApplyFlags(config *Config, flags support.ConfigOptions)
- type App
- func (a *App) Close()
- func (a *App) CloseDB()
- func (a *App) DeleteUnretainedHistory() error
- func (a *App) GetCoreSettings() actions.CoreSettings
- func (a *App) HistoryQ() *history.Q
- func (a *App) Ingestion() ingest.System
- func (a *App) MillenniumSession(ctx context.Context) *db.Session
- func (a *App) Serve()
- func (a *App) Tick()
- func (a *App) UpdateAiBlocksCoreInfo()
- func (a *App) UpdateFeeStatsState()
- func (a *App) UpdateLedgerState()
- type Config
Constants ¶
const ( // DatabaseURLFlagName is the command line flag for configuring the Millennium postgres URL DatabaseURLFlagName = "db-url" // AiBlocksCoreDBURLFlagName is the command line flag for configuring the postgres AiBlocks Core URL AiBlocksCoreDBURLFlagName = "aiblocks-core-db-url" // AiBlocksCoreDBURLFlagName is the command line flag for configuring the URL fore AiBlocks Core HTTP endpoint AiBlocksCoreURLFlagName = "aiblocks-core-url" )
Variables ¶
This section is empty.
Functions ¶
func ApplyFlags ¶
func ApplyFlags(config *Config, flags support.ConfigOptions)
ApplyFlags applies the command line flags on the given Config instance
Types ¶
type App ¶
type App struct {
// contains filtered or unexported fields
}
App represents the root of the state of a millennium instance.
func NewAppFromFlags ¶
func NewAppFromFlags(config *Config, flags support.ConfigOptions) *App
NewAppFromFlags constructs a new Millennium App from the given command line flags
func (*App) Close ¶
func (a *App) Close()
Close cancels the app. It does not close DB connections - use App.CloseDB().
func (*App) CloseDB ¶
func (a *App) CloseDB()
CloseDB closes DB connections. When using during web server shut down make sure all requests are first properly finished to avoid "sql: database is closed" errors.
func (*App) DeleteUnretainedHistory ¶
DeleteUnretainedHistory forwards to the app's reaper. See `reap.DeleteUnretainedHistory` for details
func (*App) GetCoreSettings ¶
func (a *App) GetCoreSettings() actions.CoreSettings
func (*App) HistoryQ ¶
HistoryQ returns a helper object for performing sql queries against the history portion of millennium's database.
func (*App) Ingestion ¶
Ingestion returns the ingestion system associated with this Millennium instance
func (*App) MillenniumSession ¶
MillenniumSession returns a new session that loads data from the millennium database. The returned session is bound to `ctx`.
func (*App) Serve ¶
func (a *App) Serve()
Serve starts the millennium web server, binding it to a socket, setting up the shutdown signals.
func (*App) Tick ¶
func (a *App) Tick()
Tick triggers millennium to update all of it's background processes such as transaction submission, metrics, ingestion and reaping.
func (*App) UpdateAiBlocksCoreInfo ¶
func (a *App) UpdateAiBlocksCoreInfo()
UpdateAiBlocksCoreInfo updates the value of CoreVersion, CurrentProtocolVersion, and CoreSupportedProtocolVersion from the AiBlocks core API.
func (*App) UpdateFeeStatsState ¶
func (a *App) UpdateFeeStatsState()
UpdateFeeStatsState triggers a refresh of several operation fee metrics.
func (*App) UpdateLedgerState ¶
func (a *App) UpdateLedgerState()
UpdateLedgerState triggers a refresh of several metrics gauges, such as open db connections and ledger state
type Config ¶
type Config struct { DatabaseURL string HistoryArchiveURLs []string Port uint AdminPort uint EnableCaptiveCoreIngestion bool AiBlocksCoreBinaryPath string AiBlocksCoreConfigPath string AiBlocksCoreDatabaseURL string AiBlocksCoreURL string RemoteCaptiveCoreURL string // MaxDBConnections has a priority over all 4 values below. MaxDBConnections int MillenniumDBMaxOpenConnections int MillenniumDBMaxIdleConnections int SSEUpdateFrequency time.Duration ConnectionTimeout time.Duration RateQuota *throttled.RateQuota FriendbotURL *url.URL LogLevel logrus.Level LogFile string // MaxPathLength is the maximum length of the path returned by `/paths` endpoint. MaxPathLength uint NetworkPassphrase string SentryDSN string LogglyToken string LogglyTag string // TLSCert is a path to a certificate file to use for millennium's TLS config TLSCert string // TLSKey is the path to a private key file to use for millennium's TLS config TLSKey string // Ingest toggles whether this millennium instance should run the data ingestion subsystem. Ingest bool // CursorName is the cursor used for ingesting from aiblocks-core. // Setting multiple cursors in different Millennium instances allows multiple // Millenniums to ingest from the same aiblocks-core instance without cursor // collisions. CursorName string // HistoryRetentionCount represents the minimum number of ledgers worth of // history data to retain in the millennium database. For the purposes of // determining a "retention duration", each ledger roughly corresponds to 10 // seconds of real time. HistoryRetentionCount uint // StaleThreshold represents the number of ledgers a history database may be // out-of-date by before millennium begins to respond with an error to history // requests. StaleThreshold uint // SkipCursorUpdate causes the ingestor to skip reporting the "last imported // ledger" state to aiblocks-core. SkipCursorUpdate bool // IngestDisableStateVerification disables state verification // `System.verifyState()` when set to `true`. IngestDisableStateVerification bool // ApplyMigrations will apply pending migrations to the millennium database // before starting the millennium service ApplyMigrations bool }
Config is the configuration for millennium. It gets populated by the app's main function and is provided to NewApp.
func Flags ¶
func Flags() (*Config, support.ConfigOptions)
Flags returns a Config instance and a list of commandline flags which modify the Config instance
Directories ¶
Path | Synopsis |
---|---|
Package actions provides the infrastructure for defining and executing actions (code that is triggered in response to an client request) on millennium.
|
Package actions provides the infrastructure for defining and executing actions (code that is triggered in response to an client request) on millennium. |
Package assets is a simple helper package to help convert to/from xdr.AssetType values
|
Package assets is a simple helper package to help convert to/from xdr.AssetType values |
Package codes is a helper package to help convert to transaction and operation result codes to strings used in millennium.
|
Package codes is a helper package to help convert to transaction and operation result codes to strings used in millennium. |
Package db2 is the replacement for db.
|
Package db2 is the replacement for db. |
history
Package history contains database record definitions useable for reading rows from a the history portion of millennium's database
|
Package history contains database record definitions useable for reading rows from a the history portion of millennium's database |
Package hchi provides functions to support embedded and retrieving a request id from a go context tree
|
Package hchi provides functions to support embedded and retrieving a request id from a go context tree |
Package ingest contains the new ingestion system for millennium.
|
Package ingest contains the new ingestion system for millennium. |
Package ledger provides useful utilities concerning ledgers within aiblocks, specifically as a central location to store a cached snapshot of the state of both millennium's and aiblocks-core's views of the ledger.
|
Package ledger provides useful utilities concerning ledgers within aiblocks, specifically as a central location to store a cached snapshot of the state of both millennium's and aiblocks-core's views of the ledger. |
Package operationfeestats provides useful utilities concerning operation fee stats within aiblocks,specifically as a central location to store a cached snapshot of the state of network per operation fees and surge pricing.
|
Package operationfeestats provides useful utilities concerning operation fee stats within aiblocks,specifically as a central location to store a cached snapshot of the state of network per operation fees and surge pricing. |
Package paths provides utilities and facilities for payment paths as needed by millennium.
|
Package paths provides utilities and facilities for payment paths as needed by millennium. |
Package reap contains the history reaping subsystem for millennium.
|
Package reap contains the history reaping subsystem for millennium. |
sse
This package contains the Server Sent Events implementation used by millennium.
|
This package contains the Server Sent Events implementation used by millennium. |
Package simplepath provides an implementation of paths.
|
Package simplepath provides an implementation of paths. |
Package test contains simple test helpers that should not have any dependencies on millennium's packages.
|
Package test contains simple test helpers that should not have any dependencies on millennium's packages. |
db
Package db provides helpers to connect to test databases.
|
Package db provides helpers to connect to test databases. |
trades
Common infrastructure for testing Trades
|
Common infrastructure for testing Trades |
transactions
Package transactions offers common infrastructure for testing Transactions
|
Package transactions offers common infrastructure for testing Transactions |
Package txsub provides the machinery that millennium uses to submit transactions to the aiblocks network and track their progress.
|
Package txsub provides the machinery that millennium uses to submit transactions to the aiblocks network and track their progress. |
sequence
Package sequence providers helpers to manage sequence numbers on behalf of millennium clients.
|
Package sequence providers helpers to manage sequence numbers on behalf of millennium clients. |
Package utf8 contains utilities for working with utf8 data.
|
Package utf8 contains utilities for working with utf8 data. |