Boot storage program from the SDK

This commit is contained in:
Greg Fitzgerald 2019-03-04 20:45:26 -07:00
parent 5e9f802d7d
commit 885eeec3ed
13 changed files with 53 additions and 20 deletions

13
Cargo.lock generated
View File

@ -1994,6 +1994,7 @@ dependencies = [
"solana-netutil 0.12.0",
"solana-runtime 0.12.0",
"solana-sdk 0.12.0",
"solana-storage-api 0.12.0",
"solana-vote-api 0.12.0",
"solana-vote-program 0.12.0",
"solana-vote-signer 0.12.0",
@ -2258,6 +2259,7 @@ dependencies = [
"solana-logger 0.12.0",
"solana-metrics 0.12.0",
"solana-sdk 0.12.0",
"solana-storage-api 0.12.0",
"solana-system-program 0.12.0",
"solana-token-api 0.12.0",
"solana-vote-api 0.12.0",
@ -2283,6 +2285,16 @@ dependencies = [
"untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "solana-storage-api"
version = "0.12.0"
dependencies = [
"bincode 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-sdk 0.12.0",
]
[[package]]
name = "solana-storage-program"
version = "0.12.0"
@ -2294,6 +2306,7 @@ dependencies = [
"solana-logger 0.12.0",
"solana-runtime 0.12.0",
"solana-sdk 0.12.0",
"solana-storage-api 0.12.0",
]
[[package]]

View File

@ -77,6 +77,7 @@ members = [
"programs/rewards",
"programs/rewards_api",
"programs/storage",
"programs/storage_api",
"programs/system",
"programs/vote",
"programs/vote_api",

View File

@ -50,6 +50,7 @@ solana-metrics = { path = "../metrics", version = "0.12.0" }
solana-netutil = { path = "../netutil", version = "0.12.0" }
solana-runtime = { path = "../runtime", version = "0.12.0" }
solana-sdk = { path = "../sdk", version = "0.12.0" }
solana-storage-api = { path = "../programs/storage_api", version = "0.12.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.12.0" }
solana-vote-signer = { path = "../vote-signer", version = "0.12.0" }
sys-info = "0.5.6"

View File

@ -19,7 +19,7 @@ use solana_drone::drone::{request_airdrop_transaction, DRONE_PORT};
use solana_sdk::genesis_block::GenesisBlock;
use solana_sdk::hash::{Hash, Hasher};
use solana_sdk::signature::{Keypair, KeypairUtil, Signature};
use solana_sdk::storage_program::StorageTransaction;
use solana_storage_api::StorageTransaction;
use std::fs::File;
use std::io;
use std::io::BufReader;

View File

@ -16,8 +16,8 @@ use rand_chacha::ChaChaRng;
use solana_sdk::hash::Hash;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::{Keypair, Signature};
use solana_sdk::storage_program::{self, StorageProgram, StorageTransaction};
use solana_sdk::transaction::Transaction;
use solana_storage_api::{self, StorageProgram, StorageTransaction};
use std::collections::HashSet;
use std::io;
use std::mem::size_of;
@ -377,7 +377,7 @@ impl StorageStage {
.copy_from_slice(tx.signatures[0].as_ref());
*current_key_idx += size_of::<Signature>();
*current_key_idx %= storage_keys.len();
} else if storage_program::check_id(&program_id) {
} else if solana_storage_api::check_id(&program_id) {
match deserialize(&tx.instructions[i].userdata) {
Ok(StorageProgram::SubmitMiningProof {
entry_height: proof_entry_height,

View File

@ -15,6 +15,7 @@ serde = "1.0.89"
serde_derive = "1.0.89"
solana-logger = { path = "../../logger", version = "0.12.0" }
solana-sdk = { path = "../../sdk", version = "0.12.0" }
solana-storage-api = { path = "../storage_api", version = "0.12.0" }
[dev-dependencies]
solana-runtime = { path = "../../runtime", version = "0.12.0" }

View File

@ -9,7 +9,7 @@ use solana_sdk::account::KeyedAccount;
use solana_sdk::native_program::ProgramError;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::solana_entrypoint;
use solana_sdk::storage_program::*;
use solana_storage_api::*;
pub const TOTAL_VALIDATOR_REWARDS: u64 = 1000;
pub const TOTAL_REPLICATOR_REWARDS: u64 = 1000;
@ -180,9 +180,8 @@ mod test {
use solana_sdk::account::{create_keyed_accounts, Account};
use solana_sdk::hash::Hash;
use solana_sdk::signature::{Keypair, KeypairUtil, Signature};
use solana_sdk::storage_program::ProofStatus;
use solana_sdk::storage_program::StorageTransaction;
use solana_sdk::transaction::{Instruction, Transaction};
use solana_storage_api::{ProofStatus, StorageTransaction};
fn test_transaction(
tx: &Transaction,

View File

@ -5,16 +5,15 @@ use solana_sdk::genesis_block::GenesisBlock;
use solana_sdk::hash::{hash, Hash};
use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::{Keypair, KeypairUtil};
use solana_sdk::storage_program;
use solana_sdk::storage_program::{StorageTransaction, ENTRIES_PER_SEGMENT};
use solana_sdk::system_transaction::SystemTransaction;
use solana_storage_api::{StorageTransaction, ENTRIES_PER_SEGMENT};
fn get_storage_entry_height(bank: &Bank, account: Pubkey) -> u64 {
match bank.get_account(&account) {
Some(storage_system_account) => {
let state = deserialize(&storage_system_account.userdata);
if let Ok(state) = state {
let state: storage_program::StorageProgramState = state;
let state: solana_storage_api::StorageProgramState = state;
return state.entry_height;
}
}
@ -29,7 +28,7 @@ fn get_storage_blockhash(bank: &Bank, account: Pubkey) -> Hash {
if let Some(storage_system_account) = bank.get_account(&account) {
let state = deserialize(&storage_system_account.userdata);
if let Ok(state) = state {
let state: storage_program::StorageProgramState = state;
let state: solana_storage_api::StorageProgramState = state;
return state.hash;
}
}
@ -63,7 +62,7 @@ fn test_bank_storage() {
blockhash,
1,
4 * 1024,
storage_program::id(),
solana_storage_api::id(),
0,
);

View File

@ -0,0 +1,19 @@
[package]
name = "solana-storage-api"
version = "0.12.0"
description = "Solana Storage program API"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
edition = "2018"
[dependencies]
bincode = "1.1.2"
serde = "1.0.89"
serde_derive = "1.0.89"
solana-sdk = { path = "../../sdk", version = "0.12.0" }
[lib]
name = "solana_storage_api"
crate-type = ["lib"]

View File

@ -1,7 +1,8 @@
use crate::hash::Hash;
use crate::pubkey::Pubkey;
use crate::signature::{Keypair, Signature};
use crate::transaction::Transaction;
use serde_derive::{Deserialize, Serialize};
use solana_sdk::hash::Hash;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::{Keypair, Signature};
use solana_sdk::transaction::Transaction;
pub const ENTRIES_PER_SEGMENT: u64 = 16;

View File

@ -26,6 +26,7 @@ solana-logger = { path = "../logger", version = "0.12.0" }
solana-metrics = { path = "../metrics", version = "0.12.0" }
solana-sdk = { path = "../sdk", version = "0.12.0" }
solana-system-program = { path = "../programs/system", version = "0.12.0" }
solana-storage-api = { path = "../programs/storage_api", version = "0.12.0" }
solana-token-api = { path = "../programs/token_api", version = "0.12.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.12.0" }

View File

@ -19,7 +19,6 @@ use solana_sdk::native_loader;
use solana_sdk::native_program::ProgramError;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::{Keypair, Signature};
use solana_sdk::storage_program;
use solana_sdk::system_program;
use solana_sdk::system_transaction::SystemTransaction;
use solana_sdk::timing::{duration_as_us, MAX_RECENT_BLOCKHASHES, NUM_TICKS_PER_SECOND};
@ -295,7 +294,7 @@ impl Bank {
fn add_builtin_programs(&self) {
self.add_native_program("solana_system_program", &system_program::id());
self.add_native_program("solana_vote_program", &solana_vote_api::id());
self.add_native_program("solana_storage_program", &storage_program::id());
self.add_native_program("solana_storage_program", &solana_storage_api::id());
self.add_native_program("solana_bpf_loader", &bpf_loader::id());
self.add_native_program("solana_budget_program", &solana_budget_api::id());
self.add_native_program("solana_token_program", &solana_token_api::id());
@ -1273,7 +1272,7 @@ mod tests {
assert_eq!(native_loader::id(), native);
assert_eq!(bpf_loader::id(), bpf);
assert_eq!(solana_budget_api::id(), budget);
assert_eq!(storage_program::id(), storage);
assert_eq!(solana_storage_api::id(), storage);
assert_eq!(solana_token_api::id(), token);
assert_eq!(solana_vote_api::id(), vote);
}
@ -1286,7 +1285,7 @@ mod tests {
native_loader::id(),
bpf_loader::id(),
solana_budget_api::id(),
storage_program::id(),
solana_storage_api::id(),
solana_token_api::id(),
solana_vote_api::id(),
];

View File

@ -10,7 +10,6 @@ pub mod packet;
pub mod pubkey;
pub mod shortvec;
pub mod signature;
pub mod storage_program;
pub mod system_instruction;
pub mod system_program;
pub mod system_transaction;