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

@@ -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;