3. Agenda
3Sawtooth Lake
• Blockchain De-obfuscation
• Hyperledger Sawtooth Lake differentiation
• Working with Sawtooth Lake
https://github.com/hyperledger/sawtooth-core
4. Blockchain = Distributed Ledger
4
Distributed
Ledger
Sawtooth Lake
n
n-1
n-2
Each node is an instance of a database (ledger)
managed by all participants.
Within each database blocks of transactions are
cryptographically chained in order.
5. Why Blockchain
5Sawtooth Lake
Mutually distrusting organizations update
the same database.
Immutable transaction history
High availability
• Crash Fault Tolerant
• Byzantine Fault Tolerant
• Liveness
n
n-1
n-2
6. Why Not Blockchain
6Sawtooth Lake
Active Research Areas:
• Throughput
• “Private Transactions”
Wrong Usage Model:
• Internal-only Business Process
n
n-1
n-2
Today when people talk about blockchain security, they mostly mean
availability and integrity guarantees. Confidentiality is open research.
7. Bad Enterprise Blockchain Shortcuts
7Sawtooth Lake
• Centralized Architectures
• No Ledger State (database fields)
?
?
?
A centralized architecture removes the main value of a distributed ledger.
Committing only transaction receipts turns the database into a log of opaque events.
8. Why Sawtooth Lake
8Sawtooth Lake
• Distributed
• Consensus of Shared State
• Safe Smart Contracts
PoET
Keep Distributed
Ledgers,
Distributed
GlobalDesign for Scale
Trans -
action
Families
Make Smart
Contracts Safe
10. v0.8 Highlighted New Features
Transaction Processing:
• Parallel Execution
• Multi-Language Support
• Code for Sawtooth Lake using your favorite language
Operations:
• On-chain configuration
10
12. Transaction Families
Transaction Families encapsulate business
logic on Sawtooth Lake.
A Transaction Family can be as simple as a
single transaction format, with associated
validity and state update logic…
…or as complex as a VM with opcode
accounting and bytecode stored in state --
‘smart contracts’.
The choice is up to the developer.
Sawtooth Lake allows these concepts to
coexist in the same instance of the blockchain -
- same blocks, same global state.
13. Transaction Families
The 0.8 architecture segregates
transaction payload definition,
validation and state management
logic from the core system.
The core is responsible for:
• Message Handling
• Block Publishing/Validation
• Consensus
• Global State Management
14. Transaction Families
Transactions are wrapped in batches which provide an
atomic unit of commit for multiple transactions (which can
span transaction families).
Transactions declare input and output addresses
(including wildcards) to allow for state access isolation
calculations (topological sort on DAG) in the scheduler.
These inputs and outputs are enforced by the Context
Manager on the context established for the transaction.
This allows parallel validation and state delta aggregation
across a potentially large number of transactions (and
across blocks).
15. On chain configuration
Flexibility of config transaction
family
Config Transaction Family includes a
voting mechanism for permissioned
ledger admins based on registration of
pubkeys
Extensible – e.g. Establish a
permissioned validator whitelist as part of
genesis block
Setting (Examples) Value
sawtooth.poet.target_wait_time 5
sawtooth.validator.max_transactions_per_block 100000
sawtooth.validator.transaction_families [{
"family": "intkey",
"version": "1.0"
},
{
"family": "xo",
"version": "1.0"
}]
16. Check it out
Give Sawtooth Lake a try
• Work through the tutorials
• Build your own transaction family to explore use cases
Become a contributor
• Join the community
• Help with docs, code, examples
• Become an expert and help others on chat
Links
• Code: https://github.com/hyperledger/sawtooth-core
• Docs: http://IntelLedger.github.io
• Chat: https://chat.hyperledger.org/channel/sawtoothlake
18. Other Example Tools & Applications
Stats Client Bond Transaction
Family
Marketplace
Navigator
18Sawtooth Lake
19. Dev Ops & Validation
19Sawtooth Lake
Maturation of Tools (another great community area!)
New unified CLI
Better Interoperability with Docker and large cloud
networks
Improved / improving Dev flows
PR, integration testing and Jenkins
jira.hyperledger.org/projects/STL/issues/STL-13
Long Running Regression Environment