• Design
  • API Reference
  • Changelog
  • Contribute
Show / Hide Table of Contents
  • Libplanet
    • Address
    • AddressExtension
    • ByteUtil
    • Hashcash
    • Hashcash.Stamp
    • HashDigest<T>
    • HashDigestExtension
    • Nonce
  • Libplanet.Action
    • AccountStateGetter
    • ActionEvaluation
    • ActionTypeAttribute
    • AddressStateMap
    • IAccountStateDelta
    • IAction
    • IActionContext
    • IRandom
    • MissingActionTypeException
    • PolymorphicAction<T>
  • Libplanet.Blockchain
    • BlockChain<T>
    • IncompleteBlockStatesException
    • MineBlockEventArgs<T>
  • Libplanet.Blockchain.Policies
    • BlockPolicy<T>
    • BlockPolicyExtension
    • IBlockPolicy<T>
  • Libplanet.Blocks
    • Block<T>
    • InvalidBlockDifficultyException
    • InvalidBlockException
    • InvalidBlockHashException
    • InvalidBlockIndexException
    • InvalidBlockNonceException
    • InvalidBlockPreviousHashException
    • InvalidBlockTimestampException
  • Libplanet.Crypto
    • InvalidCiphertextException
    • PrivateKey
    • PublicKey
    • SymmetricKey
  • Libplanet.Net
    • ActionExecutionState
    • BlockDownloadState
    • BlockStateDownloadState
    • DifferentAppProtocolVersionException
    • DifferentProtocolVersionEventArgs
    • IceServer
    • IceServerException
    • InvalidMessageException
    • NoSwarmContextException
    • Peer
    • PeerNotFoundException
    • PeerSetDelta
    • PreloadState
    • StateReferenceDownloadState
    • Swarm<T>
    • SwarmException
  • Libplanet.Serialization
    • BencodexFormatter<T>
    • SerializationInfoExtension
  • Libplanet.Store
    • BaseIndex<TKey, TVal>
    • BaseStore
    • BlockSet<T>
    • IStore
    • LiteDBStore
    • NamespaceNotFoundException
    • StoreExtension
    • TransactionSet<T>
  • Libplanet.Tx
    • InvalidTxException
    • InvalidTxIdException
    • InvalidTxNonceException
    • InvalidTxPublicKeyException
    • InvalidTxSignatureException
    • InvalidTxUpdatedAddressesException
    • Transaction<T>
    • TxId
    • UnexpectedlyTerminatedTxRehearsalException

Interface IStore

Namespace: Libplanet.Store
Assembly: Libplanet.dll
Syntax
public interface IStore

Methods

| Improve this Doc View Source

AppendIndex(String, HashDigest<SHA256>)

Declaration
long AppendIndex(string namespace, HashDigest<SHA256> hash)
Parameters
Type Name Description
String namespace
HashDigest<SHA256> hash
Returns
Type Description
Int64
| Improve this Doc View Source

CountBlocks()

Declaration
long CountBlocks()
Returns
Type Description
Int64
| Improve this Doc View Source

CountIndex(String)

Declaration
long CountIndex(string namespace)
Parameters
Type Name Description
String namespace
Returns
Type Description
Int64
| Improve this Doc View Source

CountTransactions()

Declaration
long CountTransactions()
Returns
Type Description
Int64
| Improve this Doc View Source

DeleteBlock(HashDigest<SHA256>)

Declaration
bool DeleteBlock(HashDigest<SHA256> blockHash)
Parameters
Type Name Description
HashDigest<SHA256> blockHash
Returns
Type Description
Boolean
| Improve this Doc View Source

DeleteIndex(String, HashDigest<SHA256>)

Declaration
bool DeleteIndex(string namespace, HashDigest<SHA256> hash)
Parameters
Type Name Description
String namespace
HashDigest<SHA256> hash
Returns
Type Description
Boolean
| Improve this Doc View Source

DeleteNamespace(String)

