buffer flow scaffolding
This commit is contained in:
parent
52abbc0643
commit
44e36596c9
@ -25,8 +25,8 @@
|
|||||||
//! low-latency applications, but perfectly suitable for simple everyday
|
//! low-latency applications, but perfectly suitable for simple everyday
|
||||||
//! use-cases like sending transactions from a personal account.
|
//! use-cases like sending transactions from a personal account.
|
||||||
//!
|
//!
|
||||||
//! It starts by performing a header-only sync, verifying every header in
|
//! It starts by performing a header-only sync, verifying random samples
|
||||||
//! the chain.
|
//! of members of the chain to varying degrees.
|
||||||
|
|
||||||
pub mod client;
|
pub mod client;
|
||||||
pub mod net;
|
pub mod net;
|
||||||
|
42
ethcore/light/src/net/buffer_flow.rs
Normal file
42
ethcore/light/src/net/buffer_flow.rs
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
// Copyright 2015, 2016 Ethcore (UK) Ltd.
|
||||||
|
// This file is part of Parity.
|
||||||
|
|
||||||
|
// Parity is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
|
||||||
|
// Parity is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
//! LES buffer flow management.
|
||||||
|
//!
|
||||||
|
//! Every request in the LES protocol leads to a reduction
|
||||||
|
//! of the requester's buffer value as a rate-limiting mechanism.
|
||||||
|
//! This buffer value will recharge at a set rate.
|
||||||
|
//!
|
||||||
|
//! This module provides an interface for configuration of buffer
|
||||||
|
//! flow costs and recharge rates.
|
||||||
|
|
||||||
|
use request::{self, Request};
|
||||||
|
|
||||||
|
/// Manages buffer flow costs for specific requests.
|
||||||
|
pub struct FlowManager;
|
||||||
|
|
||||||
|
impl FlowManager {
|
||||||
|
/// Estimate the maximum cost of this request.
|
||||||
|
pub fn estimate_cost(&self, req: &request::Request) -> usize {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get an exact cost based on request kind and amount of requests fulfilled.
|
||||||
|
pub fn exact_cost(&self, kind: request::Kind, amount: usize) -> usize {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -31,6 +31,8 @@ use std::sync::atomic::{AtomicUsize, Ordering};
|
|||||||
use provider::Provider;
|
use provider::Provider;
|
||||||
use request::{self, Request};
|
use request::{self, Request};
|
||||||
|
|
||||||
|
mod buffer_flow;
|
||||||
|
|
||||||
const TIMEOUT: TimerToken = 0;
|
const TIMEOUT: TimerToken = 0;
|
||||||
const TIMEOUT_INTERVAL_MS: u64 = 1000;
|
const TIMEOUT_INTERVAL_MS: u64 = 1000;
|
||||||
|
|
||||||
@ -40,8 +42,6 @@ const PROTOCOL_VERSION: u32 = 1;
|
|||||||
// TODO [rob] make configurable.
|
// TODO [rob] make configurable.
|
||||||
const PROTOCOL_ID: [u8; 3] = *b"les";
|
const PROTOCOL_ID: [u8; 3] = *b"les";
|
||||||
|
|
||||||
// TODO [rob] Buffer flow.
|
|
||||||
|
|
||||||
// packet ID definitions.
|
// packet ID definitions.
|
||||||
mod packet {
|
mod packet {
|
||||||
// the status packet.
|
// the status packet.
|
||||||
|
Loading…
Reference in New Issue
Block a user