parity progress report

Post on 12-Apr-2017

187 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Progress Report

Parity

Parity

What is Parity?

Parity Ethereum Client is software made by Parity Technologies

● Acts as a “full” node on the Ethereum network

● Keeps a synchronised block chain to audit other nodes

● Manages secret keys; signs and publishes transactions

● Written in Rust for correctness, performance and footprint

● Portable - works on Windows, Mac OS and Linux/Unix

● Modular actor-based architecture for reliability

Parity

What is Parity?

Advanced Ethereum client:

● State-trie pruning keeps database size to a minimum

● Auto-upgrading keeps node up to date via smart-contract

● Light-client operation for minimal-resource/embedded clients

● Chain-specification files for multi-chain interoperability

● Consensus-abstraction for pluggable consensus algorithms

Parity

PAR

● Fully syncs in around 60s● Serves & shares:

○ Compressed, condensed, aggregated state-trie data

○ Cryptographic manifests

● Multi-level security● Downloads receipts &

transactions to ensure full compatibility

Parity wire protocol for Warp-sync

Parity

PIP● Builds on Foundation’s LES

protocol● Request pipelining to

minimize round-trips● Responses fully provable:

sybil attack resistantParity light client Protocol

Parity

VaultsKeep your addresses to

yourself

● Geth-dialect of wallet files include address in plaintext

● Vaults encrypt address and other metadata of key files

● One path = one password● Enter path’s password to

see addresses of key files

Parity

Deep TracingFigure out what really

happened

● New trace_ API● Allows for:

○ state deltas○ VM trace○ deep transaction trace

● Used for:○ preview transactions○ re-run transactions

Parity

TendermintProof-of-Authority /

Proof-of-Stake pluggable consensus algorithm

● High-performance PBFT-based consensus algorithm

● Authorities controlled via smart-contract

● Proof-of-Stake variant

Parity

StratumSupport for Stratum

notification

● High-performance mining hardware can get TCP notifications of new work

Parity

Scheduled transactions

Transactions can be published only on certain

conditions

● Avoid publishing transactions until a specified:○ Block number○ Block timestamp

● “Alarm clock”● Scheduled transactions

persist between runs

Parity

Auto-updatingParity will stay in sync with

the network. Always.

● Multiple functions:○ Always○ Never○ Track versus minor-version○ Critical only○ Download only

● Controlled by smart-contract

● Smart-contract has partially-automated, multi-phase multi-key system

Parity

Parity Infrastructure

Smart contracts and services

● Registry hierarchical name registry

● TokenReg, DappReg, BadgeReg network-maintained indexes

● GithubHint/URLHint hash to URL hint system

● Operations Client version & consensus algorithm database/DAO

● SMSVerification SMS-based identity verification system

● EmailVerification e-Mail-based identity verification system

Parity

OperationsThe right information to keep network operations

going.

● Multi-stakeholder smart contract

● Multi-client, multi-track, multi-release, multi-binary

● Tracks consensus protocol● Implements much of

“Yellow Paper council”● Forks require teams signoff● Chronicles which releases

support which forks

Parity

SMS-CertifierFirst tool to fight Sybil

