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
Parity Development Stack
By Tomasz Drwięga
Parity Development Stack
- 653