Deletes an index, tx nonces, and state references in the given namespace. It also deletes namespace itself. If there is no such namespace it does nothing.

Declaration
void DeleteNamespace(string namespace)
Parameters
Type Name Description
String namespace

The namespace to delete.

Remarks

This does not delete blocks or transactions that belong to the index of the namespace, but only the index, tx nonces, and state references.

| Improve this Doc View Source

DeleteTransaction(TxId)

Declaration
bool DeleteTransaction(TxId txid)
Parameters
Type Name Description
TxId txid
Returns
Type Description
Boolean
| Improve this Doc View Source

ForkStateReferences<T>(String, String, Block<T>, IImmutableSet<Address>)

Forks state references, which are Hashes that have the state of the Addresses, from sourceNamespace to destinationNamespace.

This method copies state references from sourceNamespace to destinationNamespace and strips addressesToStrip of state references after branchPoint.

Declaration
void ForkStateReferences<T>(string sourceNamespace, string destinationNamespace, Block<T> branchPoint, IImmutableSet<Address> addressesToStrip)

    where T : IAction, new()
Parameters
Type Name Description
String sourceNamespace

The namespace of state references to fork.

String destinationNamespace

The namespace of destination state references.

Block<T> branchPoint

The branch point Block<T> to fork.

IImmutableSet<Address> addressesToStrip

The set of Addresses to strip Hash after forking.

Type Parameters
Name Description
T

An IAction class used with branchPoint.

Exceptions
Type Condition
NamespaceNotFoundException

Thrown when the given sourceNamespace does not exist.

See Also
IterateStateReferences(String, Address)
StoreStateReference<T>(String, IImmutableSet<Address>, Block<T>)
| Improve this Doc View Source

GetBlock<T>(HashDigest<SHA256>)

Gets the corresponding stored Block<T> to the given blockHash.

Declaration
Block<T> GetBlock<T>(HashDigest<SHA256> blockHash)

    where T : IAction, new()
Parameters
Type Name Description
HashDigest<SHA256> blockHash

Hash to find.

Returns
Type Description
Block<T>

A found block, or null if no block having such blockHash is stored.

Type Parameters
Name Description
T

An IAction type. It should match to Block<T>'s type parameter.

| Improve this Doc View Source

GetBlockIndex(HashDigest<SHA256>)

Gets a stored block's Index by its Hash.

Declaration
long? GetBlockIndex(HashDigest<SHA256> blockHash)
Parameters
Type Name Description
HashDigest<SHA256> blockHash

Hash to find.

Returns
Type Description
Nullable<Int64>

A found block's Index, or null if no block having such blockHash is stored.

Remarks

It provides only limited information, but can be called without any type parameter unlike GetBlock<T>(HashDigest<SHA256>).

| Improve this Doc View Source

GetBlockStates(HashDigest<SHA256>)

Gets the states updated by actions in the inquired block.

Declaration
AddressStateMap GetBlockStates(HashDigest<SHA256> blockHash)
Parameters
Type Name Description
HashDigest<SHA256> blockHash

Hash to query.

Returns
Type Description
AddressStateMap

The states updated by actions in the inquired block. If actions definitely do not update any addresses it returns an empty map. If there is no record for the inquired block (because actions in it have never been evaluated yet) it returns null instead.

Remarks

It does not return all states built up from the genesis block nor delta, but only dirty states by actions the inquired block.

For example, if actions in the genesis block do a++; b++, /// and actions in the second block do b++; c++, this method /// for the second block returns b = 2; c = 1 (dirty), not a = 1; b = 2; c = 1 (all states) nor b = 1; c = 1 (delta).

| Improve this Doc View Source

GetCanonicalNamespace()

Gets the current canonical namespace.

Declaration
string GetCanonicalNamespace()
Returns
Type Description
String

The current canonical namespace. Maybe null.

| Improve this Doc View Source

GetTransaction<T>(TxId)

Declaration
Transaction<T> GetTransaction<T>(TxId txid)

    where T : IAction, new()
