Implements the Hedera cryptocurrency, consensus, smart contract, and file services on the Platform.
Each node serves a gRPC API defined by the *.proto files in the
hapi-proto
. This
API consists of two types of operations:
- Transactions - requests to mutate the state of the network; for example, to transfer cryptocurrency between two accounts.
- Queries - requests to get information on the current state of the network; for example, to get the contents of a file.
The network state consists of entities---accounts, topics, contracts, and files---that are controlled by zero or more Ed25519/ECDSA(secp256k1) keypairs arranged in a hierarchy called a Hedera key. (An entity with an empty key is immutable.) Mutable entities can only be changed by transactions that are signed by the private keys of a sufficient subset of the Ed25519/ECDSA(secp256k1) keypairs in their Hedera key.
For all transactions and most queries, there is a fee that
must be paid in the network cryptocurrency denomination hbar (ℏ). In the
case of a transaction, the network charges the fee to the payer account
originating the transaction. In the case of a non-free query, the request
must include a CryptoTransfer
transaction in its header which
compensates the receiving node for answering the query.
See the deprecations.md for how to understand the use of deprecated protobuf elements in the Java code.