MCPcopy Create free account

hub / github.com/JoshOrndorff/blockchain-from-scratch / functions

Functions239 in github.com/JoshOrndorff/blockchain-from-scratch

↓ 35 callersMethodchild
Create and return a valid child header.
src/c2_blockchain/p3_consensus.rs:44
↓ 25 callersFunctionhash
Simple helper to do some hashing.
src/lib.rs:10
↓ 22 callersMethodchild
Create and return a valid child header. Without the extrinsics themselves, we cannot calculate the final state so that information is passed in.
src/c2_blockchain/p4_batched_extrinsics.rs:42
↓ 9 callersMethodchild
Create and return a valid child header.
src/c2_blockchain/p2_extrinsic_state.rs:38
↓ 8 callersMethodchild
Create and return a valid child header. The state root is passed in similarly to how the complete state was in the previous section.
src/c2_blockchain/p6_rich_state.rs:57
↓ 6 callersMethodchild
Create and return a valid child header.
src/c2_blockchain/p1_header_chain.rs:32
↓ 5 callersMethodset_serial
(&mut self, serial: u64)
src/c1_state_machine/p5_digital_cash.rs:41
↓ 2 callersFunctioncreate_fork_one_side_longer_other_side_heavier
Build and return two different chains with a common prefix. They should have the same genesis header. Both chains should be valid. The first chain sho
src/c2_blockchain/p5_fork_choice.rs:132
↓ 1 callersMethodadd_bill
(&mut self, elem: Bill)
src/c1_state_machine/p5_digital_cash.rs:53
↓ 1 callersFunctionbuild_an_invalid_chain
Build and return a chain with at least three headers. The chain should start with a proper genesis header, but the entire chain should NOT be valid.
src/c2_blockchain/p2_extrinsic_state.rs:72
↓ 1 callersFunctionbuild_an_invalid_chain
Build and return a chain with at least three headers. The chain should start with a proper genesis header, but the entire chain should NOT be valid.
src/c2_blockchain/p1_header_chain.rs:55
↓ 1 callersFunctionbuild_contentious_forked_chain
Build and return two different chains with a common prefix. They should have the same genesis header. Both chains should be valid according to the or
src/c2_blockchain/p3_consensus.rs:91
↓ 1 callersFunctionbuild_forked_chain
Build and return two header chains. Both chains should individually be valid. They should have the same genesis header. They should not be the exact s
src/c2_blockchain/p2_extrinsic_state.rs:87
↓ 1 callersFunctionbuild_invalid_child_block_with_valid_header
Create an invalid child block of the given block. Although the child block is invalid, the header should be valid. Now that extrinsics are separate f
src/c2_blockchain/p4_batched_extrinsics.rs:109
↓ 1 callersFunctionbuild_invalid_child_block_with_valid_header
Create an invalid child block of the given block. The returned block should have an incorrect state root. Although the child block is invalid, the hea
src/c2_blockchain/p6_rich_state.rs:121
↓ 1 callersFunctionbuild_valid_chain_length_5
Build and return a valid chain with exactly five blocks including the genesis block.
src/c2_blockchain/p1_header_chain.rs:48
↓ 1 callersMethodincrement_serial
(&mut self)
src/c1_state_machine/p5_digital_cash.rs:49
↓ 1 callersFunctionmine_extra_hard
Mutates a block (and its embedded header) to contain more PoW difficulty. This will be useful for exploring the heaviest chain rule. The expected usag
src/c2_blockchain/p5_fork_choice.rs:69
Methodall_leaves
(&self)
src/c4_client/p2_importing_blocks.rs:53
Functionalmost_valid_but_not_all_even
Using the moderate difficulty PoW algorithm you created in section 1 of this chapter as the inner engine, create a PoW chain that is valid according t
src/c3_consensus/p4_even_only.rs:35
Methodauthor_and_import_automatic_block
Author a new block with the transactions from the pool on top of the "best" block and import the new block into the local database.
src/c4_client/p5_authoring_blocks.rs:19
Methodauthor_and_import_manual_block
Author a new block with the given transactions on top of the given parent and import the new block into the local database.
src/c4_client/p5_authoring_blocks.rs:13
Functionbc_1_cant_verify_invalid_height
()
src/c2_blockchain/p1_header_chain.rs:103
Functionbc_1_cant_verify_invalid_parent
()
src/c2_blockchain/p1_header_chain.rs:114
Functionbc_1_child_block_height
()
src/c2_blockchain/p1_header_chain.rs:73
Functionbc_1_child_block_parent
()
src/c2_blockchain/p1_header_chain.rs:80
Functionbc_1_genesis_block_height
()
src/c2_blockchain/p1_header_chain.rs:61
Functionbc_1_genesis_block_parent
()
src/c2_blockchain/p1_header_chain.rs:67
Functionbc_1_invalid_chain_is_really_invalid
()
src/c2_blockchain/p1_header_chain.rs:133
Functionbc_1_verify_chain_length_five
()
src/c2_blockchain/p1_header_chain.rs:125
Functionbc_1_verify_genesis_only
()
src/c2_blockchain/p1_header_chain.rs:87
Functionbc_1_verify_three_blocks
()
src/c2_blockchain/p1_header_chain.rs:94
Functionbc_2_cant_verify_invalid_number
()
src/c2_blockchain/p2_extrinsic_state.rs:176
Functionbc_2_cant_verify_invalid_parent
()
src/c2_blockchain/p2_extrinsic_state.rs:167
Functionbc_2_cant_verify_invalid_state
()
src/c2_blockchain/p2_extrinsic_state.rs:185
Functionbc_2_child_block_extrinsic
()
src/c2_blockchain/p2_extrinsic_state.rs:136
Functionbc_2_child_block_height
()
src/c2_blockchain/p2_extrinsic_state.rs:122
Functionbc_2_child_block_parent
()
src/c2_blockchain/p2_extrinsic_state.rs:129
Functionbc_2_child_block_state
()
src/c2_blockchain/p2_extrinsic_state.rs:143
Functionbc_2_genesis_block_extrinsic
()
src/c2_blockchain/p2_extrinsic_state.rs:108
Functionbc_2_genesis_block_height
()
src/c2_blockchain/p2_extrinsic_state.rs:96
Functionbc_2_genesis_block_parent
()
src/c2_blockchain/p2_extrinsic_state.rs:102
Functionbc_2_genesis_block_state
()
src/c2_blockchain/p2_extrinsic_state.rs:116
Functionbc_2_invalid_chain_is_really_invalid
()
src/c2_blockchain/p2_extrinsic_state.rs:194
Functionbc_2_verify_forked_chain
()
src/c2_blockchain/p2_extrinsic_state.rs:202
Functionbc_2_verify_genesis_only
()
src/c2_blockchain/p2_extrinsic_state.rs:150
Functionbc_2_verify_three_blocks
()
src/c2_blockchain/p2_extrinsic_state.rs:157
Functionbc_3_cant_verify_invalid_number
()
src/c2_blockchain/p3_consensus.rs:192
Functionbc_3_cant_verify_invalid_parent
()
src/c2_blockchain/p3_consensus.rs:183
Functionbc_3_cant_verify_invalid_pow
()
src/c2_blockchain/p3_consensus.rs:210
Functionbc_3_cant_verify_invalid_state
()
src/c2_blockchain/p3_consensus.rs:201
Functionbc_3_child_block_consensus_digest
()
src/c2_blockchain/p3_consensus.rs:159
Functionbc_3_child_block_extrinsic
()
src/c2_blockchain/p3_consensus.rs:145
Functionbc_3_child_block_height
()
src/c2_blockchain/p3_consensus.rs:131
Functionbc_3_child_block_parent
()
src/c2_blockchain/p3_consensus.rs:138
Functionbc_3_child_block_state
()
src/c2_blockchain/p3_consensus.rs:152
Functionbc_3_even_chain_invalid_first_block_after_fork
()
src/c2_blockchain/p3_consensus.rs:234
Functionbc_3_even_chain_invalid_second_block_after_fork
()
src/c2_blockchain/p3_consensus.rs:245
Functionbc_3_even_chain_valid
()
src/c2_blockchain/p3_consensus.rs:221
Functionbc_3_genesis_block_extrinsic
()
src/c2_blockchain/p3_consensus.rs:109
Functionbc_3_genesis_block_height
()
src/c2_blockchain/p3_consensus.rs:97
Functionbc_3_genesis_block_parent
()
src/c2_blockchain/p3_consensus.rs:103
Functionbc_3_genesis_block_state
()
src/c2_blockchain/p3_consensus.rs:117
Functionbc_3_genesis_consensus_digest
()
src/c2_blockchain/p3_consensus.rs:123
Functionbc_3_odd_chain_invalid_first_block_after_fork
()
src/c2_blockchain/p3_consensus.rs:269
Functionbc_3_odd_chain_invalid_second_block_after_fork
()
src/c2_blockchain/p3_consensus.rs:280
Functionbc_3_odd_chain_valid
()
src/c2_blockchain/p3_consensus.rs:256
Functionbc_3_verify_forked_chain
()
src/c2_blockchain/p3_consensus.rs:291
Functionbc_3_verify_genesis_only
()
src/c2_blockchain/p3_consensus.rs:166
Functionbc_3_verify_three_blocks
()
src/c2_blockchain/p3_consensus.rs:173
Functionbc_4_block_with_invalid_header_does_not_check
()
src/c2_blockchain/p4_batched_extrinsics.rs:217
Functionbc_4_child_block
()
src/c2_blockchain/p4_batched_extrinsics.rs:149
Functionbc_4_child_block_empty
()
src/c2_blockchain/p4_batched_extrinsics.rs:133
Functionbc_4_child_header
()
src/c2_blockchain/p4_batched_extrinsics.rs:165
Functionbc_4_genesis_block
()
src/c2_blockchain/p4_batched_extrinsics.rs:124
Functionbc_4_genesis_header
()
src/c2_blockchain/p4_batched_extrinsics.rs:114
Functionbc_4_invalid_block_state_does_not_check
()
src/c2_blockchain/p4_batched_extrinsics.rs:208
Functionbc_4_invalid_header_does_not_check
()
src/c2_blockchain/p4_batched_extrinsics.rs:194
Functionbc_4_student_invalid_block_really_is_invalid
()
src/c2_blockchain/p4_batched_extrinsics.rs:226
Functionbc_4_verify_three_blocks
()
src/c2_blockchain/p4_batched_extrinsics.rs:185
Functionbc_5_heaviest_chain
()
src/c2_blockchain/p5_fork_choice.rs:167
Functionbc_5_longest_chain
()
src/c2_blockchain/p5_fork_choice.rs:137
Functionbc_5_longest_vs_heaviest
()
src/c2_blockchain/p5_fork_choice.rs:243
Functionbc_5_mine_to_custom_difficulty
()
src/c2_blockchain/p5_fork_choice.rs:153
Functionbc_5_most_even_blocks
()
src/c2_blockchain/p5_fork_choice.rs:197
Functionbc_6_block_with_invalid_header_doesnt_check
()
src/c2_blockchain/p6_rich_state.rs:248
Functionbc_6_child_block
()
src/c2_blockchain/p6_rich_state.rs:163
Functionbc_6_child_block_empty
()
src/c2_blockchain/p6_rich_state.rs:146
Functionbc_6_child_header
()
src/c2_blockchain/p6_rich_state.rs:180
Functionbc_6_genesis_block
()
src/c2_blockchain/p6_rich_state.rs:136
Functionbc_6_genesis_header
()
src/c2_blockchain/p6_rich_state.rs:126
Functionbc_6_invalid_block_state_doesnt_check
()
src/c2_blockchain/p6_rich_state.rs:238
Functionbc_6_invalid_header_doesnt_check
()
src/c2_blockchain/p6_rich_state.rs:223
Functionbc_6_student_invalid_block_really_is_invalid
()
src/c2_blockchain/p6_rich_state.rs:258
Functionbc_6_verify_three_blocks
()
src/c2_blockchain/p6_rich_state.rs:212
Methodbest_block
(&self, header: Header<C::Digest>)
src/c4_client/p3_fork_choice.rs:32
Methodbest_chain
Compare many chains and return the best one. It is always possible to compare several chains if you are able to compare two chains. Therefore this me
src/c2_blockchain/p5_fork_choice.rs:34
Methodbest_chain
(candidate_chains: &[&'a [Header]])
src/c2_blockchain/p5_fork_choice.rs:47
Functionbuild_valid_chain
Build and return a valid chain with the given number of blocks.
src/c2_blockchain/p2_extrinsic_state.rs:58
Functionchange_authorities
Create a PoA consensus engine that changes authorities part way through the chain's history. Given the initial authorities, the authorities after the
src/c3_consensus/p6_forking.rs:46
next →1–100 of 239, ranked by callers