Parameters
Type Name Description
TxId txid
Returns
Type Description
Transaction<T>
Type Parameters
Name Description
T
| Improve this Doc View Source

GetTxNonce(String, Address)

Gets Transaction<T> nonce of the address.

Declaration
long GetTxNonce(string namespace, Address address)
Parameters
Type Name Description
String namespace

The namespace to get Transaction<T> nonce.

Address address

The Address to get Transaction<T> nonce.

Returns
Type Description
Int64

A Transaction<T> nonce. If there is no previous Transaction<T>, return 0.

See Also
IncreaseTxNonce(String, Address, Int64)
| Improve this Doc View Source

IncreaseTxNonce(String, Address, Int64)

Increases (or decreases if a negative delta is given) the tx nonce counter for signer.

Declaration
void IncreaseTxNonce(string namespace, Address signer, long delta = 1L)
Parameters
Type Name Description
String namespace

The namespace to increase Transaction<T> nonce.

Address signer

The address of the account to increase tx nonce.

Int64 delta

How many to increase the counter. A negative number decreases the counter. 1 by default.

See Also
GetTxNonce(String, Address)
| Improve this Doc View Source

IndexBlockHash(String, Int64)

Declaration
HashDigest<SHA256>? IndexBlockHash(string namespace, long index)
Parameters
Type Name Description
String namespace
Int64 index
Returns
Type Description
Nullable<HashDigest<SHA256>>
| Improve this Doc View Source

IterateBlockHashes()

Declaration
IEnumerable<HashDigest<SHA256>> IterateBlockHashes()
Returns
Type Description
IEnumerable<HashDigest<SHA256>>
| Improve this Doc View Source

IterateIndex(String, Int32, Nullable<Int32>)

Lists all block hashes in the .

Declaration
IEnumerable<HashDigest<SHA256>> IterateIndex(string namespace, int offset = 0, int? limit = default(int? ))
Parameters
Type Name Description
String namespace

The namespace of the index that contains block hashes to iterate.

Int32 offset

The starting point to return block hashes.

Nullable<Int32> limit

The maximum number of block hashes to get.

Returns
Type Description
IEnumerable<HashDigest<SHA256>>

Block hashes in the index of the namespace, in ascending order; the genesis block goes first, and the tip block goes last.

| Improve this Doc View Source

IterateStagedTransactionIds(Boolean)

Iterates staged TxIds.

Declaration
IEnumerable<TxId> IterateStagedTransactionIds(bool toBroadcast = false)
Parameters
Type Name Description
Boolean toBroadcast

Whether to iterate only the TxIds set to broadcast.

Returns
Type Description
IEnumerable<TxId>

Staged TxIds.

| Improve this Doc View Source

IterateStateReferences(String, Address)

Gets pairs of a state reference and a corresponding Index of the requested address in the specified namespace.

Declaration
IEnumerable<Tuple<HashDigest<SHA256>, long>> IterateStateReferences(string namespace, Address address)
Parameters
Type Name Description
String namespace

The chain namespace.

Address address

The Address to get state references.

Returns
Type Description
IEnumerable<Tuple<HashDigest<SHA256>, Int64>>

Ordered pairs of a state reference and a corresponding Index. The highest index (i.e., the closest to the tip) goes first and the lowest index (i.e., the closest to the genesis) goes last.

See Also
StoreStateReference<T>(String, IImmutableSet<Address>, Block<T>)
| Improve this Doc View Source

IterateTransactionIds()

Declaration
IEnumerable<TxId> IterateTransactionIds()
Returns
Type Description
IEnumerable<TxId>
| Improve this Doc View Source

ListAddresses(String)

Lists all addresses that have ever had states.

Declaration
IEnumerable<Address> ListAddresses(string namespace)
Parameters
Type Name Description
String namespace

The namespace to list addresses.

Returns
Type Description
IEnumerable<Address>

All addresses in an arbitrary order. The order might be vary for each call.

| Improve this Doc View Source

ListNamespaces()

