Namespace Libplanet
Classes
AddressExtensions
This extension class enables some convenient methods (sugar for the most part) to deal with Address.
ByteArrayExtensions
This extension class enables some convenient methods to deal with byte array.
ByteUtil
Utility methods to deal with
Hashcash
This contains a set of functions that implements Hashcash, a proof-of-work system.
HashDigestExtensions
Augments types to have some shortcut methods dealing with HashDigest<T> values.
Structs
Address
An identifier of 20 bytes (or 40 letters in hexadecimal, commonly with
a prefix 0x
) that refers to a unique account.
It is derived from the corresponding PublicKey of an account, but as a derivation loses information, it is always unidirectional.
The address derivation from a public key is as follows:
- Calculates the Keccak-256, which is a previous form of SHA-3 before NIST standardized it and does not follow FIPS-202, of the corresponding PublicKey.
- Takes only the last 20 bytes of the calculated Keccak-256 hash.
- When the address needs to be shown to end users,
displays these 20 bytes in hexadecimal, with a prefix
0x
.
Since the scheme of the address derivation and the PrivateKey/PublicKey is the same to Ethereum, Ethereum addresses can be used by Libplanet-backed games/apps too.
HashDigest<T>
A value type to represent digest bytes determined by a
T
of
Nonce
An arbitrary
Delegates
Hashcash.Stamp
A delegate to determine a consistent nonce
.
Since it is called multiple times with different
nonce
s for
proof-of-work system, the total time an implementation elapses
should not vary for different nonce
s.