万本电子书0元读

万本电子书0元读

顶部广告

Blockchain Developer's Guide电子书

售       价:¥

2人正在读 | 0人评论 9.8

作       者:Brenn Hill

出  版  社:Packt Publishing

出版时间:2018-12-21

字       数:71.4万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Build real-world projects like a smart contract deployment platform, betting apps, wallet services, and much more using blockchain Key Features *Apply blockchain principles and features for making your life and business better *Understand Ethereum for smart contracts and DApp deployment *Tackle current and future challenges and problems relating to blockchain Book Description Blockchain applications provide a single-shared ledger to eliminate trust issues involving multiple stakeholders. It is the main technical innovation of Bitcoin, where it serves as the public ledger for Bitcoin transactions. Blockchain Developer's Guide takes you through the electrifying world of blockchain technology. It begins with the basic design of a blockchain and elaborates concepts, such as Initial Coin Offerings (ICOs), tokens, smart contracts, and other related terminologies. You will then explore the components of Ethereum, such as Ether tokens, transactions, and smart contracts that you need to build simple DApps. Blockchain Developer's Guide also explains why you must specifically use Solidity for Ethereum-based projects and lets you explore different blockchains with easy-to-follow examples. You will learn a wide range of concepts - beginning with cryptography in cryptocurrencies and including ether security, mining, and smart contracts. You will learn how to use web sockets and various API services for Ethereum. By the end of this Learning Path, you will be able to build efficient decentralized applications. This Learning Path includes content from the following Packt products: *Blockchain Quick Reference by Brenn Hill, Samanyu Chopra, Paul Valencourt *Building Blockchain Projects by Narayan Prusty What you will learn *Understand how various components of the blockchain architecture work *Get familiar with cryptography and the mechanics behind blockchain *Apply consensus protocol to determine the business sustainability *Understand what ICOs and crypto-mining are, and how they work Who this book is for Blockchain Developer's Guide is for you if you want to get to grips with the blockchain technology and develop your own distributed applications. It is also designed for those who want to polish their existing knowledge regarding the various pillars of the blockchain ecosystem. Prior exposure to an object-oriented programming language such as JavaScript is needed.
目录展开

Title Page

Copyright

Blockchain Developer's Guide

About Packt

Why subscribe?

Packt.com

Contributors

About the authors

Packt is searching for authors like you

Preface

Who this book is for

What this book covers

To get the most out of this book

Download the example code files

Conventions used

Get in touch

Reviews

Blockchain 101

Processing a financial transaction

Ledger

Concept of a trustless system

Introducing blockchain

General elements of blockchain

Peer-to-peer network

Block

Block header

Addresses

Wallets

Transaction

Nodes

What does blockchain solve?

Types of blockchains

Public blockchain

Semi-private blockchain

Private blockchain

Consortium blockchain

Byzantine generals problem

Consensus

Blockchain in a nutshell

Benefits

Banking records

Medical records

Government records

Creative and copyright records

University degree records

Challenges

Complexity

Network scalability

Speed and cost

Double spending

Summary

Components and Structure of Blockchain

Blocks

The chain between blocks

Hashing and signatures

Digital signatures

What are digital keys?

Example block data

Example Ethereum block

Bitcoin block

Global state

Block time and block size

Blockchain miners

Blockchain validators

Smart contracts

Blockchain speed

How to calculate blockchain throughput

Comparisons with traditional networks

Summary

Decentralization Versus Distributed Systems

Distributed systems

Resiliency

Fault tolerance and failure isolation

Consensus and coordination

Backups

Consistency

Peer-to-peer systems

Decentralized systems

Principles of decentralized systems

Open access

Non-hierarchical

Ecosystem diversity

Transparency

Downsides

Speed

Censorship resistance

Chaos and non-determinism

Summary

Cryptography and Mechanics Behind Blockchain

Principles of security

Historical perspective – classical cryptography

Types of cryptography

Symmetric cryptography

Asymmetric (public-key) cryptography

Signatures

Hashing

The avalanche effect

Collisions

Hashing a block

Hashing outside PoW

Summary

Bitcoin

The history of Bitcoin

Why Bitcoin is volatile

