Documentation
¶
Overview ¶
Copyright 2017-2018 OneLedger
Define aliases to hide Tendermint types and enhance readability of the code ¶
Copyright 2017-2018 OneLedger ¶
AN ABCi application node to process transactions from Tendermint Consensus ¶
Copyright 2017-2018 OneLedger ¶
Copyright 2017-2018 OneLedger ¶
Implement all of the query mechanics for the node and the chain ¶
Copyright 2017 - 2018 OneLedger ¶
Handle setting any options for the node.
Copyright 2017-2018 OneLedger ¶
Grab data from tendermint node
Index ¶
- Variables
- func AccountInfo(app Application, name string) interface{}
- func AccountKey(app Application, name string) interface{}
- func AddAccount(app *Application, name string, chain data.ChainType, ...)
- func AddIdentity(app *Application, name string, publicKey id.PublicKeyED25519)
- func Balance(app Application, accountKey []byte) interface{}
- func ChainAddress(chain data.ChainType) interface{}
- func CreateAccount(app Application, state *BasicState, publicKey id.PublicKeyED25519, ...)
- func CreatePaymentRequest(app Application, identities []id.Identity, quotient data.Coin, height int64) action.Transaction
- func CreateRegisterRequest(identityName string, accountKey id.AccountKey) action.Transaction
- func GetBool(boolean string) bool
- func GetChain(chainName string) data.ChainType
- func GetKeys(chain data.ChainType, name string, publicKey string, privateKey string) (id.PublicKeyED25519, id.PrivateKeyED25519)
- func GetSigners(owner []byte, application Application) []id.PublicKey
- func HandleAccountKeyQuery(app Application, arguments map[string]string) interface{}
- func HandleAccountPublicKeyQuery(app Application, arguments map[string]string) interface{}
- func HandleAccountQuery(app Application, arguments map[string]string) interface{}
- func HandleApplyValidatorQuery(application Application, arguments map[string]string) interface{}
- func HandleBalanceQuery(app Application, arguments map[string]string) interface{}
- func HandleCurrencyAddressQuery(app Application, arguments map[string]string) interface{}
- func HandleError(text string, path string, arguments map[string]string) interface{}
- func HandleIdentityQuery(app Application, arguments map[string]string) interface{}
- func HandleNodeNameQuery(app Application, arguments map[string]string) interface{}
- func HandleQuery(app Application, path string, arguments map[string]string) []byte
- func HandleRegisterIdentity(app Application, arguments map[string]string) interface{}
- func HandleSequenceNumberQuery(app Application, arguments map[string]string) interface{}
- func HandleSet(app Application, path string, arguments map[string]string) []byte
- func HandleSetAccount(app Application, arguments map[string]string) interface{}
- func HandleSignTransaction(app Application, arguments map[string]string) interface{}
- func HandleTypeError(message string) []byte
- func HandleVersionQuery(app Application, arguments map[string]string) interface{}
- func IdentityInfo(app Application, name string) interface{}
- func IsByzantine(validator types.Validator, badValidators []types.Evidence) (result bool)
- func LoadPrivValidatorFile()
- func NewBalanceFromStates(states []State) data.Balance
- func NewSDKServer(app *Application, addr string) (*sdk.Server, error)
- func ParseData(message []byte) map[string]string
- func SequenceNumber(app Application, accountKey []byte) interface{}
- func SetNodeName(app interface{})
- func SetOption(app *Application, key string, value string) bool
- func SetPaymentRecord(amount data.Coin, blockHeight int64, app Application)
- func SignTransaction(transaction action.Transaction, application Application) action.SignedTransaction
- func XRegisterLocally(app *Application, name string, scope string, chain data.ChainType, ...) bool
- type AdminParameters
- type Application
- func (app Application) BeginBlock(req RequestBeginBlock) ResponseBeginBlock
- func (app Application) CheckTx(tx []byte) ResponseCheckTx
- func (app Application) Close()
- func (app Application) Commit() ResponseCommit
- func (app Application) DeliverTx(tx []byte) ResponseDeliverTx
- func (app Application) EndBlock(req RequestEndBlock) ResponseEndBlock
- func (app Application) GetAccounts() interface{}
- func (app Application) GetAdmin() interface{}
- func (app Application) GetBalances() interface{}
- func (app Application) GetChainID() interface{}
- func (app Application) GetContract() interface{}
- func (app Application) GetEvent() interface{}
- func (app Application) GetIdentities() interface{}
- func (app Application) GetStatus() interface{}
- func (app Application) Info(req RequestInfo) ResponseInfo
- func (app Application) InitChain(req RequestInitChain) ResponseInitChain
- func (app Application) Initialize()
- func (app Application) MakePayment(req RequestBeginBlock)
- func (app Application) Query(req RequestQuery) ResponseQuery
- func (app Application) SetOption(req RequestSetOption) ResponseSetOption
- func (app Application) SetupState(stateBytes []byte)
- func (app Application) StartSDK()
- type BasicState
- type PrivValidator
- type RegisterArguments
- type RequestBeginBlock
- type RequestCheckTx
- type RequestDeliverTx
- type RequestEndBlock
- type RequestInfo
- type RequestInitChain
- type RequestQuery
- type RequestSetOption
- type ResponseBeginBlock
- type ResponseCheckTx
- type ResponseCommit
- type ResponseDeliverTx
- type ResponseEndBlock
- type ResponseInfo
- type ResponseInitChain
- type ResponseQuery
- type ResponseSetOption
- type SDKQuery
- type SDKServer
- func (server SDKServer) Block(ctx context.Context, request *pb.BlockRequest) (*pb.SDKReply, error)
- func (server SDKServer) CheckAccount(ctx context.Context, request *pb.CheckAccountRequest) (*pb.CheckAccountReply, error)
- func (server SDKServer) Register(ctx context.Context, request *pb.RegisterRequest) (*pb.RegisterReply, error)
- func (server SDKServer) Request(ctx context.Context, request *pb.SDKRequest) (*pb.SDKReply, error)
- func (server SDKServer) Send(ctx context.Context, request *pb.SendRequest) (*pb.SendReply, error)
- func (server SDKServer) Status(ctx context.Context, request *pb.StatusRequest) (*pb.StatusReply, error)
- func (server SDKServer) Tx(ctx context.Context, request *pb.TxRequest) (*pb.SDKReply, error)
- func (server SDKServer) TxSearch(ctx context.Context, request *pb.TxSearchRequest) (*pb.SDKReply, error)
- type SDKSet
- type SequenceRecord
- type State
- type TypeValue
- type ValidatorList
Constants ¶
This section is empty.
Variables ¶
var ChainId string
Functions ¶
func AccountInfo ¶
func AccountInfo(app Application, name string) interface{}
AccountInfo returns the information for a given account
func AccountKey ¶
func AccountKey(app Application, name string) interface{}
func AddAccount ¶ added in v0.7.1
func AddAccount(app *Application, name string, chain data.ChainType, publicKey id.PublicKeyED25519, privateKey id.PrivateKeyED25519, nodeAccount bool)
TODO: NodeAccount flag should not be here!!! Create a local account for this fullnode
func AddIdentity ¶ added in v0.7.1
func AddIdentity(app *Application, name string, publicKey id.PublicKeyED25519)
Broadcast an Indentity to the chain
func Balance ¶
func Balance(app Application, accountKey []byte) interface{}
func ChainAddress ¶ added in v0.7.1
func CreateAccount ¶ added in v0.7.0
func CreateAccount(app Application, state *BasicState, publicKey id.PublicKeyED25519, privateKey id.PrivateKeyED25519)
func CreatePaymentRequest ¶ added in v0.7.0
func CreatePaymentRequest(app Application, identities []id.Identity, quotient data.Coin, height int64) action.Transaction
func CreateRegisterRequest ¶ added in v0.7.1
func CreateRegisterRequest(identityName string, accountKey id.AccountKey) action.Transaction
func GetKeys ¶ added in v0.7.1
func GetKeys(chain data.ChainType, name string, publicKey string, privateKey string) (id.PublicKeyED25519, id.PrivateKeyED25519)
TODO: The datatype for Key, depends on Chain
func GetSigners ¶ added in v0.7.0
func GetSigners(owner []byte, application Application) []id.PublicKey
func HandleAccountKeyQuery ¶
func HandleAccountKeyQuery(app Application, arguments map[string]string) interface{}
Get the account information for a given user
func HandleAccountPublicKeyQuery ¶ added in v0.7.0
func HandleAccountPublicKeyQuery(app Application, arguments map[string]string) interface{}
func HandleAccountQuery ¶
func HandleAccountQuery(app Application, arguments map[string]string) interface{}
Get the account information for a given user
func HandleApplyValidatorQuery ¶ added in v0.7.1
func HandleApplyValidatorQuery(application Application, arguments map[string]string) interface{}
func HandleBalanceQuery ¶
func HandleBalanceQuery(app Application, arguments map[string]string) interface{}
Get the account information for a given user
func HandleCurrencyAddressQuery ¶ added in v0.7.1
func HandleCurrencyAddressQuery(app Application, arguments map[string]string) interface{}
func HandleError ¶
Return a nicely formatted error message
func HandleIdentityQuery ¶
func HandleIdentityQuery(app Application, arguments map[string]string) interface{}
Get the account information for a given user
func HandleNodeNameQuery ¶ added in v0.6.2
func HandleNodeNameQuery(app Application, arguments map[string]string) interface{}
func HandleQuery ¶
func HandleQuery(app Application, path string, arguments map[string]string) []byte
Top-level list of all query types
func HandleRegisterIdentity ¶ added in v0.7.1
func HandleRegisterIdentity(app Application, arguments map[string]string) interface{}
func HandleSequenceNumberQuery ¶ added in v0.7.1
func HandleSequenceNumberQuery(app Application, arguments map[string]string) interface{}
Get the account information for a given user
func HandleSet ¶ added in v0.7.1
func HandleSet(app Application, path string, arguments map[string]string) []byte
func HandleSetAccount ¶ added in v0.7.1
func HandleSetAccount(app Application, arguments map[string]string) interface{}
TODO: Pass in App pointer?
func HandleSignTransaction ¶ added in v0.7.0
func HandleSignTransaction(app Application, arguments map[string]string) interface{}
func HandleTypeError ¶ added in v0.7.1
func HandleVersionQuery ¶
func HandleVersionQuery(app Application, arguments map[string]string) interface{}
func IdentityInfo ¶
func IdentityInfo(app Application, name string) interface{}
func IsByzantine ¶ added in v0.7.0
func LoadPrivValidatorFile ¶ added in v0.7.0
func LoadPrivValidatorFile()
Load the Priv Validator file directly from the associated Tendermint node
func NewBalanceFromStates ¶ added in v0.7.1
func NewSDKServer ¶ added in v0.7.0
func NewSDKServer(app *Application, addr string) (*sdk.Server, error)
func SequenceNumber ¶ added in v0.7.1
func SequenceNumber(app Application, accountKey []byte) interface{}
func SetNodeName ¶ added in v0.7.0
func SetNodeName(app interface{})
The args write Node name directly to the context, but we can check to see if that is persistent, or matches the last entry
func SetOption ¶
func SetOption(app *Application, key string, value string) bool
TODO: This probably doesn't work. It was replaced by the SDK direct connection Handle a SetOption ABCi reqeust
func SetPaymentRecord ¶ added in v0.7.1
func SetPaymentRecord(amount data.Coin, blockHeight int64, app Application)
func SignTransaction ¶ added in v0.7.0
func SignTransaction(transaction action.Transaction, application Application) action.SignedTransaction
func XRegisterLocally ¶ added in v0.7.1
func XRegisterLocally(app *Application, name string, scope string, chain data.ChainType, publicKey id.PublicKeyED25519, privateKey id.PrivateKeyED25519) bool
Register Identities and Accounts from the user.
Types ¶
type AdminParameters ¶ added in v0.6.2
type Application ¶
type Application struct {
types.BaseApplication
// Global Chain state (data is identical on all nodes in the chain)
Balances *data.ChainState // unspent transction output (for each type of coin)
Identities *id.Identities // Keep a higher-level identity for a given user
// Local Node state (data is different for each node)
Accounts *id.Accounts // Keep all of the user accounts locally for their node (identity management)
Admin data.Datastore // any administrative parameters
Event data.Datastore // Event for any action that need to be tracked
Status data.Datastore // current state of any composite transactions (pending, verified, etc.)
Contract data.Datastore // contract for reuse.
Sequence data.Datastore // Store sequence number per account
SDK common.Service
// Tendermint's last block information
LastHeader types.Header // Tendermint last header info
Validators ValidatorList
}
ApplicationContext keeps all of the upper level global values.
func NewApplication ¶
func NewApplication() *Application
NewApplicationContext initializes a new application, reconnects to the databases.
func (Application) BeginBlock ¶
func (app Application) BeginBlock(req RequestBeginBlock) ResponseBeginBlock
BeginBlock is called when a new block is started
func (Application) CheckTx ¶
func (app Application) CheckTx(tx []byte) ResponseCheckTx
CheckTx tests to see if a transaction is valid
func (Application) Close ¶ added in v0.7.0
func (app Application) Close()
Close closes every datastore in app
func (Application) Commit ¶
func (app Application) Commit() ResponseCommit
Commit tells the app to make everything persistent
func (Application) DeliverTx ¶
func (app Application) DeliverTx(tx []byte) ResponseDeliverTx
DeliverTx accepts a transaction and updates all relevant data
func (Application) EndBlock ¶
func (app Application) EndBlock(req RequestEndBlock) ResponseEndBlock
EndBlock is called at the end of all of the transactions
func (Application) GetAccounts ¶
func (app Application) GetAccounts() interface{}
Access to the local persistent databases
func (Application) GetAdmin ¶
func (app Application) GetAdmin() interface{}
Access to the local persistent databases
func (Application) GetBalances ¶ added in v0.7.1
func (app Application) GetBalances() interface{}
Access to the local persistent databases
func (Application) GetChainID ¶ added in v0.5.0
func (app Application) GetChainID() interface{}
func (Application) GetContract ¶ added in v0.5.2
func (app Application) GetContract() interface{}
func (Application) GetEvent ¶ added in v0.5.2
func (app Application) GetEvent() interface{}
func (Application) GetIdentities ¶
func (app Application) GetIdentities() interface{}
Access to the local persistent databases
func (Application) GetStatus ¶
func (app Application) GetStatus() interface{}
Access to the local persistent databases
func (Application) Info ¶
func (app Application) Info(req RequestInfo) ResponseInfo
Info returns the current block information
func (Application) InitChain ¶
func (app Application) InitChain(req RequestInitChain) ResponseInitChain
InitChain is called when a new chain is getting created
func (Application) Initialize ¶
func (app Application) Initialize()
Initial the state of the application from persistent data
func (Application) MakePayment ¶ added in v0.7.0
func (app Application) MakePayment(req RequestBeginBlock)
EndBlock is called at the end of all of the transactions
func (Application) Query ¶
func (app Application) Query(req RequestQuery) ResponseQuery
Query comes from tendermint node, and returns data and/or a proof
func (Application) SetOption ¶
func (app Application) SetOption(req RequestSetOption) ResponseSetOption
SetOption changes the underlying options for the ABCi app
func (Application) SetupState ¶
func (app Application) SetupState(stateBytes []byte)
Use the Genesis block to initialze the system
func (Application) StartSDK ¶ added in v0.7.1
func (app Application) StartSDK()
Start up a local server for direct connections from clients
type BasicState ¶
type PrivValidator ¶ added in v0.7.0
type PrivValidator struct {
Address string `json:"address"`
PubKey TypeValue `json:"pub_key"`
LastHeight int64 `json:"last_height"`
LastRound int64 `json:"last_round"`
LastStep int64 `json:"last_step"`
LastSignature string `json:"last_signature"`
LastSignBytes string `json:"last_signbytes"`
PrivKey TypeValue `json:"priv_key"`
}
type RegisterArguments ¶
Arguments for registration
type RequestBeginBlock ¶
type RequestBeginBlock = types.RequestBeginBlock
type RequestCheckTx ¶
type RequestCheckTx = types.RequestCheckTx
type RequestDeliverTx ¶
type RequestDeliverTx = types.RequestDeliverTx
type RequestEndBlock ¶
type RequestEndBlock = types.RequestEndBlock
type RequestInfo ¶
type RequestInfo = types.RequestInfo
type RequestInitChain ¶
type RequestInitChain = types.RequestInitChain
type RequestQuery ¶
type RequestQuery = types.RequestQuery
type RequestSetOption ¶
type RequestSetOption = types.RequestSetOption
type ResponseBeginBlock ¶
type ResponseBeginBlock = types.ResponseBeginBlock
type ResponseCheckTx ¶
type ResponseCheckTx = types.ResponseCheckTx
type ResponseCommit ¶
type ResponseCommit = types.ResponseCommit
type ResponseDeliverTx ¶
type ResponseDeliverTx = types.ResponseDeliverTx
type ResponseEndBlock ¶
type ResponseEndBlock = types.ResponseEndBlock
type ResponseInfo ¶
type ResponseInfo = types.ResponseInfo
type ResponseInitChain ¶
type ResponseInitChain = types.ResponseInitChain
type ResponseQuery ¶
type ResponseQuery = types.ResponseQuery
type ResponseSetOption ¶
type ResponseSetOption = types.ResponseSetOption
type SDKServer ¶ added in v0.7.0
type SDKServer struct {
App *Application
}
func (SDKServer) CheckAccount ¶ added in v0.7.0
func (server SDKServer) CheckAccount(ctx context.Context, request *pb.CheckAccountRequest) (*pb.CheckAccountReply, error)
CheckAccount returns the balance of a given account ID
func (SDKServer) Register ¶ added in v0.7.0
func (server SDKServer) Register(ctx context.Context, request *pb.RegisterRequest) (*pb.RegisterReply, error)
Given the name of the identity and the chain type, generate new keys and broadcast this new identity
func (SDKServer) Status ¶ added in v0.7.0
func (server SDKServer) Status(ctx context.Context, request *pb.StatusRequest) (*pb.StatusReply, error)
type SequenceRecord ¶ added in v0.7.1
type SequenceRecord struct {
Sequence int64
}
func NextSequence ¶ added in v0.7.1
func NextSequence(app *Application, accountkey id.AccountKey) SequenceRecord
type ValidatorList ¶ added in v0.7.1
type ValidatorList struct {
Signers []types.SigningValidator
Byzantine []types.Evidence
}
func NewValidatorList ¶ added in v0.7.1
func NewValidatorList() *ValidatorList
func (*ValidatorList) FindGood ¶ added in v0.7.1
func (list *ValidatorList) FindGood(app Application) []id.Identity
func (*ValidatorList) FindSelectedValidator ¶ added in v0.7.1
func (list *ValidatorList) FindSelectedValidator(app Application, hash []byte) id.Identity
func (*ValidatorList) Set ¶ added in v0.7.1
func (list *ValidatorList) Set(validators []types.SigningValidator, badValidators []types.Evidence)