Lists existing namespaces.

Declaration
IEnumerable<string> ListNamespaces()
Returns
Type Description
IEnumerable<String>

Existing namespaces.

| Improve this Doc View Source

ListTxNonces(String)

Lists all Addresses that have ever signed Transaction<T>, and their corresponding Transaction<T> nonces.

Declaration
IEnumerable<KeyValuePair<Address, long>> ListTxNonces(string namespace)
Parameters
Type Name Description
String namespace

The namespace to list Addresses and their Transaction<T> nonces.

Returns
Type Description
IEnumerable<KeyValuePair<Address, Int64>>

Pairs of an Address and its tx nonce. All nonces are greater than 0. (If there are underlying entries having zero nonces these must be hidden.)

See Also
GetTxNonce(String, Address)
| Improve this Doc View Source

PutBlock<T>(Block<T>)

Puts the given block in to the store.

Declaration
void PutBlock<T>(Block<T> block)

    where T : IAction, new()
Parameters
Type Name Description
Block<T> block

A Block<T> to put into the store.

Type Parameters
Name Description
T

An IAction class used with block.

| Improve this Doc View Source

PutTransaction<T>(Transaction<T>)

Puts a given Transaction<T> to the store. If the same transaction already exists in the store it does nothing.

Declaration
void PutTransaction<T>(Transaction<T> tx)

    where T : IAction, new()
Parameters
Type Name Description
Transaction<T> tx

A transaction to put into the store.

Type Parameters
Name Description
T

An IAction type. It should match to Transaction<T>'s type parameter.

| Improve this Doc View Source

SetBlockStates(HashDigest<SHA256>, AddressStateMap)

Declaration
void SetBlockStates(HashDigest<SHA256> blockHash, AddressStateMap states)
Parameters
Type Name Description
HashDigest<SHA256> blockHash
AddressStateMap states
| Improve this Doc View Source

SetCanonicalNamespace(String)

Set canonical namespace.

Declaration
void SetCanonicalNamespace(string namespace)
Parameters
Type Name Description
String namespace

A new canonical namespace. Cannot be null.

Exceptions
Type Condition
ArgumentNullException

Thrown when namespace is null.

| Improve this Doc View Source

StageTransactionIds(IDictionary<TxId, Boolean>)

Adds TxIds to the pending list so that a next Block<T> to be mined contains the corresponding Transaction<T>s.

Declaration
void StageTransactionIds(IDictionary<TxId, bool> txids)
Parameters
Type Name Description
IDictionary<TxId, Boolean> txids

TxIds to add to pending list. Keys are TxIds and values are whether to broadcast.

| Improve this Doc View Source

StoreStateReference<T>(String, IImmutableSet<Address>, Block<T>)

Stores a state reference, which is a Hash that has the state of the Address for each updated Addresses by the Transaction<T>s in the block.

Declaration
void StoreStateReference<T>(string namespace, IImmutableSet<Address> addresses, Block<T> block)

    where T : IAction, new()
Parameters
Type Name Description
String namespace

The namespace to store a state reference.

IImmutableSet<Address> addresses

The Addresses to store state reference.

Block<T> block

The Block<T> which has the state of the Address.

Type Parameters
Name Description
T

An IAction class used with block.

Remarks

State reference must be stored in the same order as the blocks. For now, it is assumed that this is only called by Append(Block<T>) method.

See Also
IterateStateReferences(String, Address)
| Improve this Doc View Source

UnstageTransactionIds(ISet<TxId>)

Declaration
void UnstageTransactionIds(ISet<TxId> txids)
Parameters
Type Name Description
ISet<TxId> txids

Extension Methods

StoreExtension.LookupStateReference<T>(IStore, String, Address, Block<T>)
StoreExtension.ListAllStateReferences(IStore, String, Nullable<HashDigest<SHA256>>, Nullable<HashDigest<SHA256>>)
  • Improve this Doc
  • View Source
Back to top Copyright © 2019 Planetarium
Generated by DocFX