make runtime depend on bpf_loader (#4601)

* make runtime depend on bpf_loader

* remove vote redundancy, move bpf_loader to genesis, export program\! from bpf_loader crate

* move bpf_loader specification into genesis

* bpf tests to use genesis with bpf

* need to avoid depending on programs, except for macros
This commit is contained in:
Rob Walker
2019-06-11 10:27:22 -07:00
committed by GitHub
parent e4d8ea11ac
commit e56430c9fb
14 changed files with 69 additions and 48 deletions

View File

@ -26,6 +26,7 @@ serde_derive = "1.0.92"
serde_json = "1.0.38"
solana-logger = { path = "../logger", version = "0.16.0" }
solana-metrics = { path = "../metrics", version = "0.16.0" }
solana-bpfloader = { path = "../programs/bpf_loader", version = "0.16.0" }
solana-noop-program = { path = "../programs/noop_program", version = "0.16.0" }
solana-sdk = { path = "../sdk", version = "0.16.0" }
solana-stake-api = { path = "../programs/stake_api", version = "0.16.0" }

View File

@ -503,14 +503,6 @@ impl Bank {
"solana_system_program",
&solana_sdk::system_program::id(),
);
self.register_native_instruction_processor(
"solana_bpf_loader",
&solana_sdk::bpf_loader::id(),
);
self.register_native_instruction_processor(
&solana_vote_program!().0,
&solana_vote_program!().1,
);
// Add additional native programs specified in the genesis block
for (name, program_id) in &genesis_block.native_instruction_processors {

View File

@ -15,6 +15,10 @@ pub struct GenesisBlockInfo {
pub voting_keypair: Keypair,
}
pub fn create_genesis_block(mint_lamports: u64) -> GenesisBlockInfo {
create_genesis_block_with_leader(mint_lamports, &Pubkey::new_rand(), 0)
}
pub fn create_genesis_block_with_leader(
mint_lamports: u64,
bootstrap_leader_pubkey: &Pubkey,
@ -60,7 +64,11 @@ pub fn create_genesis_block_with_leader(
),
),
],
&[solana_vote_program!(), solana_stake_program!()],
&[
solana_bpf_loader!(),
solana_vote_program!(),
solana_stake_program!(),
],
);
GenesisBlockInfo {

View File

@ -27,5 +27,8 @@ extern crate solana_vote_program;
#[macro_use]
extern crate solana_stake_program;
#[macro_use]
extern crate solana_bpf_loader;
#[macro_use]
extern crate serde_derive;