● Centralised service :(● Accounts get certified that

they have unique phone associated

● Low cost (12 Finney)● No data released on chain● Only hash stored on server

Parity

Email-CertifierSend Ether to an e-mail

address

● Centralised service :(● Accounts get certified that

they correspond to an email address

● Free● Email hash placed on chain● ETH address resolvable

Parity

What is Parity Wallet?

Primary user interface for the Parity Ethereum client

● Account/identity management

● Wallet management

● Contract development, deployment, management

● Secure authorisation & signing

● Transaction tracing and node management

● (Decentralised) Application publishing and management

● Chrome Browser Extension support

Parity

Account & Identity Management

● Name display: local and Registry

● Name input: local, Registry and e-Mail certified

● Displays Ether and Standard Tokens via Token Registry

● Displays certifications via Badge Registry

● Bestow and filter by tags

● Standard recovery phrase key generator

Parity

Accounts management

Parity

Creating a new account

Parity

Vault management

Parity

Account page

Parity

Sending funds to an eMail address

Parity

Wallet Management

● Seamless multi-signature wallet support

● Similar to accounts: taggable, badges, tokens

● One-click transaction approval

● Efficient transaction history

● Coming-soon: Wallet support for approving DApp transactions

Parity

Wallet management

Parity

Contract Development/Deployment/Management

● Solidity editor and compiler

● Streamlined deployment

● Management interface for:○ viewing public properties

○ calling into contract

○ executing transactions

○ inspecting events from contracts

Parity

Contract editor

Parity

Deploying a contract with parameters

Parity

Managing a contract

Parity

Executing a contract transaction

Parity

Secure Approval/Signing

● Multi-layer security approach:○ Only isolated high-security Parity module for storing/using secrets

○ Only high-security API allows signing to be approved by supplying password

○ Only JS signer code served by Parity has access by default

● In-Application overlay (“Signer Snippet”)○ Secure background pattern to ensure DApp isn’t sniffing password

○ Allows primary/default account selection

○ Identifies Application responsible for request

○ Works on Parity-hosted “DApplications” and Ethereum-enabled websites

○ Allows tweaking of parameters (gas, gasPrice and conditional publishing)

Parity

Signer with pending transaction

Parity

Tweaking transaction parameters

Parity

Application Publication & Management

● DApp manifest allows for metadata display

● (Decentralised) Applications visible on main Applications page

● Three sections:○ Local (those found in your parity/dapps directory)

○ Built-in (those that come bundled with Parity Wallet)

○ Network (those found published to the DApps Registry)

● Parity hosts all allowing for ease of development

● Coming soon: DApp permissions to allow certain DApps to access

greater portion of the API

Parity

Applications management

Parity

Node management & Transaction tracing

● View node information (consensus/chain/logging)

● Alter node operation (syncing & network)

● Published transactions can be traced

● View transaction queue to see nodes to which propagated

● May be resubmitted with altered gas/gasPrice

Parity

Viewing the transaction queue

Parity

Parity Dapp Tooling

Helping you build dapps

● RPC documentation auto-generated from the code with examples

● parity.js our low-level Promise-based alternative to web3.js

● oo7-parity.js our high-level Bond-based Dapp API

● oo7-react.js our high-level Bond & React-based helper API

● React component library for Dapp building blocks

● Tutorial available on Parity wiki

Parity

RPC DocsAutogenerated RPC

documentation

● All Parity RPCs now have markdown documentation auto-generated from code

Parity

parity.jsPromise-based Ethereum

Javascript API

Simple, async & compatible

api.eth.blockNumber()

.then(api.eth.getBlockByNumber)

.then(x => x.author)

.then(api.eth.getBalance)

.then(console.log)

Parity

oo7-parity.jsAdvanced Bond-based

Ethereum Javascript API

Succinct, Async and Reactive

bonds.balance(

bonds.blocks(

bonds.blockNumber

).author

).tie(console.log)

Bond = Ongoing Promise

Parity

oo7-react.jsBond-based React/Ethereum

Javascript API

render() {

return (<Rspan>{

Bonds.balance(

Bonds.block.author

).map(formatBalance)

}</Rspan>);

}

Parity

Works well with contracts

class App extends React.Component {constructor() {

super();this.coin = bonds.makeContract(

api.abi.erc20token, bonds.registry.getAddress(‘gavcoin’, ‘A’)

);}render() {

return (<div>You have <Rspan>{this.coin.balanceOf(bonds.accounts[0])

}</Rspan> GAV and <Rspan>{bonds.balance(bonds.accounts[0])

.map(formatBalance)}</Rspan>.</div>);

}}

● Fully reactive● Easy to extend● Composable● Simple API● Promise-friendly

Parity

Create new Bonded React Components

class Account extends ReactiveComponent {constructor() { super([‘address’]); }render() {

return (<span>{self.state.address}(<Balance value={

bonds.balance(self.state.address)}/>)

</span>);}

}class Balance extends ReactiveComponent {

constructor() { super([‘value’]); }render() {

return (<span>{formatBalance(self.state.value)

}</span>);}

}

● Fully reactive● Easy to extend● Composable● Simple API● Promise-friendly

What is Polkadot?

What does it provide?

Pooled securityall constituent chains of our community guaranteed

Trust-free transactionsconstituent chains can send transactions to each other

Entirely generalfree-form messages: no set semantics; same guarantees

as contract-calling in ethereum

How does it work?

Relay-chainthe top-level which coordinates consensus and

transaction delivery between constituents

Parachainsconstituent chains which gather and process

transactions

Basics of the Relay-chain

No functionalityno external transactions, no smart contracts

Governance built-intoken ownership gives voting privileges

Polkadot’s Relay-chain ensures that transactions between the constituent parachains get delivered and that they are all operating correctly.

Parachains can take any form of globally-coherent consensus system; potentially even another relay-chain. Enterprise-friendly encrypted, private, proof-of-authority chains are supported.

Bridges can exist to ferry transactions between the relay chain and existing, independent chains like Ethereum.

Extensible, Scalable and Flexible

Open parachains can be tightly integrated into Polkadot, using Polkadot’s validators to ensure their correct operation. They are the easiest and cheapest form of integration.

Closed parachains can be weakly integrated into Polkadot, giving them the freedom to manage validation internally e.g. using a set of recognised authorities.

Bridged chains can be integrated into Polkadot too. Bridges add complexity and cost to integration, but allow the chain to exercise its own means of consensus.

Polkadot network

Consortium parachain

Authorities manage parachain validation, access controls &c.

Transactions andinter-chain consensus

PolkadotJoin the dots

@gavofyork @polkadotproject @polkadotnetworkgithub.com/polkadot-io gitter.im/polkadot-io/Lobby

top related