Merge branch 'master' of github.com:gavofyork/ethcore

This commit is contained in:
Gav Wood
2015-12-13 14:16:11 +01:00
5 changed files with 212 additions and 42 deletions

View File

@@ -1,28 +1,107 @@
#[macro_use] extern crate log;
extern crate ethcore_util;
//! Ethcore's ethereum implementation
//!
//! ### Rust version
//! - beta
//! - nightly
//!
//! ### Supported platforms:
//! - OSX
//! - Linux/Ubuntu
//!
//! ### Dependencies:
//! - RocksDB 3.13
//! - LLVM 3.7 (optional, required for `jit`)
//! - evmjit (optional, required for `jit`)
//!
//! ### Dependencies Installation
//!
//! - OSX
//!
//! - rocksdb
//! ```
//! brew install rocksdb
//! ```
//!
//! - llvm
//!
//! - download llvm 3.7 from http://llvm.org/apt/
//!
//! ```
//! cd llvm-3.7.0.src
//! mkdir build && cd $_
//! cmake -G "Unix Makefiles" .. -DCMAKE_C_FLAGS_RELEASE= -DCMAKE_CXX_FLAGS_RELEASE= -DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/llvm/3.7 -DCMAKE_BUILD_TYPE=Release
//! make && make install
//! ```
//! - evmjit
//!
//! - download from https://github.com/debris/evmjit
//!
//! ```
//! cd evmjit
//! mkdir build && cd $_
//! cmake -DLLVM_DIR=/usr/local/lib/llvm-3.7/share/llvm/cmake ..
//! make && make install
//! ```
//!
//! - Linux/Ubuntu
//!
//! - rocksdb
//!
//! ```
//! wget https://github.com/facebook/rocksdb/archive/rocksdb-3.13.tar.gz
//! tar xvf rocksdb-3.13.tar.gz && cd rocksdb-rocksdb-3.13 && make shared_lib
//! sudo make install
//! ```
//!
//! - llvm
//!
//! - install using packages from http://llvm.org/apt/
//!
//! - evmjit
//!
//! - download from https://github.com/debris/evmjit
//!
//! ```
//! cd evmjit
//! mkdir build && cd $_
//! cmake .. && make
//! sudo make install
//! sudo ldconfig
//! ```
#[macro_use]
extern crate log;
extern crate env_logger;
extern crate ethcore_util;
#[cfg(feature = "jit" )]
extern crate evmjit;
//use ethcore_util::error::*;
use ethcore_util::hash::*;
use ethcore_util::uint::*;
use ethcore_util::bytes::*;
pub type LogBloom = Hash4096;
pub type LogBloom = H2048;
pub mod state;
pub static ZERO_ADDRESS: Address = Address([0x00; 20]);
pub static ZERO_HASH256: Hash256 = Hash256([0x00; 32]);
pub static ZERO_LOGBLOOM: LogBloom = Hash4096([0x00; 512]);
pub static ZERO_H256: H256 = H256([0x00; 32]);
pub static ZERO_LOGBLOOM: LogBloom = H2048([0x00; 256]);
#[derive(Debug)]
pub struct Header {
parent_hash: Hash256,
parent_hash: H256,
timestamp: U256,
number: U256,
author: Address,
transactions_root: Hash256,
uncles_hash: Hash256,
extra_data_hash: Hash256,
transactions_root: H256,
uncles_hash: H256,
extra_data_hash: H256,
state_root: Hash256,
receipts_root: Hash256,
state_root: H256,
receipts_root: H256,
log_bloom: LogBloom,
gas_used: U256,
gas_limit: U256,
@@ -34,22 +113,22 @@ pub struct Header {
impl Header {
pub fn new() -> Header {
Header {
parent_hash: ZERO_HASH256,
timestamp: BAD_U256,
number: ZERO_U256,
author: ZERO_ADDRESS,
parent_hash: ZERO_H256.clone(),
timestamp: BAD_U256.clone(),
number: ZERO_U256.clone(),
author: ZERO_ADDRESS.clone(),
transactions_root: ZERO_HASH256,
uncles_hash: ZERO_HASH256,
extra_data_hash: ZERO_HASH256,
transactions_root: ZERO_H256.clone(),
uncles_hash: ZERO_H256.clone(),
extra_data_hash: ZERO_H256.clone(),
state_root: ZERO_HASH256,
receipts_root: ZERO_HASH256,
log_bloom: ZERO_LOGBLOOM,
gas_used: ZERO_U256,
gas_limit: ZERO_U256,
state_root: ZERO_H256.clone(),
receipts_root: ZERO_H256.clone(),
log_bloom: ZERO_LOGBLOOM.clone(),
gas_used: ZERO_U256.clone(),
gas_limit: ZERO_U256.clone(),
difficulty: ZERO_U256,
difficulty: ZERO_U256.clone(),
seal: vec![],
}
}
@@ -61,21 +140,3 @@ pub struct Transaction {
pub data: Bytes,
pub code: Bytes,
}
#[test]
fn memorydb() {
}
/// Silly function to return 69.
///
/// # Example
///
/// ```
/// assert_eq!(ethcore::sixtynine(), 69);
/// ```
pub fn sixtynine() -> i32 {
debug!("Hello world!");
69
}