Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EnclaveConfig ¶
type EnclaveConfig struct { // The identity of the host the enclave service is tied to HostID gethcommon.Address // The public peer-to-peer IP address of the host the enclave service is tied to HostAddress string // The address on which to serve requests Address string // The type of the node. NodeType common.NodeType // The ID of the L1 chain L1ChainID int64 // The ID of the Obscuro chain ObscuroChainID int64 // Whether to produce a verified attestation report WillAttest bool // Whether to validate incoming L1 blocks ValidateL1Blocks bool // When validating incoming blocks, the genesis config for the L1 chain GenesisJSON []byte // The management contract address on the L1 network ManagementContractAddress gethcommon.Address // LogLevel determines the verbosity of output logs LogLevel int // The path that the enclave's logs are written to LogPath string // Whether the enclave should use in-memory or persistent storage UseInMemoryDB bool // host address for the edgeless DB instance (can be empty if using InMemory DB or if attestation is disabled) EdgelessDBHost string // filepath for the sqlite DB persistence file (can be empty if a throwaway file in /tmp/ is acceptable or // if using InMemory DB or if attestation is enabled) SqliteDBPath string // ProfilerEnabled starts a profiler instance ProfilerEnabled bool // MinGasPrice is the minimum gas price for mining a transaction MinGasPrice *big.Int // MessageBus L1 Address MessageBusAddress gethcommon.Address // The identity of the sequencer for the network SequencerID gethcommon.Address // A json string that specifies the prefunded addresses at the genesis of the Obscuro network ObscuroGenesis string // Whether debug calls are available DebugNamespaceEnabled bool // Maximum bytes a batch can be uncompressed. MaxBatchSize uint64 // MaxRollupSize - configured to be close to what the ethereum clients // have configured as the maximum size a transaction can have. Note that this isn't // a protocol limit, but a miner imposed limit and it might be hard to find someone // to include a transaction if it goes above it MaxRollupSize uint64 GasPaymentAddress gethcommon.Address BaseFee *big.Int GasLimit *big.Int }
EnclaveConfig contains the full configuration for an Obscuro enclave service.
func DefaultEnclaveConfig ¶
func DefaultEnclaveConfig() *EnclaveConfig
DefaultEnclaveConfig returns an EnclaveConfig with default values.
type HostConfig ¶
type HostConfig struct { // The ID of the L1 chain L1ChainID int64 // The ID of the Obscuro chain ObscuroChainID int64 // L1StartHash is the hash of the L1 block we can start streaming from for all Obscuro state (e.g. management contract deployment block) L1StartHash gethcommon.Hash // The ID of the obscuro sequencer node SequencerID gethcommon.Address // The rollup contract address on the L1 network ManagementContractAddress gethcommon.Address // The message bus contract address on the L1 network MessageBusAddress gethcommon.Address // Min interval before creating the next batch (only used by Sequencer nodes) BatchInterval time.Duration // MaxBatchInterval is the max interval between batches, if this is set higher than BatchInterval, the host will // not create empty batches until the MaxBatchInterval is reached or a transaction is received. MaxBatchInterval time.Duration // Min interval before creating the next rollup (only used by Sequencer nodes) RollupInterval time.Duration // MaxRollupSize is the max size of the rollup MaxRollupSize uint64 // The expected time between blocks on the L1 network L1BlockTime time.Duration // The host's identity derived from the L1 Private Key ID gethcommon.Address // The stringified private key for the host's L1 wallet PrivateKeyString string // Whether the host is the genesis Obscuro node IsGenesis bool // The type of the node. NodeType common.NodeType // LogLevel determines the verbosity of output logs LogLevel int // The path that the node's logs are written to LogPath string // Whether the host should use in-memory or persistent storage UseInMemoryDB bool // filepath for the levelDB persistence dir (can be empty if a throwaway file in /tmp/ is acceptable, or if using InMemory DB) LevelDBPath string // Whether to serve client RPC requests over HTTP HasClientRPCHTTP bool // Port on which to handle HTTP client RPC requests ClientRPCPortHTTP uint64 // Whether to serve client RPC requests over websockets HasClientRPCWebsockets bool // Port on which to handle websocket client RPC requests ClientRPCPortWS uint64 // Host on which to handle client RPC requests ClientRPCHost string // Address on which to connect to the enclave EnclaveRPCAddress string // P2PBindAddress is the address where the P2P server is bound to P2PBindAddress string // P2PPublicAddress is the advertised P2P server address P2PPublicAddress string // L1WebsocketURL is the RPC address for interactions with the L1 L1WebsocketURL string // Timeout duration for RPC requests to the enclave service EnclaveRPCTimeout time.Duration // Timeout duration for connecting to, and communicating with, the L1 node L1RPCTimeout time.Duration // Timeout duration for messaging between hosts. P2PConnectionTimeout time.Duration // ProfilerEnabled starts a profiler instance ProfilerEnabled bool // MetricsEnabled defines whether the metrics are enabled or not MetricsEnabled bool // MetricsHTTPPort sets the port where the http server is available MetricsHTTPPort uint // DebugNamespaceEnabled enables the debug namespace handler in the host rpc server DebugNamespaceEnabled bool // Whether p2p is enabled or not IsInboundP2PDisabled bool }
HostConfig contains the configuration used in the Obscuro host execution. Some fields are derived from the HostInputConfig.
type HostInputConfig ¶
type HostInputConfig struct { // Whether the host is the genesis Obscuro node IsGenesis bool // The type of the node. NodeType common.NodeType // Whether to serve client RPC requests over HTTP HasClientRPCHTTP bool // Port on which to handle HTTP client RPC requests ClientRPCPortHTTP uint64 // Whether to serve client RPC requests over websockets HasClientRPCWebsockets bool // Port on which to handle websocket client RPC requests ClientRPCPortWS uint64 // Host on which to handle client RPC requests ClientRPCHost string // Address on which to connect to the enclave EnclaveRPCAddress string // P2PBindAddress is the address where the P2P server is bound to P2PBindAddress string // P2PPublicAddress is the advertised P2P server address P2PPublicAddress string // L1WebsocketURL is the RPC address for interactions with the L1 L1WebsocketURL string // Timeout duration for RPC requests to the enclave service EnclaveRPCTimeout time.Duration // Timeout duration for connecting to, and communicating with, the L1 node L1RPCTimeout time.Duration // Timeout duration for messaging between hosts. P2PConnectionTimeout time.Duration // The rollup contract address on the L1 network ManagementContractAddress gethcommon.Address // The message bus contract address on the L1 network MessageBusAddress gethcommon.Address // LogLevel determines the verbosity of output logs LogLevel int // The path that the node's logs are written to LogPath string // The stringified private key for the host's L1 wallet PrivateKeyString string // The ID of the L1 chain L1ChainID int64 // The ID of the Obscuro chain ObscuroChainID int64 // ProfilerEnabled starts a profiler instance ProfilerEnabled bool // L1StartHash is the hash of the L1 block we can start streaming from for all Obscuro state (e.g. management contract deployment block) L1StartHash gethcommon.Hash // The ID of the obscuro sequencer node SequencerID gethcommon.Address // MetricsEnabled defines whether the metrics are enabled or not MetricsEnabled bool // MetricsHTTPPort sets the port where the http server is available MetricsHTTPPort uint // UseInMemoryDB sets whether the host should use in-memory or persistent storage UseInMemoryDB bool // LevelDBPath path for the levelDB persistence dir (can be empty if a throwaway file in /tmp/ is acceptable, or if using InMemory DB) LevelDBPath string // DebugNamespaceEnabled enables the debug namespace handler in the host rpc server DebugNamespaceEnabled bool // Min interval before creating the next batch (only used by Sequencer nodes) BatchInterval time.Duration // MaxBatchInterval is the max interval between batches, if this is set higher than BatchInterval, the host will // not create empty batches until the MaxBatchInterval is reached or a transaction is received. MaxBatchInterval time.Duration // Min interval before creating the next rollup (only used by Sequencer nodes) RollupInterval time.Duration // The expected time between blocks on the L1 network L1BlockTime time.Duration // Whether inbound p2p is enabled or not IsInboundP2PDisabled bool // MaxRollupSize specifies the threshold size which the sequencer-host publishes a rollup MaxRollupSize uint64 }
HostInputConfig contains the configuration that was parsed from a config file / command line to start the Obscuro host.
func DefaultHostParsedConfig ¶
func DefaultHostParsedConfig() *HostInputConfig
DefaultHostParsedConfig returns a HostConfig with default values.
func (HostInputConfig) ToHostConfig ¶
func (p HostInputConfig) ToHostConfig() *HostConfig
ToHostConfig returns a HostConfig given a HostInputConfig
Click to show internal directories.
Click to hide internal directories.