Documentation ¶
Index ¶
- type APIHandlers
- type AggState
- type Aggregation
- type AnchorBtcAggState
- type AnchorBtcHeadState
- type AnchorBtcTxState
- type AnchorConfig
- type AnchorObj
- type AnchorOpsState
- type AnchorRange
- type AnchorState
- type BtcA
- type BtcAgg
- type BtcMonMsg
- type BtcMsgObj
- type BtcProofData
- type BtcTxMsg
- type BtcTxProofState
- type BtccStateObj
- type CalAgg
- type CalProofData
- type CalState
- type CalStateObject
- type Core
- type CoreAPIStatus
- type EcdsaSignature
- type EthConfig
- type HashItem
- type JSProof
- type Jwk
- type LnIdentity
- type OpsState
- type ProofData
- type ProofLineItem
- type ProofState
- type RateLimit
- type TendermintConfig
- type Tx
- type TxID
- type TxTm
- type TxValidation
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIHandlers ¶
type AggState ¶
type AggState struct { ProofID string `json:"proof_id"` Hash string `json:"hash"` AggID string `json:"agg_id"` AggState string `json:"agg_state"` AggRoot string `json:"agg_root"` }
AggState : agg state for proof gen
type Aggregation ¶
type Aggregation struct { AggID string `json:"agg_id"` AggRoot string `json:"agg_root"` AggStates []AggState `json:"agg_states"` }
Aggregation : An object containing all the relevant data for an aggregation event
type AnchorBtcAggState ¶
type AnchorBtcHeadState ¶
type AnchorBtcTxState ¶
type AnchorConfig ¶
type AnchorConfig struct { HomePath string APIPort string ChainId string DBType string BitcoinNetwork string ElectionMode string TendermintConfig TendermintConfig LightningConfig lightning.LightningClient EthConfig EthConfig ECPrivateKey *ecdsa.PrivateKey DoNodeManagement bool DoNodeAudit bool CIDRBlockList []string IPBlockList []string DoCal bool DoAnchor bool AnchorInterval int Logger *log.Logger FilePV privval.FilePV AnchorTimeout int AnchorReward int StakePerCore int64 UpdateStake string FeeInterval int64 FeeMultiplier float64 HashPrice int UseAllowlist bool GatewayAllowlist []string CoreURI string CoreName string AnalyticsID string ProposedVal string RemoveRateLimits bool HashQuota int ApiQuota int ProofQuota int UseChainpointLndConfig bool }
AnchorConfig represents values to configure all connections within the ABCI anchor app
type AnchorOpsState ¶
type AnchorOpsState struct { Ops []ProofLineItem `json:"ops"` Anchor AnchorObj `json:"anchor"` }
AnchorOpsState : Part of the RMQ message for btc anchoring post-confirmation
type AnchorRange ¶
type AnchorRange struct { AnchorBtcAggRoot string `json:"anchor_btc_agg_root"` CalBlockHeight int64 `json:"cal_block_height"` BtcBlockHeight int64 `json:"btc_block_height"` BeginCalTxInt int64 `json:"begin_cal_int"` EndCalTxInt int64 `json:"end_cal_int"` AmLeader bool `json:"am_leader"` }
AnchorRange : To store anchor state to compensate for failed anchors
type AnchorState ¶
type AnchorState struct { ID string `json:"tendermint_id"` TxInt int64 `json:"tx_int"` Height int64 `json:"height"` AmValidator bool `json:"validator"` AppHash []byte `json:"app_hash"` BeginCalTxInt int64 `json:"begin_cal_int"` EndCalTxInt int64 `json:"end_cal_int"` LatestCalTxInt int64 `json:"latest_cal_int"` CurrentCalInts int64 `json:"current_cal_ints"` LatestBtcaTx []byte `json:"latest_btca"` LatestBtcaTxInt int64 `json:"latest_btca_int"` LatestBtcaHeight int64 `json:"latest_btca_height"` LatestBtcTx string `json:"latest_btc"` LatestBtcAggRoot string `json:"latest_btc_root"` LatestBtccTx []byte `json:"latest_btcc"` LatestBtccTxInt int64 `json:"latest_btcc_int"` LatestBtccHeight int64 `json:"latest_btcc_height"` LatestErrRoot string `json:"latest_btce"` LastElectedCoreID string `json:"last_elected_core_id"` LastAnchorCoreID string `json:"last_anchor_core_id"` LastErrorCoreID string `json:"last_error_core_id"` BtcHeight int64 `json:"btc_height"` TxValidation map[string]TxValidation `json:"tx_validation"` CoreKeys map[string]ecdsa.PublicKey `json:"-"` LnUris map[string]LnIdentity `json:"lightning_identities"` IDMap map[string]string `json:"-"` Validators []*types3.Validator `json:"-"` TMState coretypes.ResultStatus `json:"-"` TMNetInfo coretypes.ResultNetInfo `json:"-"` LNState lnrpc2.GetInfoResponse `json:"-"` ChainSynced bool JWKStaked bool LnStakePrice int64 `json:"total_stake_price"` LnStakePerVal int64 `json:"validator_stake_price"` LatestNistRecord string LatestTimeRecord string LatestBtcFee int64 LastBtcFeeHeight int64 Migrations map[int]string `json:"migrations"` AppReady bool `json:"-"` }
AnchorState holds Tendermint/ABCI application state. Persisted by ABCI app
type BtcA ¶
type BtcA struct { AnchorBtcAggRoot string `json:"anchor_btc_agg_root"` BtcTxID string `json:"btctx_id"` }
BtcA struct will be included in the BTC-A tx data field
type BtcAgg ¶
type BtcAgg struct { AnchorBtcAggID string `json:"anchor_btc_agg_id"` AnchorBtcAggRoot string `json:"anchor_btc_agg_root"` ProofData []BtcProofData `json:"proofData"` }
BtcAgg : An object containing BTC anchoring aggregation data
type BtcMonMsg ¶
type BtcMonMsg struct { BtcTxID string `json:"btctx_id"` BtcHeadHeight int64 `json:"btchead_height"` BtcHeadRoot string `json:"btchead_root"` Path []JSProof `json:"path"` }
BtcMonMsg : An RMQ message sent by the monitoring service to confirm a BTC transaction has occurred
type BtcProofData ¶
type BtcProofData struct { CalID string `json:"cal_id"` Proof []ProofLineItem `json:"proof"` }
BtcProofData : An individual proof object within a Btc aggregation set
type BtcTxMsg ¶
type BtcTxMsg struct { AnchorBtcAggID string `json:"anchor_btc_agg_id"` AnchorBtcAggRoot string `json:"anchor_btc_agg_root"` BtcTxID string `json:"btctx_id"` BtcTxBody string `json:"btctx_body"` BtcTxHeight int64 `json:"btctx_height"` CalBlockHeight int64 `json:"cal_block_height"` BeginCalTxInt int64 `json:"begin_cal_int"` EndCalTxInt int64 `json:"end_cal_int"` }
BtcTxMsg : A RMQ message object
type BtcTxProofState ¶
type BtcTxProofState struct { AnchorBtcAggID string `json:"anchor_btc_agg_id"` BtcTxID string `json:"btctx_id"` BtcTxState OpsState `json:"btctx_state"` }
BtcTxProofState : An RMQ message object bound for proofstate service
type BtccStateObj ¶
type BtccStateObj struct { BtcTxID string `json:"btctx_id"` BtcHeadHeight int64 `json:"btchead_height"` BtcHeadState AnchorOpsState `json:"btchead_state"` }
BtccStateObj : An RMQ message object issued to generate proofs after BTCC confirmation
type CalAgg ¶
type CalAgg struct { CalRoot string `json:"cal_root"` ProofData []CalProofData `json:"proofData"` }
CalAgg : An RMQ message representing an intermediate aggregation object to be fed into the Cal anchor tree
type CalProofData ¶
type CalProofData struct { AggID string `json:"agg_id"` Proof []ProofLineItem `json:"proof"` }
CalProofData : Represents a step in a cal proof
type CalState ¶
type CalState struct { CalID string `json:"cal_id"` Anchor AnchorObj `json:"anchor"` ProofData []CalProofData `json:"proofData"` }
CalState : An RMQ message confirming a CAL anchor, sent to the proof service to generate/store the proof
type CalStateObject ¶
type CalStateObject struct { AggID string `json:"agg_id"` CalId string `json:"cal_id"` CalState string `json:"cal_state"` }
CalState : cal state for proof gen
type Core ¶
type Core struct { EthAddr string CoreId sql.NullString PublicIP sql.NullString BlockNumber sql.NullInt64 }
Core : Used to represent Core info to and from postgres
type CoreAPIStatus ¶
type CoreAPIStatus struct { Version string `json:"version"` Time string `json:"time"` BaseURI string `json:"base_uri"` Jwk Jwk `json:"jwk"` Network string `json:"network"` IdentityPubkey string `json:"identity_pubkey"` LightningAddress string `json:"lightning_address"` LightningBalance struct { TotalBalance string `json:"total_balance"` ConfirmedBalance string `json:"confirmed_balance"` UnconfirmedBalance string `json:"unconfirmed_balance"` } `json:"lightning_balance"` PublicKey string `json:"public_key"` Uris []string `json:"uris"` Alias string `json:"alias"` HashPriceSatoshis int `json:"hash_price_satoshis"` TotalStakePrice int64 `json:"total_stake_price"` ValidatorStakePrice int64 `json:"validator_stake_price"` ActiveChannelsCount int `json:"num_channels_count"` NodeInfo p2p.DefaultNodeInfo `json:"node_info"` SyncInfo coretypes.SyncInfo `json:"sync_info"` ValidatorInfo coretypes.ValidatorInfo `json:"-"` }
CoreAPIStatus : status from Core's api service. Includes pubkey
type EcdsaSignature ¶
EcdsaSignature : Allows for unmarshalling an ecdsa signature
type EthConfig ¶
type EthConfig struct { EthereumURL string EthPrivateKey string TokenContractAddr string RegistryContractAddr string }
EthConfig holds contract addresses and eth node URI
type JSProof ¶
JSProof : Used to unmarshall the Javascript MerkleTools proofs. The library generates a different proof structure than the go version.
type Jwk ¶
type Jwk struct { Kty string `json:"kty"` Kid string `json:"kid"` Crv string `json:"crv"` X string `json:"x"` Y string `json:"y"` }
Jwk : holds key info for validating node requests
type LnIdentity ¶
type OpsState ¶
type OpsState struct {
Ops []ProofLineItem `json:"ops"`
}
OpsState : An RMQ message generated as part of the monitoring proof object
type ProofData ¶
type ProofData struct { ProofID string `json:"proof_id"` Hash string `json:"hash"` Proof []ProofLineItem `json:"proof"` }
ProofData : The proof data for a given hash within an aggregation
type ProofLineItem ¶
type ProofLineItem struct { Left string `json:"l,omitempty"` Right string `json:"r,omitempty"` Op string `json:"op,omitempty"` }
ProofLineItem : A step in a Chainpoint proof
type ProofState ¶
type TendermintConfig ¶
type TendermintConfig struct { TMServer string TMPort string Config *cfg.Config Logger log.Logger FilePV privval.FilePV NodeKey *p2p.NodeKey }
TendermintConfig holds connection info for RPC
type Tx ¶
type Tx struct { TxType string `json:"type"` Data string `json:"data"` Version int64 `json:"version"` Time int64 `json:"time"` CoreID string `json:"core_id"` Meta string `json:"meta,omitempty"` Sig string `json:"sig,omitempty"` }
Tx holds custom transaction data and metadata for the Chainpoint Calendar
type TxID ¶
type TxID struct { TxID string `json:"tx_id"` BlockHeight int64 `json:"block_height"` AnchorBtcAggRoot string `json:"anchor_btc_agg_root"` }
TxID : RMQ message dispatched to initiate monitoring
type TxValidation ¶
type TxValidation struct { LastJWKTxHeight int64 JWKAllowedRate RateLimit JWKSubmissions int64 LastCalTxHeight int64 CalAllowedRate RateLimit CalValidationSuccess int64 CalValidationFailures int64 LastBtcaTxHeight int64 // for anchoring Cores ConfirmedAnchors int64 FailedAnchors int64 BtcaAllowedRate RateLimit LastBtccTxHeight int64 // for Cores submitting confirmations, not anchoring Cores BtccAllowedRate RateLimit LastNISTTxHeight int64 // last "good", non-stale nist record NISTAllowedRate RateLimit LastFeeTxHeight int64 FeeAllowedRate RateLimit FeeValidationFailures int64 UnAuthValSubmissions int64 }
Holds state for validating Transactions