Apache Tuweni is a set of libraries and other tools to aid development of blockchain and other decentralized software in Java and other JVM languages. It includes a low-level bytes library, serialization and deserialization codecs (e.g. RLP), various cryptography functions and primitives, and lots of other helpful utilities.

All Types

org.apache.tuweni.scuttlebutt.lib.model.query.AboutQuery

Query to request details of the server

org.apache.tuweni.scuttlebutt.lib.model.query.AboutQueryResponse

A response to querying for the profile details of a user.

org.apache.tuweni.bytes.AbstractBytes

An abstract Bytes value that provides implementations of #equals(Object), #hashCode() and #toString().

org.apache.tuweni.eth.AccountState

State of an account as stored on chain.

org.apache.tuweni.eth.Address

An Ethereum account address.

org.apache.tuweni.devp2p.v5.encrypt.AES128GCM

Util dedicated for AES-GCM encoding with key size equal 16 bytes

org.apache.tuweni.crypto.sodium.AES256GCM

Authenticated Encryption with Additional Data using AES-GCM.

org.apache.tuweni.crypto.sodium.Allocated

Allocated objects track allocation of memory using Sodium.

org.apache.tuweni.ethclient.AppOptions
(extensions in package org.apache.tuweni.concurrent.coroutines)
org.apache.tuweni.concurrent.AsyncCompletion
org.apache.tuweni.concurrent.AsyncCompletion

A completion that will be complete at a future time.

org.apache.tuweni.trie.AsyncMerkleStorage

A MerkleStorage implementation using AsyncResult's.

(extensions in package org.apache.tuweni.concurrent.coroutines)
org.apache.tuweni.concurrent.AsyncResult
org.apache.tuweni.concurrent.AsyncResult

A result that will be available at a future time.

org.apache.tuweni.crypto.sodium.Auth

Secret-key authentication.

org.apache.tuweni.scuttlebutt.lib.model.Author

A post author

org.apache.tuweni.io.Base32

Utility methods for encoding and decoding base32 strings.

org.apache.tuweni.io.Base58

Utility methods for encoding and decoding base58 strings.

org.apache.tuweni.io.Base64

Utility methods for encoding and decoding base64 strings.

org.apache.tuweni.io.Base64URLSafe

Utility methods for encoding and decoding base64 URL safe strings.

org.apache.tuweni.units.bigints.BaseUInt256Value

Base class for UInt256Value.

org.apache.tuweni.units.bigints.BaseUInt32Value

Base class for UInt32Value.

org.apache.tuweni.units.bigints.BaseUInt384Value

Base class for UInt384Value.

org.apache.tuweni.units.bigints.BaseUInt64Value

Base class for UInt64Value.

org.apache.tuweni.eth.Block

An Ethereum block.

org.apache.tuweni.eth.BlockBody

An Ethereum block body.

org.apache.tuweni.eth.repository.BlockchainIndex

A Lucene-backed indexer capable of indexing blocks and block headers.

org.apache.tuweni.eth.repository.BlockchainIndexReader

Reader of a blockchain index.

org.apache.tuweni.eth.repository.BlockchainIndexWriter

Indexer for blockchain elements.

org.apache.tuweni.devp2p.eth.BlockchainInformation

Blockchain information to be shared over the network with peers

org.apache.tuweni.eth.repository.BlockchainRepository

Repository housing blockchain information.

org.apache.tuweni.eth.BlockHeader

An Ethereum block header.

org.apache.tuweni.eth.repository.BlockHeaderFields

Block header index fields.

org.apache.tuweni.ethstats.BlockStats

Block statistics reported to ethnetstats.

org.apache.tuweni.crypto.mikuli.BLS12381

This Boneh-Lynn-Shacham (BLS) signature implementation is constructed from a pairing friendly elliptic curve, the BLS12-381 curve. It uses parameters as defined in https://z.cash/blog/new-snark-curve and the points in groups G1 and G2 are defined https://github.com/zkcrypto/pairing/blob/master/src/bls12_381/README.md

org.apache.tuweni.junit.BouncyCastleExtension

A junit5 extension, that installs a BouncyCastle security provider.

org.apache.tuweni.crypto.sodium.Box

Public-key authenticated encryption.

(extensions in package org.apache.tuweni.kademlia)
kotlin.ByteArray
org.apache.tuweni.bytes.Bytes

A value made of bytes.

org.apache.tuweni.bytes.Bytes32

A Bytes value that is guaranteed to contain exactly 32 bytes.

org.apache.tuweni.bytes.Bytes48

A Bytes value that is guaranteed to contain exactly 48 bytes.

org.apache.tuweni.evm.CallKind

Types of EVM calls

org.apache.tuweni.scuttlebutt.handshake.vertx.ClientHandler

Handler managing a stream over SecureScuttlebutt originating from the Vert.x client

org.apache.tuweni.scuttlebutt.handshake.vertx.ClientHandlerFactory