Keys and addresses

Currency units

Vanity addresses

Base58 check encoding

Transactions

Types

Pay-to-Public-Key Hash

Pay-to-Script Hash

Blocks

Genesis block

Bitcoin network

Types of nodes

Full node

Lightweight nodes

Other nodes

Network discovery

Finding peers

DNS seeds

Static IPs

Wallets

Types

Deterministic wallet

Deterministic wallets

HD wallets

Non-deterministic wallet

Summary

Altcoins

Introducing Altcoins

Tokens

Ethereum

Omni Layer

NEO

Waves

Counterparty

Alternative currency

Monetary alternatives

Consensus alternatives

Litecoin

Ether

Ripple

Bitcoin Cash

Acquiring cryptocurrency

Mining of cryptocurrency

Bitcoin mining

Mining difficulty

Mining pools

Altcoin mining

Cryptocurrency exchanges

Cryptocurrency wallets

Summary

Achieving Consensus

Practical Byzantine fault tolerance algorithm

Byzantine faults

How PBFT works

Proof of Work

How the PoW problem works in Bitcoin

Proof of Stake

The nothing-at-stake attack

Variations

Delegated Proof of Stake

Tendermint consensus

Proof of Authority

Establishing authority

Proof of Elapsed time

Summary

References

Advanced Blockchain Concepts

Blockchain and banks

Unbanked – going pure crypto

Fixing pegs

Buying options

Why regulated exchanges?

Unbanked and unincorporated?

The DAO

Decentralizing an organization

Putting a corporation on a blockchain

Cutting out the middle man

Providing capital

Social purpose – blockchain as leveler

Banking the unbanked

Silk road LLC – privacy and ethics

Tracking all the things

Defeating some privacy issues with zero-knowledge proofs

Unwrapping the concept of zero-knowledge proofs

Summary

Cryptocurrency Wallets

Introduction to cryptocurrency wallets

Transactions in cryptocurrency wallets

Types of cryptocurrency wallets

Currency support

Tenancy

Software wallets

Hardware wallets

Paper wallets

Brain wallet

Usage frequency

Key derivation

Non-deterministic wallet

Deterministic wallets

Hierarchical deterministic wallets

Mnemonic codes

Key generation process in HD wallets

Child key derivation

Private key generation

Extended keys

Summary

Alternate Blockchains

Various uses of blockchain

Government

Healthcare

Medical research

Supply chain

Copyright

Fine art

Shipping

Energy

Computation and data storage

Identification and social security

Enterprise

Ripple

Transactions

Stellar

Tendermint

Monax

Summary

Hyperledger and Enterprise Blockchains

History of Hyperledger

Hyperledger projects

Hyperledger Burrow

Hyperledger Sawtooth

Sawtooth architecture

Transaction families

Transactions and batches

The key pieces

Hyperledger Fabric

Architecture choices and features

Organizational focus

Private channels

Assets

Smart contracts

Advantages of Fabric

Hyperledger Iroha

Hyperledger Indy

Tools in Hyperledger

Hyperledger Caliper

Hyperledger Composer

Hyperledger Cello

Hyperledger Explorer

Hyperledger Quilt

Relationships between the tools

Which Hyperledger project should you use?

Using Hyperledger

Summary

Ethereum 101

Introducing Ethereum

Components of Ethereum

Ethereum accounts

Ethereum network

Ethereum public MainNet

Ethereum clients

Geth

Installing Geth

Managing accounts

Ethereum gas

Ethereum virtual machine

Execution environment

Ethereum block

Block header

Ommers or uncles

Messages

Ethash

Ether

Procuring ether

Trading

Summary

Solidity 101

Basics of Solidity

The basics of working on Solidity

Using the compiler

Programming in Solidity

Laying out a Solidity file

Importing files

Commenting

Tags

Structure of a contract

State variables

Functions

Function modifiers

Events

Types

Value types

Boolean

Integers

Address

Array value type

Literal

Enums

Function

Function Modifiers

Reference types

Structs

Data location

Mapping

Units and global variables

Summary

Smart Contracts

Why smart contracts?

Automating processes and resolutions between parties

Real-world example

