About the Author |
|
xv | |
About the Technical Reviewer |
|
xvii | |
Chapter 1 Blockchain Basics |
|
1 | (30) |
|
Introduction to Cryptoeconomics |
|
|
2 | (6) |
|
|
3 | (5) |
|
|
8 | (5) |
|
Blocks + Chain = Blockchain |
|
|
9 | (4) |
|
Cryptomining by Cryptominers |
|
|
13 | (1) |
|
|
13 | (1) |
|
Cryptocurrencies Overload |
|
|
13 | (4) |
|
|
14 | (1) |
|
|
15 | (1) |
|
Alternative Cryptocurrency Coins (Altcoins) |
|
|
15 | (2) |
|
|
17 | (13) |
|
|
18 | (1) |
|
Proof of Work, Proof of Stake, and Delegated Proof of Stake |
|
|
19 | (8) |
|
|
27 | (1) |
|
|
28 | (1) |
|
|
28 | (1) |
|
|
29 | (1) |
|
|
30 | (1) |
Chapter 2 Blockchain Nodes |
|
31 | (42) |
|
Running a Blockchain Node |
|
|
31 | (21) |
|
|
32 | (4) |
|
Create a NEO Bookkeeping Node |
|
|
36 | (13) |
|
Create an EOS Block Producer |
|
|
49 | (3) |
|
|
52 | (20) |
|
|
61 | (2) |
|
|
63 | (2) |
|
|
65 | (6) |
|
|
71 | (1) |
|
|
72 | (1) |
Chapter 3 Creating Your Own Blockchain |
|
73 | (48) |
|
Creating a Basic P2P Network |
|
|
74 | (12) |
|
Creating Genesis Block and Sharing Blocks |
|
|
86 | (8) |
|
Registering Miners and Creating New Blocks |
|
|
94 | (7) |
|
Storing Blocks in LevelDB |
|
|
101 | (4) |
|
Creating a Blockchain Wallet |
|
|
105 | (4) |
|
|
109 | (4) |
|
Creating a Command-Line Interface |
|
|
113 | (5) |
|
|
118 | (1) |
|
|
119 | (2) |
Chapter 4 Bitcoin Wallets and Transactions |
|
121 | (52) |
|
Bitcoin Core RPC Resources |
|
|
121 | (2) |
|
|
123 | (6) |
|
Create a Legacy Wallet Address and Retrieve Private Keys |
|
|
124 | (2) |
|
Pay to Witness a Public Key Hash (P2WPKH): SegWit Soft Fork |
|
|
126 | (1) |
|
Elliptic Curve Digital Signature Algorithm |
|
|
127 | (2) |
|
|
129 | (38) |
|
|
130 | (2) |
|
|
132 | (2) |
|
Viewing Transactions on Block Explorer |
|
|
134 | (3) |
|
Sending Testnet Coins via the Bitcoin Core Wallet GUI |
|
|
137 | (12) |
|
Generating Raw Transactions with One Output |
|
|
149 | (8) |
|
Transactions that Require Multisignature |
|
|
157 | (1) |
|
Setting Electrum with a Multisignature Wallet |
|
|
157 | (9) |
|
Replaceable Transactions and Locktime |
|
|
166 | (1) |
|
|
167 | (4) |
|
Sending a Transaction with OP_RETURN |
|
|
167 | (3) |
|
|
170 | (1) |
|
|
171 | (2) |
Chapter 5 Ethereum Wallets and Smart Contracts |
|
173 | (40) |
|
Ganache Simulated Full-Node Client |
|
|
177 | (1) |
|
|
177 | (1) |
|
Ganache CLI: Listen to Port |
|
|
178 | (1) |
|
IntelliJ IDEA Plugin for Solidity |
|
|
178 | (1) |
|
|
179 | (14) |
|
Create Your Smart Contracts |
|
|
181 | (2) |
|
Connect Truffle to the Ganache Network |
|
|
183 | (1) |
|
"Hello, World" Smart Contract |
|
|
184 | (2) |
|
"MD5SmartContract" Smart Contract |
|
|
186 | (1) |
|
Create Truffle Migration Files for Your Smart Contract Deployment |
|
|
187 | (1) |
|
Compile Your Smart Contract with Truffle |
|
|
188 | (1) |
|
Deploy the Smart Contract to Your Development Network |
|
|
189 | (1) |
|
|
190 | (1) |
|
Interact with Your Smart Contract via the Truffle CLI |
|
|
191 | (2) |
|
|
193 | (2) |
|
Private Ethereum Blockchain with Geth |
|
|
195 | (7) |
|
Initialized Geth Private Blockchain |
|
|
195 | (2) |
|
|
197 | (1) |
|
Mine Ethereum for Your Private Testnet |
|
|
198 | (1) |
|
|
199 | (1) |
|
|
200 | (1) |
|
|
201 | (1) |
|
Connect the Mist Ethereum Wallet to Your Private Network |
|
|
202 | (4) |
|
Others to Interact with Your Smart Contract |
|
|
203 | (3) |
|
|
206 | (3) |
|
|
209 | (2) |
|
|
209 | (1) |
|
|
210 | (1) |
|
|
211 | (1) |
|
Recommended Tools for Smart Contracts |
|
|
211 | (1) |
|
|
211 | (2) |
Chapter 6 EOS.IO Wallets and Smart Contracts |
|
213 | (44) |
|
Setting Up a Testnet Environment |
|
|
216 | (18) |
|
|
216 | (2) |
|
|
218 | (2) |
|
|
220 | (1) |
|
keosd and nodeos Configuration Files |
|
|
220 | (1) |
|
Create and Manage a Wallet with cleos |
|
|
221 | (1) |
|
|
222 | (1) |
|
Delete and Back Up Wallets |
|
|
223 | (1) |
|
EOS.IO Wallet with Custom Name |
|
|
223 | (1) |
|
EOS.IO: Open, Lock, and Unlock a Wallet |
|
|
224 | (1) |
|
|
224 | (3) |
|
Spin Up a node with nodeos |
|
|
227 | (2) |
|
Re-spin Up a Testnet Local node (nodeos) |
|
|
229 | (1) |
|
|
230 | (3) |
|
Wallets, Keys, and Accounts: Complete Commands |
|
|
233 | (1) |
|
Custom, Single Signature (Single-Sig), and Multisignature (Multisig) |
|
|
234 | (1) |
|
"HelloWorld" Smart Contract |
|
|
234 | (3) |
|
"HelloWorld" Smart Contract Accounts |
|
|
234 | (1) |
|
|
235 | (2) |
|
|
237 | (1) |
|
Compile a Contract and Generate an ABI |
|
|
238 | (2) |
|
|
238 | (2) |
|
|
240 | (1) |
|
Interact with a Smart Contract Action |
|
|
241 | (1) |
|
|
241 | (4) |
|
|
241 | (1) |
|
Compile wasm with the Latest eosio.token Code |
|
|
242 | (1) |
|
|
242 | (1) |
|
|
243 | (1) |
|
|
244 | (1) |
|
|
244 | (1) |
|
Connecting to a Public Testnet Block Producer |
|
|
245 | (6) |
|
Buy Resource Allocation on the Public Testnet Block Producer |
|
|
248 | (2) |
|
Publish Your HelloWorld Contract on the Public Testnet |
|
|
250 | (1) |
|
|
251 | (4) |
|
Resource Allocation Explained |
|
|
253 | (1) |
|
|
253 | (1) |
|
Create an EOS.I0 Account on Mainnet |
|
|
254 | (1) |
|
Change Your Account's Public and Private Keys |
|
|
254 | (1) |
|
CPU and Bandwidth Allocations |
|
|
255 | (1) |
|
|
255 | (1) |
|
|
255 | (2) |
Chapter 7 NEO Blockchain and Smart Contracts |
|
257 | (42) |
|
NEO's High-Level Blockchain Architecture |
|
|
258 | (4) |
|
What Is NEO's Smart Economy? |
|
|
260 | (2) |
|
Setting Up Your Local Environment |
|
|
262 | (9) |
|
|
263 | (1) |
|
Install Visual Studio 2017 IDE |
|
|
263 | (1) |
|
|
264 | (3) |
|
Download NeoCompiler and Generate neon.dll |
|
|
267 | (2) |
|
neo-cli to Generate a NEO Node |
|
|
269 | (2) |
|
Create a Local NEO Private Testnet |
|
|
271 | (19) |
|
|
272 | (1) |
|
|
273 | (2) |
|
Install neo-privatenet-docker |
|
|
275 | (1) |
|
Start a Network and Claim Initial NEO and Gas |
|
|
275 | (2) |
|
Bootstrapping the Testnet |
|
|
277 | (1) |
|
|
277 | (2) |
|
Potential Problems During Installation |
|
|
279 | (2) |
|
|
281 | (1) |
|
Building the NeoContract Framework: Neo.SmartContract.Framework.dll |
|
|
282 | (2) |
|
Create a NEO "Hello, World" Project |
|
|
284 | (3) |
|
Coding the NEO "Hello, World" Smart Contract in C# |
|
|
287 | (1) |
|
Coding the NEO "Hello, World" Smart Contract in Python |
|
|
288 | (1) |
|
Compiling Your Smart Contracts to .avm |
|
|
289 | (1) |
|
Publish a Smart Contract on a Private Testnet |
|
|
290 | (2) |
|
|
292 | (1) |
|
|
292 | (1) |
|
Installing the neo-gui Client |
|
|
292 | (1) |
|
Ethereum vs. EOS vs. NEO : Smart Contracts Developer Perspective Showdown |
|
|
292 | (5) |
|
|
297 | (1) |
|
|
298 | (1) |
Chapter 8 Hyperledger |
|
299 | (50) |
|
|
300 | (4) |
|
Understanding Hyperledger Fabric |
|
|
304 | (4) |
|
Installing Hyperledger Fabric and Composer |
|
|
308 | (17) |
|
|
309 | (4) |
|
Installing VSCode with Hyperledger Composer Extension |
|
|
313 | (9) |
|
Spinning Off a Local Hyperledger Fabric Business Network |
|
|
322 | (3) |
|
|
325 | (1) |
|
"Hello, World" with Playground |
|
|
326 | (14) |
|
Deploying a Business Network |
|
|
327 | (1) |
|
Business Network Archive (.bna) |
|
|
328 | (1) |
|
|
329 | (2) |
|
|
331 | (1) |
|
|
331 | (1) |
|
|
332 | (1) |
|
|
333 | (1) |
|
Importing/Exporting the Model |
|
|
334 | (2) |
|
|
336 | (4) |
|
Deploying on a Local Hyperledger Fabric Network |
|
|
340 | (1) |
|
Running the "hello-network" Network |
|
|
341 | (2) |
|
Starting the "hello-network" Business Network and Admin Card |
|
|
341 | (1) |
|
Importing a Business Card |
|
|
342 | (1) |
|
|
343 | (1) |
|
|
344 | (3) |
|
Composer Runtime Install Error or Card Not Found |
|
|
344 | (1) |
|
Docker Unauthorized Authentication Required Error |
|
|
345 | (1) |
|
Docker Container Conflicting Errors |
|
|
345 | (1) |
|
|
346 | (1) |
|
|
347 | (2) |
Chapter 9 Build Dapps with Angular: Part I |
|
349 | (46) |
|
|
350 | (7) |
|
|
352 | (1) |
|
|
353 | (1) |
|
How Do You Create Your Own Dapp? |
|
|
354 | (3) |
|
|
357 | (37) |
|
|
359 | (17) |
|
|
376 | (6) |
|
|
382 | (12) |
|
|
394 | (1) |
Chapter 10 Build Dapps with Angular: Part II |
|
395 | (24) |
|
Transfer a Smart Contract |
|
|
396 | (10) |
|
|
398 | (2) |
|
Create the Truffle Development Network |
|
|
400 | (1) |
|
Deploy the Smart Contract |
|
|
401 | (5) |
|
Link with the Ethereum Network |
|
|
406 | (7) |
|
|
407 | (6) |
|
|
413 | (4) |
|
Test Your Dapp Functionality |
|
|
417 | (1) |
|
|
417 | (1) |
|
|
418 | (1) |
Chapter 11 Security and Compliance |
|
419 | (48) |
|
Security and Compliance Readiness |
|
|
421 | (10) |
|
|
421 | (2) |
|
|
423 | (4) |
|
Readiness Recommendations |
|
|
427 | (4) |
|
Common Blockchain Attacks |
|
|
431 | (25) |
|
|
431 | (6) |
|
Blockchain Network Attacks |
|
|
437 | (7) |
|
|
444 | (12) |
|
|
456 | (9) |
|
|
457 | (1) |
|
Discovery, Audit, and Test |
|
|
457 | (1) |
|
|
458 | (1) |
|
|
458 | (1) |
|
|
459 | (5) |
|
|
464 | (1) |
|
|
465 | (1) |
|
|
465 | (1) |
|
|
466 | (1) |
Chapter 12 Blockchain Beyond Crypto |
|
467 | (36) |
|
|
468 | (6) |
|
|
469 | (1) |
|
|
470 | (2) |
|
|
472 | (1) |
|
Smart Contracts and Dapps |
|
|
473 | (1) |
|
Decentralization of Industries and Verticals |
|
|
474 | (26) |
|
|
475 | (3) |
|
|
478 | (3) |
|
|
481 | (2) |
|
|
483 | (2) |
|
|
485 | (2) |
|
|
487 | (1) |
|
|
487 | (1) |
|
|
488 | (2) |
|
|
490 | (4) |
|
|
494 | (1) |
|
|
495 | (5) |
|
|
500 | (1) |
|
|
500 | (3) |
Index |
|
503 | |