Factory creating stream handlers, managing client-side connections.

org.apache.tuweni.jsonrpc.ClientRequestException

Exception thrown when a JSON-RPC request is denied.

org.apache.tuweni.trie.CompactEncoding

Compact (Hex-prefix) encoding and decoding.

org.apache.tuweni.concurrent.CompletableAsyncCompletion

An AsyncCompletion that can later be completed successfully or with a provided exception.

org.apache.tuweni.concurrent.CompletableAsyncResult

An AsyncResult that can be later completed successfully with a provided value, or completed with an exception.

org.apache.tuweni.crypto.sodium.Concatenate

Concatenate elements allocated to Sodium memory.

org.apache.tuweni.config.Configuration

Represents collection of configuration properties, optionally validated against a schema.

org.apache.tuweni.config.ConfigurationError

Provides details regarding an error in the configuration.

org.apache.tuweni.config.ConfigurationErrors

Factory methods for collections of ConfigurationError.

org.apache.tuweni.ethclientui.ConfigurationService
org.apache.tuweni.config.ConfigurationValidator

A validator for a configuration.

org.apache.tuweni.peer.repository.Connection
org.apache.tuweni.scuttlebutt.rpc.mux.exceptions.ConnectionClosedException
(extensions in package org.apache.tuweni.concurrent.coroutines)
kotlinx.coroutines.CoroutineScope
org.apache.tuweni.scuttlebutt.lib.model.CouldNotSerializeException
org.apache.tuweni.ethclient.DataStoreConfiguration
org.apache.tuweni.rlpx.wire.DefaultWireConnection

A stateful connection between two peers under the Devp2p wire protocol.

(extensions in package org.apache.tuweni.concurrent.coroutines)
kotlinx.coroutines.Deferred
org.apache.tuweni.bytes.DelegatingBytes

A class that holds and delegates all operations to its inner bytes field.

org.apache.tuweni.bytes.DelegatingBytes32

A class that holds and delegates all operations to its inner bytes field.

org.apache.tuweni.bytes.DelegatingBytes48

A class that holds and delegates all operations to its inner bytes field.

org.apache.tuweni.crypto.sodium.DetachedEncryptionResult

The result from a detached encryption.

org.apache.tuweni.crypto.sodium.DiffieHelman

Sodium provides an API to perform scalar multiplication of elliptic curve points.

org.apache.tuweni.rlpx.wire.DisconnectReason

Enumeration of all reasons disconnect may happen.

org.apache.tuweni.ethclient.DiscoveryPeerRepository
org.apache.tuweni.devp2p.DiscoveryService

An Ethereum ÐΞVp2p discovery service.

org.apache.tuweni.devp2p.v5.DiscoveryService

A creator of discovery service objects.

org.apache.tuweni.devp2p.v5.DiscoveryV5Service

