Parity Development Stack

Tomasz Drwięga

@tomusdrw

Parity Technologies

6th Dec, Tech Deep Dive

What we do in Parity Tech?

Core & Protocol Development
(Rust)

Second Layer / Middleware
(Node.js / Rust)

Dapps/UI
& Dev. Libraries (JavaScript)

Core & Protocol Development

  • Ethereum
  • Bitcoin
  • IPFS
  • Polkadot
  • Light Client
  • Whisper
  • Secret Store

Parity Ethereum Client

Pluggable consensus

  • Ethash
  • AuRa (PoA)
  • Tendermint (PBFT)
  • InstantSeal (Dev)

Standards compliant

  • JSON-RPC
    (http, ws, ipc)
  • PUB-SUB
  • Custom extensions

Unique features of Parity

  • Warp-Sync
  • State-trie pruning
  • Tracing API
  • FatDB
  • Generic Pub-Sub
  • Secure Transaction Signer
  • Parity Light Protocol
  • On-Chain Auto-Updating
  • Network Permissions
  • Private transactions

Middlewares

  • SMS Verification
  • E-mail Verification
  • PICOPS
  • Transaction Scheduler
  • Network Bridges

Certifier Interface

  • All certifiers using a common ABI
  • Easy to integrate new Certifiers (Registry)
  • Easy to use existing certifiers

ID Service APIs

  • Regular ReSTful API for ID
  • Easy to integrate without touching the chain
  • Open-Source you can setup your own

 id.parity.io, sms-verification.parity.io, email-verification.parity.io

Dapps & UI tools

  • Parity 1.9 contains a revamped Wallet
  • Thin Kernel (Shell) + Dapps
  • Each part of the Wallet can be customized
  • Dapp Store

Mobile Signer

Parity Wallet

Chrome Extension

  • Integrate with web3-enabled websites
  • Connects to your local node
  • Future plans:
    • augment identities

Contract IDE

Dapp

Development Libraries

  • @parity/api
  • oo7 toolchain

@parity/api

  • Web3 replacement
  • Smaller, simpler and promise-based
  • PubSub support
  • Support for parity-specific RPCs
  • For Node.js & Browser

oo7 & oo7-parity

  • Reactive bonds for Ethereum
  • No need to poll - you subscribe for updates
  • Easily composable

oo7 & oo7-parity

// npm i oo7-parity
import {Bonds, hexToAscii} from 'oo7-parity'

const bonds = Bonds()

// A bond for latest block number
bonds.blockNumber
    .tie(console.log) // 5971971

// A bond for latest block extra data
bonds.blocks[bonds.blockNumber]
    .extraData
    .map(hexToAscii)
    .tie(console.log) // Parity.1.7

oo7 & oo7-parity

// npm i oo7-parity
import {Bonds, formatBalance} from 'oo7-parity'

const bonds = Bonds()

bonds.balance(bonds.me)
    .map(formatBalance)
    .tie(console.log) // 4.45 ETH

Bonds also work for contract queries and transactions

oo7-react

// Import reactive element
import {Rspan} from 'oo7-react'
import {Bonds, formatBalance} from 'oo7-parity'

const bond = new Bond()

class App extends Component {
  render() {
    return (
      <Rspan>
        {bonds.me} has 
        {bonds.balance(bonds.me).map(formatBalance)}
      </Rspan>
    );
  }
}

parity-reactive-ui

import {Bonds} from 'oo7-parity'
import {AccountIcon} from 'parity-reactive-ui'

const bonds = Bonds();

class App extends React.Component {
  render () {
    return (
        <AccountIcon address={bonds.me} />
    )
  }
}

Thank you!

Tomasz Drwięga

@tomusdrw

Parity Technologies

Made with Slides.com