Increased transparency

Ending centralized data

Increased fairness

Smart contract approaches

Example Ethereum smart contracts

The promises

Security considerations

Dealing with threats in smart contracts

Limitations of smart contracts

Data quality and mistakes

Legal validity

Stability of meaning

Summary

References

Ethereum Accounts and Ether Tokens

Introducing Ethereum accounts

Ethereum state transition function

Genesis block

Transaction receipts

Elements

Post-transaction state

Gas used

Set of logs

The bloom filter

Structure

Transaction sub state

Suicide set

Log series

Refund balance

Messages

Calls

Ethereum block validation

Uncles validation

Block difficulty

Block finalization

Disadvantages of Ethereum-based tokens

Summary

Decentralized Applications

What makes an application decentralized

Defining a decentralized application

Decentralized apps and blockchain

Using blockchain does not make an application decentralized

Major decentralized blockchain applications

Aragon

district0x

What is a district?

Ethereum name service

Civic/uPort

Gnosis

Steemit

CryptoKitties

Summary

References

Mining

Cryptocurrency mining

The mining process

Algorithms

Mining hardware

CPU-based mining

GPU-based mining

FPGA-based mining

ASIC-based mining

Miner types

Cloud mining

Hardware mining

Mining rigs

Mining pools

Pay-per-share – PPS

Proportional – PROP

Pay-per-last-N-shares – PPLNS

The double geometric method – DGM

Shared maximum pay per share – SMPPS

Equalized shared maximum pay per share – ESMPPS

Recent shared maximum pay per share – RSMPPS

Capped pay per share with recent backpay – CPPSRB

Bitcoin pooled mining – BPM

Pay on target – POT

SCORE

Popular pools

Mining software

Summary

ICO 101

The current state of the ICO market

Increasing volume of ICOs

Typical aspects of an ICO campaign

Whitepaper

Private placement

Pre-sale

Good pre-sale practices

Public sale

Capped sale

Uncapped sale

Dutch auction

Influencer marketing

PR campaigns

Content marketing

ICO reviewers

Smart contract and prototype development

Code audits

Bounty campaigns

Airdrops

Road shows

Issues with ICOs and blockchain projects

Proof of product-market fit and traction

Low barrier to entry

Does a project really need the blockchain?

Misleading token practices

Legality

Utility versus Security

Other considerations

Sustainability

Advantages of ICOs

Liquidity

Lack of gatekeepers

Minimal investment sizes

Notable scams

Onecoin

Pincoin and iFan

Bitconnect

Other problems

Major hacks

The DAO

Parity

Securing an ICO

SSH key locked servers

DNS security

Intrusion detection

Purchase related domains

Monitor social channels

Multi-signature wallets

Code audits

Conclusion

References

Creating Your Own Currency

Understanding types of cryptocurrency

Tokens based on existing blockchains

Creating a new blockchain from scratch

A forked blockchain with one's own genesis block

Litecoin's development

The process

Creating one's own cryptocurrency

Setting up Litecoin

Platform selection

Preparation

Dependency installation

Build instructions

Setting up our own coin

Port selection

The setting of block-related parameters

Amount limit

The coinbase maturity number

Genesis block creation

Wallet address

Checkpoints

Creatives and graphics

Summing up

Summary

Scalability and Other Challenges

Scalability and decentralization

Blockchains in business

Usability

Lack of protection

51% attacks

Network forks

Catastrophic bugs

Lack of interoperability

Low availability of blockchain skills

Privacy

Energy consumption

Summary

References

Future of Blockchain

Ongoing fragmentation and specialization

Video games

Real estate

Logistics

Licensing

Industry consortiums

A large number of total-loss projects

Legal and regulatory evolution

Security token offerings

Aggregate and insurance products

Technological stabilization

Ethereum and Hyperledger

Service consolidation and product offerings

Cross-chain communication

Intersecting with AI and IoT

Blockchain-intersecting AI

Blockchain-intersecting IoT

Summary

Understanding Decentralized Applications

Decentralized autonomous organization

User identity in DApps

User accounts in DApps

Accessing the centralized apps

Internal currency in DApps

Disadvantages of internal currency in DApps