Service executes network discovery, according to discv5 specification (https://github.com/ethereum/devp2p/blob/master/discv5/discv5.md)

org.apache.tuweni.ethclient.DNSClient

Wrapper for running a DNS daemon with configuration.

org.apache.tuweni.ethclient.DNSConfiguration
org.apache.tuweni.ethclient.DNSConfigurationImpl
org.apache.tuweni.discovery.DNSDaemon

Resolves DNS records over time, refreshing records.

org.apache.tuweni.discovery.DNSDaemonListener

Callback listening to updates of the DNS records.

org.apache.tuweni.discovery.DNSEntry

Intermediate format to write DNS entries

org.apache.tuweni.discovery.DNSResolver

Resolves a set of ENR nodes from a host name.

org.apache.tuweni.discovery.DNSVisitor

Reads ENR (Ethereum Node Records) entries passed in from DNS.

org.apache.tuweni.config.DocumentPosition

A position in an input document.

org.apache.tuweni.rlp.EndOfRLPException

Indicates the end of the RLP source has been reached unexpectedly.

org.apache.tuweni.ssz.EndOfSSZException

Indicates the end of the SSZ source has been reached unexpectedly.

org.apache.tuweni.devp2p.Endpoint

An Ethereum node endpoint.

org.apache.tuweni.devp2p.EnodeUriComponents

The components of an enode URI.

org.apache.tuweni.devp2p.v5.ENRStorage

Storage of node records

org.apache.tuweni.kv.EntityManagerKeyValueStore

JPA-backed key value store.

org.apache.tuweni.devp2p.EphemeralPeerRepository

An in-memory peer repository.

org.apache.tuweni.plumtree.EphemeralPeerRepository

In-memory peer repository.

org.apache.tuweni.devp2p.eth.EthClient

Client of the ETH subprotocol, allowing to request block and node data

org.apache.tuweni.devp2p.eth.EthController

Controller managing the state of the ETH or LES subprotocol handlers.

org.apache.tuweni.ethclient.EthereumClient

Top-level class to run an Ethereum client.

org.apache.tuweni.ethclient.EthereumClientConfig

Configuration of EthereumClient. Can be provided via file or over the wire.

org.apache.tuweni.rlpx.EthereumIESEncryptionEngine

Support class for constructing integrated encryption ciphers for doing basic message exchanges on top of key agreement ciphers. Follows the description given in IEEE Std 1363a.

org.apache.tuweni.devp2p.EthereumNodeRecord

Ethereum Node Record (ENR) as described in EIP-778.

org.apache.tuweni.evm.EthereumVirtualMachine

An Ethereum Virtual Machine.

org.apache.tuweni.ethash.EthHash

Implementation of EthHash utilities for Ethereum mining algorithms.

org.apache.tuweni.eth.EthJsonModule
org.apache.tuweni.devp2p.eth.EthRequestsManager

Requests manager used to request and check requests of block data

org.apache.tuweni.ethstats.EthStatsReporter

ETHNetStats reporting service.

org.apache.tuweni.devp2p.eth.EthSubprotocol
org.apache.tuweni.evm.EVMExecutionStatusCode

EVM execution status codes

org.apache.tuweni.evm.EVMResult

Result of EVM execution

org.apache.tuweni.concurrent.ExpiringMap

A concurrent hash map that stores values along with an expiry. Values are stored in the map until their expiry is reached, after which they will no longer be available and will appear as if removed. The actual removal is done lazily whenever the map is accessed, or when the #purgeExpired() method is invoked.

org.apache.tuweni.concurrent.ExpiringSet

A concurrent hash set that stores values along with an expiry. Elements are stored in the set until their expiry is reached, after which they will no longer be available and will appear as if removed. The actual removal is done lazily whenever the set is accessed, or when the #purgeExpired() method is invoked.

org.apache.tuweni.faucet.FaucetApplication
org.apache.tuweni.faucet.controller.FaucetController
org.apache.tuweni.faucet.controller.FaucetRequest
org.apache.tuweni.scuttlebutt.lib.model.FeedMessage

A scuttlebutt feed message

org.apache.tuweni.scuttlebutt.lib.model.FeedMessageDeserializer
org.apache.tuweni.scuttlebutt.lib.FeedService

A service for operations that concern scuttlebutt feeds. Should be accessed via a ScuttlebuttClient instance.

org.apache.tuweni.scuttlebutt.lib.model.FeedValue

The metadata and contents of a message

org.apache.tuweni.io.file.Files

Utility methods for working with files.

org.apache.tuweni.net.tls.FingerprintRepository

Repository of remote peer fingerprints.

org.apache.tuweni.units.ethereum.Gas

A unit measure of Gas as used by the Ethereum VM.

org.apache.tuweni.crypto.sodium.GenericHash

Generic hashing utility (BLAKE2b).

org.apache.tuweni.eth.genesis.GenesisFile

Utility to read genesis config files and translate them to a block.

org.apache.tuweni.ethclient.GenesisFileConfiguration
org.apache.tuweni.gossip.GossipApp

Application running a gossip client, taking configuration from command line or a configuration file.

org.apache.tuweni.scuttlebutt.handshake.HandshakeException

Exceptions thrown during handshake because of invalid messages or different network identifiers.

org.apache.tuweni.rlpx.HandshakeMessage

Contents of a message sent as part of a RLPx handshake.

org.apache.tuweni.evm.HardFork

Known hard fork revisions to execute against.

org.apache.tuweni.crypto.Hash

Various utilities for providing hashes (digests) of arbitrary data. Requires the BouncyCastleProvider to be loaded and available. See https://www.bouncycastle.org/wiki/display/JA1/Provider+Installation for detail.

org.apache.tuweni.eth.Hash

An Ethereum hash.

org.apache.tuweni.rlpx.wire.HelloMessage
org.apache.tuweni.crypto.sodium.HMACSHA256

Message authentication code support for HMAC-SHA-256.

org.apache.tuweni.crypto.sodium.HMACSHA512

Message authentication code support for HMAC-SHA-512.

org.apache.tuweni.crypto.sodium.HMACSHA512256

Message authentication code support for HMAC-SHA-512-256.

org.apache.tuweni.hobbits.HobbitsTransport

Hobbits is a peer-to-peer transport stack specified at https://www.github.com/deltap2p/hobbits.

org.apache.tuweni.faucet.HtmlConfig
org.apache.tuweni.peer.repository.Identity
org.apache.tuweni.scuttlebutt.Identity

A Scuttlebutt identity, backed by a public key. Currently supported: Ed25519 and SECP256K1.

org.apache.tuweni.kv.InfinispanKeyValueStore

A key-value store backed by Infinispan

org.apache.tuweni.config.InvalidConfigurationPropertyTypeException

An exception thrown when an invalid type is encountered.

org.apache.tuweni.rlpx.InvalidMACException

Exception thrown when the message contents do not match the Message Authentication Code.

org.apache.tuweni.rlp.InvalidRLPEncodingException

Indicates that invalid RLP encoding was encountered.

org.apache.tuweni.rlp.InvalidRLPTypeException

Indicates that an unexpected type was encountered when decoding RLP.

org.apache.tuweni.crypto.InvalidSEC256K1SecretKeyStoreException

Exception thrown when reading a store that contains an invalid SEC256K1 private keys.

org.apache.tuweni.ssz.InvalidSSZTypeException

Indicates that an unexpected type was encountered when decoding SSZ.

org.apache.tuweni.scuttlebutt.Invite

An invite code as defined by the Secure Scuttlebutt protocol guide.

org.apache.tuweni.io.IOConsumer

Represents an operation that accepts a single input argument and returns no result.

org.apache.tuweni.scuttlebutt.lib.model.query.IsFollowingQuery
org.apache.tuweni.scuttlebutt.lib.model.query.IsFollowingResponse
(extensions in package org.apache.tuweni.concurrent.coroutines)
kotlinx.coroutines.Job
org.apache.tuweni.jsonrpc.JSONRPCClient

JSON-RPC client to send requests to an Ethereum client.

org.apache.tuweni.kademlia.KademliaRoutingTable

A Kademlia Routing Table

org.apache.tuweni.crypto.sodium.KeyDerivation

Key derivation.

org.apache.tuweni.crypto.sodium.KeyExchange

Key exchange.

org.apache.tuweni.scuttlebutt.lib.KeyFileLoader

Utility class for loading scuttlebutt keys from the file system.

org.apache.tuweni.crypto.mikuli.KeyPair

KeyPair represents a public and private key.

org.apache.tuweni.kv.KeyValueStore

A key-value store.

org.apache.tuweni.les.LESSubprotocol

The LES subprotocol entry point class, to be used in conjunction with RLPxService

org.apache.tuweni.kv.LevelDBKeyValueStore

A key-value store backed by LevelDB.

org.apache.tuweni.crypto.sodium.LibSodium
org.apache.tuweni.scuttlebutt.discovery.LocalIdentity

Representation of an identity associated with an IP and port, used for Scuttlebutt local discovery.

org.apache.tuweni.eth.Log

A log entry is a tuple of a logger’s address (the address of the contract that added the logs), a series of 32-bytes log topics, and some number of bytes of data.

org.apache.tuweni.eth.LogsBloomFilter

Bloom filter implementation for storing persistent logs, describes a 2048-bit representation of all log entries of a transaction, except data. Sets the bits of the 2048 byte array, where indices are given by: The lower order 11-bits, of the first three double-bytes, of the SHA3, of each value. For instance the address "0x0F572E5295C57F15886F9B263E2F6D2D6C7B5EC6" results in the KECCAK256 hash "bd2b01afcd27800b54d2179edc49e2bffde5078bb6d0b204694169b1643fb108", of which the corresponding double-bytes are: bd2b, 01af, cd27, corresponding to the following bits in the bloom filter: 1323, 431, 1319

org.apache.tuweni.junit.LuceneIndex

A parameter annotation for injecting a Lucene index directory into junit5 tests.

org.apache.tuweni.junit.LuceneIndexWriter

A parameter annotation for injecting a Lucene index writer into junit5 tests.

org.apache.tuweni.junit.LuceneIndexWriterExtension

A junit5 extension, that provides a memory-backed Lucene index writer for tests. The index writer is created for the test suite and injected into any tests with parameters annotated by LuceneIndexWriter.

org.apache.tuweni.scuttlebutt.MalformedInviteCodeException
org.apache.tuweni.kv.MapDBKeyValueStore

A key-value store backed by a MapDB instance.

org.apache.tuweni.kv.MapKeyValueStore

A key-value store backed by an in-memory Map.

org.apache.tuweni.peer.repository.memory.MemoryPeerRepository

Memory-backed peer repository.

org.apache.tuweni.eth.repository.MemoryTransactionPool
org.apache.tuweni.rlpx.MemoryWireConnectionsRepository

In-memory implementation of the wire connections repository.

org.apache.tuweni.trie.MerklePatriciaTrie

An in-memory MerkleTrie.

org.apache.tuweni.trie.MerkleStorage

Storage for use in a StoredMerklePatriciaTrie.

org.apache.tuweni.trie.MerkleStorageException

This exception is thrown when there is an issue retrieving or decoding values from MerkleStorage.

org.apache.tuweni.trie.MerkleTrie

A Merkle Trie.

org.apache.tuweni.hobbits.Message

Hobbits message.

org.apache.tuweni.plumtree.MessageHashing

Produces an identifiable footprint for a message (generally a hash) that can be passed on to other peers to identify uniquely a message being propagated.

org.apache.tuweni.plumtree.MessageListener

Listens to an incoming message, along with its attributes.

org.apache.tuweni.plumtree.MessageSender

Interface to sending messages to other peers.

org.apache.tuweni.plumtree.MessageValidator

Validator for a message and a peer. This validator is called prior to gossiping the message from that peer to other peers.

org.apache.tuweni.scuttlebutt.rpc.mux.Multiplexer

Multiplexes asynchronous requests and streams across a connection to a node. Handles multiple active requests and streams across one connection.

org.apache.tuweni.bytes.MutableByteBufferWrappingBytes
org.apache.tuweni.bytes.MutableBytes

A mutable Bytes value.

org.apache.tuweni.bytes.MutableBytes32

A mutable Bytes32, that is a mutable Bytes value of exactly 32 bytes.

org.apache.tuweni.bytes.MutableBytes48

A mutable Bytes48, that is a mutable Bytes value of exactly 48 bytes.

(extensions in package org.apache.tuweni.kademlia)
kotlin.collections.MutableList
org.apache.tuweni.scuttlebutt.lib.NetworkService

A service for operations that connect nodes together and other network related operations

org.apache.tuweni.config.NoConfigurationPropertyException

An exception thrown when a requested configuration property is not found.

org.apache.tuweni.ethstats.NodeStats
org.apache.tuweni.crypto.sodium.PasswordHash

The Argon2 memory-hard hashing function.

org.apache.tuweni.devp2p.Peer

An Ethereum P2P network peer.

org.apache.tuweni.peer.repository.Peer

A peer in a peer-to-peer system.

org.apache.tuweni.plumtree.Peer

A peer part of the gossip system.

org.apache.tuweni.scuttlebutt.lib.model.Peer
org.apache.tuweni.plumtree.PeerPruning

Interface to decide whether to prune peers when they send messages late. Pruned peers become "lazy peers". They send message attestations (IHAVE).

org.apache.tuweni.devp2p.PeerRepository

A repository of peers in an Ethereum network.

org.apache.tuweni.peer.repository.PeerRepository

A repository of peers, organized for Ethereum and other blockchain and peer-to-peer systems.

org.apache.tuweni.plumtree.PeerRepository

Repository of active peers associating with a gossip tree.

org.apache.tuweni.ethclient.PeerRepositoryConfiguration
org.apache.tuweni.devp2p.PeerRoutingTable

A routing table for ÐΞVp2p peers.

org.apache.tuweni.scuttlebutt.lib.model.PeerStateChange
org.apache.tuweni.scuttlebutt.lib.model.Profile

Represents a user profile.

org.apache.tuweni.progpow.ProgPoW

Ethereum ProgPoW mining algorithm, based on revision 0.9.2. This implements the ProgPoW algorithm (https://github.com/ifdefelse/ProgPOW). This algorithm is licensed under CC0 1.0 Universal (CC0 1.0) Public Domain Dedication (https://creativecommons.org/publicdomain/zero/1.0/) See the specification at https://github.com/ifdefelse/ProgPOW

org.apache.tuweni.config.PropertyValidator

A validator associated with a specific configuration property.

org.apache.tuweni.hobbits.Protocol

Subprotocols supported by the hobbits protocol.

org.apache.tuweni.kv.ProxyKeyValueStore

A store used as a proxy for another store.

org.apache.tuweni.crypto.mikuli.PublicKey

This class represents a BLS12-381 public key.

org.apache.tuweni.scuttlebutt.lib.RawRequestService

Intended to make RPC requests which aren't supported by the higher level services possible. We cannot support every desired RPC request with higher level abstractions because it's possible to define custom plugins with custom endpoints.

org.apache.tuweni.kv.RedisKeyValueStore

A key-value store backed by Redis.

org.apache.tuweni.junit.RedisPort

A parameter annotation for injecting the running Redis server port into junit5 tests.

org.apache.tuweni.junit.RedisServerExtension

A junit5 extension, that sets up an ephemeral Redis server for tests. The ephemeral Redis server is created with a random free port for the test suite and injected into any tests with parameters of type Integer annotated with RedisPort NOTE: Redis does not support picking a random port on its own. This extension tries its best to test free ports and avoid collisions.

org.apache.tuweni.hobbits.Relayer

Relays messages between two endpoints, with an interceptor reading passed messages.

org.apache.tuweni.relayer.RelayerApp

Relayer application, allowing to set a relay between two hobbits endpoints.

org.apache.tuweni.devp2p.eth.Request

A data request handle, matching the connection on which the request was made.

org.apache.tuweni.io.Resources

Methods for resolving resources. Supports recursive discovery and glob matching on the filesystem and in jar archives.

org.apache.tuweni.rlp.RLP

Recursive Length Prefix (RLP) encoding and decoding.

org.apache.tuweni.rlp.RLPException

Base type for all RLP encoding and decoding exceptions.

org.apache.tuweni.rlp.RLPReader

A reader for consuming values from an RLP encoded source.

org.apache.tuweni.rlp.RLPWriter

A writer for encoding values to RLP.

org.apache.tuweni.rlpx.RLPxConnection

Connection between 2 peers over the RLPx protocol.

org.apache.tuweni.rlpx.RLPxConnectionFactory

Factory creating RLPxConnection, either from initiating a handshake or responding to a handshake request.

org.apache.tuweni.rlpx.RLPxMessage

Message exchanged over a RLPx connection.

org.apache.tuweni.rlpx.RLPxService

Service allowing connections to remote peers over RLPx connections.

org.apache.tuweni.ethclient.RLPxServiceConfiguration
org.apache.tuweni.kv.RocksDBKeyValueStore

A key-value store backed by RocksDB.

org.apache.tuweni.scuttlebutt.rpc.RPCAsyncRequest
org.apache.tuweni.scuttlebutt.rpc.RPCCodec

Encoder responsible for encoding requests.

org.apache.tuweni.scuttlebutt.rpc.RPCErrorBody

An RPC message response body which contains an error

org.apache.tuweni.scuttlebutt.rpc.RPCFlag

Defines constants for dealing with SecureScuttlebutt RPC flags.

org.apache.tuweni.scuttlebutt.rpc.RPCFunction

A scuttlebutt RPC function namespace and name representation.

org.apache.tuweni.scuttlebutt.rpc.mux.RPCHandler

Handles RPC requests and responses from an active connection to a scuttlebutt node.

org.apache.tuweni.scuttlebutt.rpc.RPCMessage

Decoded RPC message, making elements of the message available directly.

org.apache.tuweni.scuttlebutt.rpc.RPCRequestBody

The request payload of an RPC request to another node. The fields are as specified in the scuttlebutt protocol docs

org.apache.tuweni.scuttlebutt.rpc.mux.exceptions.RPCRequestFailedException
org.apache.tuweni.scuttlebutt.rpc.RPCRequestType

The available type of Scuttlebutt RPC requests

org.apache.tuweni.scuttlebutt.rpc.RPCResponse

A successful RPC response.

org.apache.tuweni.scuttlebutt.rpc.RPCStreamRequest

A request which returns a 'source' type result (e.g. opens up a stream that is followed by the request ID.)

org.apache.tuweni.config.Schema

A schema for a configuration, providing default values and validation rules.

org.apache.tuweni.config.SchemaBuilder

This interface allows customers to determine a schema to associate with a configuration to validate the entries read from configuration files, and provide default values if no value is present in the configuration file.

org.apache.tuweni.devp2p.Scraper

Discovery scraper that will continue asking peers for peers, and iterate over them, until told to stop.

org.apache.tuweni.devp2p.v5.Scraper

Discovery scraper that will continue asking peers for peers, and iterate over them, until told to stop.

org.apache.tuweni.devp2p.ScraperApp

Wrapper to run the scraper as an app.

org.apache.tuweni.devp2p.v5.ScraperApp

Wrapper to run the scraper as an app.

org.apache.tuweni.scuttlebutt.lib.ScuttlebuttClient

A client for making requests to a scuttlebutt instance with. This is the entry point for accessing service classes which perform operations related to different logical areas. Should be constructed using the ScuttlebuttClientFactory factory class.

org.apache.tuweni.scuttlebutt.lib.ScuttlebuttClientFactory

A factory for constructing a new instance of ScuttlebuttClient with the given configuration parameters

org.apache.tuweni.scuttlebutt.discovery.ScuttlebuttLocalDiscoveryService

Scuttlebutt local discovery service, based on the Scuttlebutt network protocol defined here. This service offers two functions:

org.apache.tuweni.scuttlebutt.lib.model.ScuttlebuttMessageContent

Classes that are to be posted to the scuttlebutt feed should implement this interface

org.apache.tuweni.scuttlebutt.rpc.mux.ScuttlebuttStreamHandler

Handles incoming items from a result stream

org.apache.tuweni.crypto.SECP256K1

An Elliptic Curve Digital Signature using parameters as used by Bitcoin, and defined in Standards for Efficient Cryptography (SEC) (Certicom Research, http://www.secg.org/sec2-v2.pdf).

org.apache.tuweni.crypto.sodium.SecretBox

Secret-key authenticated encryption.

org.apache.tuweni.crypto.sodium.SecretDecryptionStream

Used to decrypt a sequence of messages, or a single message split into arbitrary chunks.

org.apache.tuweni.crypto.sodium.SecretEncryptionStream

Used to encrypt a sequence of messages, or a single message split into arbitrary chunks.

org.apache.tuweni.crypto.mikuli.SecretKey

This class represents a BLS12-381 private key.

org.apache.tuweni.scuttlebutt.handshake.SecureScuttlebuttHandshakeClient

Class responsible for performing a Secure Scuttlebutt handshake with a remote peer, as defined in the Secure Scuttlebutt protocol guide

org.apache.tuweni.scuttlebutt.handshake.SecureScuttlebuttHandshakeServer

Class responsible for performing a Secure Scuttlebutt handshake with a remote peer, as defined in the Secure Scuttlebutt protocol guide

org.apache.tuweni.scuttlebutt.handshake.SecureScuttlebuttStreamClient

Interface used to encrypt and decrypt messages to and from a server.

org.apache.tuweni.scuttlebutt.handshake.SecureScuttlebuttStreamServer

Interface used to encrypt and decrypt messages to and from a client.

org.apache.tuweni.scuttlebutt.handshake.vertx.SecureScuttlebuttVertxClient

Secure Scuttlebutt client using Vert.x to manage persistent TCP connections.

org.apache.tuweni.scuttlebutt.handshake.vertx.SecureScuttlebuttVertxServer

Secure Scuttlebutt server using Vert.x to manage persistent TCP connections.

org.apache.tuweni.scuttlebutt.handshake.vertx.ServerHandler

Handler managing a stream over SecureScuttlebutt originating from the Vert.x server

org.apache.tuweni.scuttlebutt.handshake.vertx.ServerHandlerFactory

Factory creating stream handlers, managing server-side connections.

org.apache.tuweni.crypto.sodium.SHA256Hash

SHA-256 hashing. The SHA-256 and SHA-512 functions are provided for interoperability with other applications. If you are looking for a generic hash function and not specifically SHA-2, using crypto_generichash() (BLAKE2b) might be a better choice.

org.apache.tuweni.crypto.mikuli.Signature

This class represents a Signature on G2

org.apache.tuweni.crypto.sodium.Signature

Public-key signatures.

org.apache.tuweni.crypto.mikuli.SignatureAndPublicKey

This class represents a signature and a public key

org.apache.tuweni.devp2p.eth.SimpleBlockchainInformation

POJO - constant representation of the blockchain information

org.apache.tuweni.scuttlebutt.lib.SocialService

Operations for querying the follow graph, and fetching the profiles of users. Assumes that the standard 'ssb-about' and 'ssb-friends' plugins are installed on the target instance (or that RPC functions meeting their manifests' contracts are available.) Should not be instantiated directly - an instance should be acquired via the ScuttlebuttClient instance

org.apache.tuweni.crypto.sodium.Sodium

Access to the sodium native library.

org.apache.tuweni.crypto.sodium.SodiumException

An exception that is thrown when an error occurs using the native sodium library.

org.apache.tuweni.crypto.sodium.SodiumVersion

Details of a sodium native library version.

org.apache.tuweni.kv.SQLKeyValueStore

A key-value store backed by a relational database.

org.apache.tuweni.ssz.SSZ

Simple Serialize (SSZ) encoding and decoding.

org.apache.tuweni.ssz.SSZException

Base type for all SSZ encoding and decoding exceptions.

org.apache.tuweni.ssz.SSZReader

A reader for consuming values from an SSZ encoded source.

org.apache.tuweni.ssz.SSZWriter

A writer for encoding values to SSZ.

org.apache.tuweni.plumtree.State

Local state to our peer, representing the make-up of the tree of peers.

org.apache.tuweni.devp2p.eth.Status

Peer status information

org.apache.tuweni.trie.StoredMerklePatriciaTrie

A MerkleTrie that persists trie nodes to a MerkleStorage key/value store.

org.apache.tuweni.scuttlebutt.handshake.StreamException
org.apache.tuweni.scuttlebutt.lib.model.StreamHandler

A handler consuming a stream.

org.apache.tuweni.io.Streams

Utilities for working with streams.

org.apache.tuweni.rlpx.wire.SubProtocol

Defines a subprotocol to be used for wire connections

org.apache.tuweni.rlpx.wire.SubProtocolClient

Subprotocol client allowing outside users to call functions associated with the subprotocol.

org.apache.tuweni.rlpx.wire.SubProtocolHandler

Handler managing messages and new connections of peers related for a given subprotocol.

org.apache.tuweni.rlpx.wire.SubProtocolIdentifier

Identifier of a subprotocol, comprised of a name and version.

org.apache.tuweni.junit.TempDirectory

A parameter annotation for injecting a temporary directory into junit5 tests.

org.apache.tuweni.junit.TempDirectoryExtension

A junit5 extension, that provides a temporary directory for tests. The temporary directory is created for the test suite and injected into any tests with parameters annotated by TempDirectory.

org.apache.tuweni.net.tls.TLS

Common utilities for TLS.

org.apache.tuweni.toml.Toml

Methods for parsing data stored in Tom's Obvious, Minimal Language (TOML).

org.apache.tuweni.toml.TomlArray

An array of TOML values.

org.apache.tuweni.toml.TomlInvalidTypeException

An exception thrown when an invalid type is encountered.

org.apache.tuweni.toml.internal.TomlLexer
org.apache.tuweni.toml.TomlParseError

An error that occurred while parsing.

org.apache.tuweni.toml.internal.TomlParser
org.apache.tuweni.toml.internal.TomlParserBaseListener

This class provides an empty implementation of TomlParserListener, which can be extended to create a listener which only needs to handle a subset of the available methods.

org.apache.tuweni.toml.internal.TomlParserBaseVisitor

This class provides an empty implementation of TomlParserVisitor, which can be extended to create a visitor which only needs to handle a subset of the available methods.

org.apache.tuweni.toml.TomlParseResult

The result from parsing a TOML document.

org.apache.tuweni.toml.internal.TomlParserListener

This interface defines a complete listener for a parse tree produced by TomlParser.

org.apache.tuweni.toml.internal.TomlParserVisitor

This interface defines a complete generic visitor for a parse tree produced by TomlParser.

org.apache.tuweni.toml.TomlPosition

A position in an input document.

org.apache.tuweni.toml.TomlTable

An interface for accessing data stored in Tom's Obvious, Minimal Language (TOML).

org.apache.tuweni.toml.TomlVersion

Supported TOML specification versions.

org.apache.tuweni.eth.Transaction

An Ethereum transaction.

org.apache.tuweni.evm.TransactionalEVMHostContext

EVM context that records changes to the world state, so they can be applied atomically.

org.apache.tuweni.eth.repository.TransactionPool
org.apache.tuweni.eth.TransactionReceipt

A transaction receipt, containing information pertaining a transaction execution.

org.apache.tuweni.eth.repository.TransactionReceiptFields

Transaction receipt index fields.

org.apache.tuweni.hobbits.Transport

Transport types supported.

org.apache.tuweni.net.tls.TrustManagerFactories

Trust manager factories for fingerprinting clients and servers.

org.apache.tuweni.ethstats.TxStats

Stats reported to ethnetstats representing the hash of a transaction.

org.apache.tuweni.ethclientui.UI
org.apache.tuweni.units.bigints.UInt256

An unsigned 256-bit precision number. This is a raw UInt256Value - a 256-bit precision unsigned number of no particular unit.

org.apache.tuweni.units.bigints.UInt256s

Static utility methods on UInt256 values.

org.apache.tuweni.units.bigints.UInt256Value

Represents a 256-bit (32 bytes) unsigned integer value.

org.apache.tuweni.units.bigints.UInt32

An unsigned 32-bit precision number.

org.apache.tuweni.units.bigints.UInt32s

Static utility methods on UInt32 values.

org.apache.tuweni.units.bigints.UInt32Value

Represents a 32-bit (8 bytes) unsigned integer value.

org.apache.tuweni.units.bigints.UInt384

An unsigned 384-bit precision number. This is a raw UInt384Value - a 384-bit precision unsigned number of no particular unit.

org.apache.tuweni.units.bigints.UInt384s

Static utility methods on UInt384 values.

org.apache.tuweni.units.bigints.UInt384Value

Represents a 384-bit (48 bytes) unsigned integer value.

org.apache.tuweni.units.bigints.UInt64

An unsigned 64-bit precision number. This is a raw UInt64Value - a 64-bit precision unsigned number of no particular unit.

org.apache.tuweni.units.bigints.UInt64s

Static utility methods on UInt64 values.

org.apache.tuweni.units.bigints.UInt64Value

Represents a 64-bit (8 bytes) unsigned integer value.

org.apache.tuweni.scuttlebutt.lib.model.UpdateNameMessage

A message that when persisted to the feed updates the name of the given user

org.apache.tuweni.junit.VertxExtension

A junit5 extension, that provides a Vert.X instance for tests. The Vert.X instance created for the test suite and injected into any tests with parameters annotated by VertxInstance.

org.apache.tuweni.plumtree.vertx.VertxGossipServer

Vert.x implementation of the plumtree gossip. This implementation is provided as an example and relies on a simplistic JSON serialization of messages.

org.apache.tuweni.junit.VertxInstance

A parameter annotation for injecting a temporary Vert.X instance into junit5 tests.

org.apache.tuweni.rlpx.vertx.VertxRLPxService

Implementation of RLPx service using Vert.x.

org.apache.tuweni.net.tls.VertxTrustOptions

Vert.x TrustOptions for fingerprinting clients and servers.

org.apache.tuweni.wallet.Wallet

Wallet containing a private key that is secured with symmetric encryption.

org.apache.tuweni.units.ethereum.Wei

A unit measure of Wei as used by the Ethereum VM.

org.apache.tuweni.scuttlebutt.lib.model.query.WhoAmIResponse
org.apache.tuweni.rlpx.wire.WireConnection

A stateful connection between two peers under the Devp2p wire protocol.

org.apache.tuweni.ethclient.WireConnectionPeerRepositoryAdapter
org.apache.tuweni.rlpx.WireConnectionRepository

A repository managing wire connections.

org.apache.tuweni.crypto.sodium.XChaCha20Poly1305

Authenticated Encryption with Additional Data using XChaCha20-Poly1305.