What are permissioned DApps?

Popular DApps

Bitcoin

What is a ledger?

What is blockchain?

Is Bitcoin legal?

Why would someone use Bitcoin?

Ethereum

The Hyperledger project

IPFS

How does it work?

Filecoin

Namecoin

.bit domains

Dash

Decentralized governance and budgeting

Decentralized service

BigChainDB

OpenBazaar

Ripple

Summary

Understanding How Ethereum Works

Transactions

Timestamp

Nonce

Block time

Forking

Genesis block

Peer discovery

Whisper and Swarm

Ethereum Wallet

Serenity

Payment and state channels

Proof-of-stake and casper

Sharding

Summary

Writing Smart Contracts

Solidity source files

The structure of a smart contract

Data location

What are the different data types?

Arrays

Strings

Structs

Enums

Mappings

The delete operator

Conversion between elementary types

Using var

Control structures

Creating contracts using the new operator

Exceptions

External function calls

Features of contracts

Visibility

Function modifiers

The fallback function

Inheritance

The super keyword

Abstract contracts

Libraries

Using for

Returning multiple values

Importing other Solidity source files

Globally available variables

Block and transaction properties

Address type related

Contract related

Ether units

Proof of existence, integrity, and ownership contract

Compiling and deploying contracts

Summary

Getting Started with web3.js

Introduction to web3.js

Importing web3.js

Connecting to nodes

The API structure

BigNumber.js

Unit conversion

Retrieving gas price, balance, and transaction details

Sending ether

Working with contracts

Retrieving and listening to contract events

Building a client for an ownership contract

The project structure

Building the backend

Building the frontend

Testing the client

Summary

Building a Wallet Service

hooked-web3-provider and ethereumjs-tx libraries

Introduction to LightWallet

HD derivation path

Building a wallet service

Prerequisites

Project structure

Building the backend

Building the frontend

Testing

Summary

Building a Smart Contract Deployment Platform

Calculating a transaction's nonce

Introducing solcjs

Installing solcjs

solcjs APIs

Using a different compiler version

Linking libraries

Updating the ABI

Building a contract deployment platform

The project structure

Building the backend

Building the frontend

Testing

Summary

Building a Betting App

Introduction to Oraclize

How does it work?

Data sources

Proof of authenticity

Pricing

Getting started with the Oraclize API

Setting the proof type and storage location

Sending queries

Scheduling queries

Custom gas

Callback functions

Parsing helpers

Getting the query price

Encrypting queries

Decrypting the data source

Oraclize web IDE

Working with strings

Building the betting contract

Building a client for the betting contract

Projecting the structure

Building the backend

Building the frontend

Testing the client

Summary

Building Enterprise Level Smart Contracts

Exploring ethereumjs-testrpc

Installation and usage

The testrpc command-line application

Using ethereumjs-testrpc as a web3 provider or as an HTTP server

Available RPC methods

What are event topics?

Getting started with truffle-contract

Installing and importing truffle-contract

Setting up a testing environment

The truffle-contract API

The contract abstraction API

Creating contract instances

The contract instance API

Introduction to truffle

Installing truffle

Initializing truffle

Compiling contracts

Configuration files

Deploying contracts

Migration files

Writing migrations

Unit testing contracts

Writing tests in JavaScript

Writing tests in Solidity

How to send ether to a test contract

Running tests

Package management

Package management via NPM

Package management via EthPM

Using contracts of packages within your contracts

Using artifacts of packages within your JavaScript code

Accessing a package's contracts deployed addresses in Solidity

Using truffle's console

Running external scripts in truffle's context

Truffle's build pipeline

Running an external command

Running a custom function

Truffle's default builder

Building a client

Truffle's server

Summary

Building a Consortium Blockchain

What is a consortium blockchain?

What is Proof-of-Authority consensus?

Introduction to parity

Understanding how Aura works

Getting parity running

Installing rust

Linux

OS X

Windows

Downloading, installing and running parity

Creating a private network

Creating accounts

Creating a specification file

Launching nodes

Connecting nodes

Permissioning and privacy

Summary

Other Books You May Enjoy

Leave a review - let other readers know what you think

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部