SlideShare a Scribd company logo
Software Engineer, Ground X
- 서비스 체인 개발
- 카카오톡 디지털 지갑 Klip backend 개발
Division Manager, TmaxData
- RDBMS backend 개발
- Deep learning 기반 data center 관리
시스템 개발
● 올해 3월부터 Ground X에서 Klaytn 개발에
참여하고 있습니다.
● 서비스 체인 개발을 담당하고 있고
최근에는 카카오톡에 들어갈 디지털 지갑
Klip의 backend도 개발하고 있습니다
나정호, Albert
∙Service Chain Overview
∙Problems To Solve
∙Multi-Bridge Architecture
∙Recovery
∙Test Results
∙Future Work
Service Chain Overview
CN : Consensus Node
SCN: Service Chain Consensus Node
PN: Proxy Node
SPN: Service Chain Proxy Node
EN: Endpoint Node
SEN: Service Chain Endpoint Node
P2P Network
(Anchoring/Value Transfer)
Service Chain Overview
Service chainMain chain
SENEN
P2P Network
(Anchoring/Value Transfer)
Bridge
contract
Bridge
contract
Main-Bridge Sub-Bridge
Service chainMain chain
SENEN
P2P Network
Bridge
contract
Bridge
contract
TX 1: 10 KLAY to Bob
Alice
emit
RequestValue
Transfer()
TX 2: 10 KLAY to Bob
Operator
Value Transfer Example
Problems To Solve - Network Failure
P2P Network
(Anchoring/Value Transfer)
Problems To Solve - Node Failure
P2P Network
(Anchoring/Value Transfer)
Problems To Solve - Security of Operator Key
Operator
P2P Network
(Anchoring/Value Transfer)
Multi-Bridge Architecture
Main chain Service chain
Bridge
Contract
Sub-Bridge
Operator
Main-Bridge
Bridge
Contract
P2P Network
(Anchoring/Value Transfer)
Main-Bridge
Main-Bridge
Sub-Bridge
Operator
Sub-Bridge
Operator
Multi-Bridge Architecture
P2P network
(Anchoring/Value Transfer)
Main chain Service chain
Bridge
Contract
Bridge Contract
Sub-Bridge
Operator
Sub-Bridge
Operator
Sub-Bridge
Operator
Main-Bridge
Main-Bridge
Main-Bridge
OwnerConfiguration Configuration
Voting
Multi-Bridge Architecture
Start (handling event)
Not closed?
End
key = keccak256(msg.data)
count[key]++
count[key] >=
threshold?
close vote
transfer
emit HandleVT
NY
Y
N
Voting
Multi-Bridge Scenarios
Key: 0xABC
From : Bob
To: Alice
Value: 50 KLAY
Tx by
Operator
#1
Tx by
Operator
#2
Tx by
Operator
#3
Case 1: Normal transfer
Key: 0xABC
From : Bob
To: Alice
Value: 50 KLAY
Tx by
Operator
#1
Tx by
Operator
#2
Tx by
Operator
#3
Key: 0xBBC
From: Bob
To: Albert
Value: 100 KLAY
Case 3: Invalid attempt
Key: 0xABC
From : Bob
To: Alice
Value: 50 KLAY
Tx by
Operator
#1
Tx by
Operator
#2
Tx by
Operator
#3
Failure node
can’t send a
transaction.
Case 2: Node failure
Service chainMain chain
SENEN P2P Network
Bridge
contract
Bridge
contract
TX 1: 10 KLAY to Bob
Alice
emit
RequestValue
Transfer()
TX 2: 10 KLAY to Bob
Operator
Recovery
Recovery
Recovery
Update hint from
Bridge Contract
Retrieve pending
events
Recover the pending
events
Every 60s
● requestNonce
● handleNonce
● blkNum
● Check recovery condition
○ requestNonce != handleNonce
○ prevHandleNonce == handleNonce
● Get pending events
○ FilterRequestVT(blkNum, current)
● Re-send the pending transactions
○ Duplicated tx is reverted by checking
nonce
Recovery
Recovery
Service chainMain chain
SENEN
P2P Network
Bridge
contract
reqNonce
99
blkNum
11
Bridge
contract
handleNonce
99
TX 1: 10 KLAY to Bob
Alice
emit
RequestValue
Transfer()
Recovery
Service chainMain chain
SENEN
P2P Network
Bridge
contract
reqNonce
99 ⇒ 100
blkNum
11 ⇒ 20
Bridge
contract
handleNonce
99
emit
RequestValue
Transfer()
Recovery
Service chainMain chain
SENEN
P2P Network
Bridge
contract
reqNonce
100
blkNum
20
Bridge
contract
handleNonce
99
Recovery
reqNonce
100
handleNonce
99
Recovery
Service chainMain chain
SENEN
P2P Network
Bridge
contract
reqNonce
100
blkNum
20
Bridge
contract
handleNonce
99 ⇒ 100
Recovery
FilterLogs(20, current)
blkNum 20
event log
RequestValueT
ransfer()
Recovery
Service chainMain chain
SENEN
P2P Network
Bridge
contract
reqNonce
100
blkNum
11
Bridge
contract
handleNonce
99 ⇒ 100
Recovery
Recover the pending event
TX 2: 10 KLAY from Alice
to Bob
Operator
Test Results
Killed SEN 3
Killed SEN 0, 1, 2
continuously
∙Multi-bridge
- EN 4 (main-bridge 4), SEN 4 (sub-bridge 4),
threshold 1
- Value transfer (Main Chain ↔ Service Chain)
Test Results
Stop #1
Start #1
Stop #2
Start #2
∙Recovery
- Value transfer (Main Chain → Service Chain)
- Repeatedly stop and start all SENs
Future Work
P2P network
(Anchoring/Value Transfer)
Main chain Service chain
Bridge
Contract
Bridge
Contract
Sub-Bridge
Operator
Sub-Bridge
Operator
Sub-Bridge
Operator
Main-Bridge
Main-Bridge
Main-Bridge
Owner
Ground X
27F, 521, Teheran-ro,
Gangnam-gu, Seoul, Republic of Korea
THANK YOU

More Related Content

What's hot

Performance is not an Option - gRPC and Cassandra
Performance is not an Option - gRPC and CassandraPerformance is not an Option - gRPC and Cassandra
Performance is not an Option - gRPC and Cassandra
Dave Bechberger
 
Samza at LinkedIn
Samza at LinkedInSamza at LinkedIn
Samza at LinkedIn
Venu Ryali
 
WebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST MicroserviceWebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST Microservice
Rick Hightower
 
Dragonflow 01 2016 TLV meetup
Dragonflow 01 2016 TLV meetup  Dragonflow 01 2016 TLV meetup
Dragonflow 01 2016 TLV meetup
Eran Gampel
 
Microservices summit talk 1/31
Microservices summit talk   1/31Microservices summit talk   1/31
Microservices summit talk 1/31
Varun Talwar
 
V sphere vds_poc_primer
V sphere vds_poc_primerV sphere vds_poc_primer
V sphere vds_poc_primer
Vino Alex
 
STUN protocol
STUN protocolSTUN protocol
STUN protocol
Giacomo Vacca
 
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
StreamNative
 
JavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperJavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java Developer
Mark West
 
Architectural Commandments for Building & Running Microservices at Scale
Architectural Commandments for Building & Running Microservices at ScaleArchitectural Commandments for Building & Running Microservices at Scale
Architectural Commandments for Building & Running Microservices at Scale
Brian Wilson
 
High-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulationsHigh-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulations
Rick Hightower
 
Dragon flow neutron lightning talk
Dragon flow neutron lightning talkDragon flow neutron lightning talk
Dragon flow neutron lightning talk
Eran Gampel
 
Weaving the ILP Fabric into Bigchain DB
Weaving the ILP Fabric into Bigchain DBWeaving the ILP Fabric into Bigchain DB
Weaving the ILP Fabric into Bigchain DB
Interledger
 
OpenStack: Virtual Routers On Compute Nodes
OpenStack: Virtual Routers On Compute NodesOpenStack: Virtual Routers On Compute Nodes
OpenStack: Virtual Routers On Compute Nodes
clayton_oneill
 
High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017
Rick Hightower
 
OpenStack Neutron's Distributed Virtual Router
OpenStack Neutron's Distributed Virtual RouterOpenStack Neutron's Distributed Virtual Router
OpenStack Neutron's Distributed Virtual Router
carlbaldwin
 
Qo s routing
Qo s  routingQo s  routing
Qo s routing
rajib_
 
NATS for Modern Messaging and Microservices
NATS for Modern Messaging and MicroservicesNATS for Modern Messaging and Microservices
NATS for Modern Messaging and Microservices
Apcera
 
Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307
Inhye Park
 
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
Rick Hightower
 

What's hot (20)

Performance is not an Option - gRPC and Cassandra
Performance is not an Option - gRPC and CassandraPerformance is not an Option - gRPC and Cassandra
Performance is not an Option - gRPC and Cassandra
 
Samza at LinkedIn
Samza at LinkedInSamza at LinkedIn
Samza at LinkedIn
 
WebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST MicroserviceWebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST Microservice
 
Dragonflow 01 2016 TLV meetup
Dragonflow 01 2016 TLV meetup  Dragonflow 01 2016 TLV meetup
Dragonflow 01 2016 TLV meetup
 
Microservices summit talk 1/31
Microservices summit talk   1/31Microservices summit talk   1/31
Microservices summit talk 1/31
 
V sphere vds_poc_primer
V sphere vds_poc_primerV sphere vds_poc_primer
V sphere vds_poc_primer
 
STUN protocol
STUN protocolSTUN protocol
STUN protocol
 
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
 
JavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperJavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java Developer
 
Architectural Commandments for Building & Running Microservices at Scale
Architectural Commandments for Building & Running Microservices at ScaleArchitectural Commandments for Building & Running Microservices at Scale
Architectural Commandments for Building & Running Microservices at Scale
 
High-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulationsHigh-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulations
 
Dragon flow neutron lightning talk
Dragon flow neutron lightning talkDragon flow neutron lightning talk
Dragon flow neutron lightning talk
 
Weaving the ILP Fabric into Bigchain DB
Weaving the ILP Fabric into Bigchain DBWeaving the ILP Fabric into Bigchain DB
Weaving the ILP Fabric into Bigchain DB
 
OpenStack: Virtual Routers On Compute Nodes
OpenStack: Virtual Routers On Compute NodesOpenStack: Virtual Routers On Compute Nodes
OpenStack: Virtual Routers On Compute Nodes
 
High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017
 
OpenStack Neutron's Distributed Virtual Router
OpenStack Neutron's Distributed Virtual RouterOpenStack Neutron's Distributed Virtual Router
OpenStack Neutron's Distributed Virtual Router
 
Qo s routing
Qo s  routingQo s  routing
Qo s routing
 
NATS for Modern Messaging and Microservices
NATS for Modern Messaging and MicroservicesNATS for Modern Messaging and Microservices
NATS for Modern Messaging and Microservices
 
Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307
 
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
 

Similar to TXGX 2019_Albert_High Availability Architecture of Klaytn Service Chain

Network and TCP performance relationship workshop
Network and TCP performance relationship workshopNetwork and TCP performance relationship workshop
Network and TCP performance relationship workshop
Kae Hsu
 
transport protocols
transport protocolstransport protocols
transport protocols
Srinivasa Rao
 
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecasesLF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OpenvSwitch
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
ntpc08
 
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
Ambassador Labs
 
Two phase commit protocol in dbms
Two phase commit protocol in dbmsTwo phase commit protocol in dbms
Two phase commit protocol in dbms
Dilouar Hossain
 
Upgrading the Bitcoin protocol - Simone Bronzini - Codemotion Rome 2018
Upgrading the Bitcoin protocol - Simone Bronzini - Codemotion Rome 2018Upgrading the Bitcoin protocol - Simone Bronzini - Codemotion Rome 2018
Upgrading the Bitcoin protocol - Simone Bronzini - Codemotion Rome 2018
Codemotion
 
Mininet: Moving Forward
Mininet: Moving ForwardMininet: Moving Forward
Mininet: Moving ForwardON.Lab
 
Part 4 : reliable transport and sharing resources
Part 4 : reliable transport and sharing resourcesPart 4 : reliable transport and sharing resources
Part 4 : reliable transport and sharing resources
Olivier Bonaventure
 
The Services Enabling Platform - F Depuydt
The Services Enabling Platform - F DepuydtThe Services Enabling Platform - F Depuydt
The Services Enabling Platform - F Depuydt
mfrancis
 
Poodle
PoodlePoodle
Poodle
Samit Anwer
 
Token btlcoin
Token btlcoinToken btlcoin
Token btlcoin
btlcoin token
 
Evolution of kube-proxy (Brussels, Fosdem 2020)
Evolution of kube-proxy (Brussels, Fosdem 2020)Evolution of kube-proxy (Brussels, Fosdem 2020)
Evolution of kube-proxy (Brussels, Fosdem 2020)
Laurent Bernaille
 
Token btlcoin btlcoin
Token btlcoin btlcoinToken btlcoin btlcoin
Token btlcoin btlcoin
btlcoin token
 
Redesigning MPTCP in Edge clouds
Redesigning MPTCP in Edge cloudsRedesigning MPTCP in Edge clouds
Redesigning MPTCP in Edge clouds
Nitinder Mohan
 
Blockchain
BlockchainBlockchain
Blockchain
Soichiro Takagi
 
Running Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docx
Running Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docxRunning Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docx
Running Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docx
joellemurphey
 
DASP Top10 for OWASP Thailand Chapter by s111s
DASP Top10 for OWASP Thailand Chapter by s111s DASP Top10 for OWASP Thailand Chapter by s111s
DASP Top10 for OWASP Thailand Chapter by s111s
s111s object
 
08 module interconnecting cisco router
08 module interconnecting cisco router08 module interconnecting cisco router
08 module interconnecting cisco routerAsif
 
Course on TCP Dynamic Performance
Course on TCP Dynamic PerformanceCourse on TCP Dynamic Performance
Course on TCP Dynamic Performance
Javier Arauz
 

Similar to TXGX 2019_Albert_High Availability Architecture of Klaytn Service Chain (20)

Network and TCP performance relationship workshop
Network and TCP performance relationship workshopNetwork and TCP performance relationship workshop
Network and TCP performance relationship workshop
 
transport protocols
transport protocolstransport protocols
transport protocols
 
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecasesLF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
 
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
 
Two phase commit protocol in dbms
Two phase commit protocol in dbmsTwo phase commit protocol in dbms
Two phase commit protocol in dbms
 
Upgrading the Bitcoin protocol - Simone Bronzini - Codemotion Rome 2018
Upgrading the Bitcoin protocol - Simone Bronzini - Codemotion Rome 2018Upgrading the Bitcoin protocol - Simone Bronzini - Codemotion Rome 2018
Upgrading the Bitcoin protocol - Simone Bronzini - Codemotion Rome 2018
 
Mininet: Moving Forward
Mininet: Moving ForwardMininet: Moving Forward
Mininet: Moving Forward
 
Part 4 : reliable transport and sharing resources
Part 4 : reliable transport and sharing resourcesPart 4 : reliable transport and sharing resources
Part 4 : reliable transport and sharing resources
 
The Services Enabling Platform - F Depuydt
The Services Enabling Platform - F DepuydtThe Services Enabling Platform - F Depuydt
The Services Enabling Platform - F Depuydt
 
Poodle
PoodlePoodle
Poodle
 
Token btlcoin
Token btlcoinToken btlcoin
Token btlcoin
 
Evolution of kube-proxy (Brussels, Fosdem 2020)
Evolution of kube-proxy (Brussels, Fosdem 2020)Evolution of kube-proxy (Brussels, Fosdem 2020)
Evolution of kube-proxy (Brussels, Fosdem 2020)
 
Token btlcoin btlcoin
Token btlcoin btlcoinToken btlcoin btlcoin
Token btlcoin btlcoin
 
Redesigning MPTCP in Edge clouds
Redesigning MPTCP in Edge cloudsRedesigning MPTCP in Edge clouds
Redesigning MPTCP in Edge clouds
 
Blockchain
BlockchainBlockchain
Blockchain
 
Running Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docx
Running Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docxRunning Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docx
Running Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docx
 
DASP Top10 for OWASP Thailand Chapter by s111s
DASP Top10 for OWASP Thailand Chapter by s111s DASP Top10 for OWASP Thailand Chapter by s111s
DASP Top10 for OWASP Thailand Chapter by s111s
 
08 module interconnecting cisco router
08 module interconnecting cisco router08 module interconnecting cisco router
08 module interconnecting cisco router
 
Course on TCP Dynamic Performance
Course on TCP Dynamic PerformanceCourse on TCP Dynamic Performance
Course on TCP Dynamic Performance
 

More from Klaytn

TXGX 2019_Kai_Klaytn Blockchain Application (BApp) Development
TXGX 2019_Kai_Klaytn Blockchain Application (BApp) DevelopmentTXGX 2019_Kai_Klaytn Blockchain Application (BApp) Development
TXGX 2019_Kai_Klaytn Blockchain Application (BApp) Development
Klaytn
 
TXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API ServiceTXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API Service
Klaytn
 
TXGX 2019_Ethan_Horizontal Scaling through Service Chain in Klaytn
TXGX 2019_Ethan_Horizontal Scaling through Service Chain in KlaytnTXGX 2019_Ethan_Horizontal Scaling through Service Chain in Klaytn
TXGX 2019_Ethan_Horizontal Scaling through Service Chain in Klaytn
Klaytn
 
TXGX 2019_Melvin_Data Layer Architecture & Optimizations
TXGX 2019_Melvin_Data Layer Architecture & OptimizationsTXGX 2019_Melvin_Data Layer Architecture & Optimizations
TXGX 2019_Melvin_Data Layer Architecture & Optimizations
Klaytn
 
TXGX 2019_Colin_Account and Transaction Model in Klaytn
TXGX 2019_Colin_Account and Transaction Model in KlaytnTXGX 2019_Colin_Account and Transaction Model in Klaytn
TXGX 2019_Colin_Account and Transaction Model in Klaytn
Klaytn
 
TXGX 2019_Andy_Klaytn's Network Architecture and Consensus
TXGX 2019_Andy_Klaytn's Network Architecture and ConsensusTXGX 2019_Andy_Klaytn's Network Architecture and Consensus
TXGX 2019_Andy_Klaytn's Network Architecture and Consensus
Klaytn
 
TXGX 2019_Jun_Klaytn World: From Inception to Completion
TXGX 2019_Jun_Klaytn World: From Inception to CompletionTXGX 2019_Jun_Klaytn World: From Inception to Completion
TXGX 2019_Jun_Klaytn World: From Inception to Completion
Klaytn
 
TXGX 2019_Jason_Welcome Speech
TXGX 2019_Jason_Welcome SpeechTXGX 2019_Jason_Welcome Speech
TXGX 2019_Jason_Welcome Speech
Klaytn
 
Klaytn Developer Meetup_20191210
Klaytn Developer Meetup_20191210Klaytn Developer Meetup_20191210
Klaytn Developer Meetup_20191210
Klaytn
 
Klaytn Developer Meetup_20191022
Klaytn Developer Meetup_20191022Klaytn Developer Meetup_20191022
Klaytn Developer Meetup_20191022
Klaytn
 
if kakao dev 2019_Ground X_Session 04
if kakao dev 2019_Ground X_Session 04if kakao dev 2019_Ground X_Session 04
if kakao dev 2019_Ground X_Session 04
Klaytn
 
if kakao dev 2019_Ground X_Session 03
if kakao dev 2019_Ground X_Session 03if kakao dev 2019_Ground X_Session 03
if kakao dev 2019_Ground X_Session 03
Klaytn
 
if kakao dev 2019_Ground X_Session 02
if kakao dev 2019_Ground X_Session 02if kakao dev 2019_Ground X_Session 02
if kakao dev 2019_Ground X_Session 02
Klaytn
 
if kakao dev 2019_Ground X_Session 01
if kakao dev 2019_Ground X_Session 01if kakao dev 2019_Ground X_Session 01
if kakao dev 2019_Ground X_Session 01
Klaytn
 
Klaytn Developer Meetup_20190827
Klaytn Developer Meetup_20190827Klaytn Developer Meetup_20190827
Klaytn Developer Meetup_20190827
Klaytn
 

More from Klaytn (15)

TXGX 2019_Kai_Klaytn Blockchain Application (BApp) Development
TXGX 2019_Kai_Klaytn Blockchain Application (BApp) DevelopmentTXGX 2019_Kai_Klaytn Blockchain Application (BApp) Development
TXGX 2019_Kai_Klaytn Blockchain Application (BApp) Development
 
TXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API ServiceTXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API Service
 
TXGX 2019_Ethan_Horizontal Scaling through Service Chain in Klaytn
TXGX 2019_Ethan_Horizontal Scaling through Service Chain in KlaytnTXGX 2019_Ethan_Horizontal Scaling through Service Chain in Klaytn
TXGX 2019_Ethan_Horizontal Scaling through Service Chain in Klaytn
 
TXGX 2019_Melvin_Data Layer Architecture & Optimizations
TXGX 2019_Melvin_Data Layer Architecture & OptimizationsTXGX 2019_Melvin_Data Layer Architecture & Optimizations
TXGX 2019_Melvin_Data Layer Architecture & Optimizations
 
TXGX 2019_Colin_Account and Transaction Model in Klaytn
TXGX 2019_Colin_Account and Transaction Model in KlaytnTXGX 2019_Colin_Account and Transaction Model in Klaytn
TXGX 2019_Colin_Account and Transaction Model in Klaytn
 
TXGX 2019_Andy_Klaytn's Network Architecture and Consensus
TXGX 2019_Andy_Klaytn's Network Architecture and ConsensusTXGX 2019_Andy_Klaytn's Network Architecture and Consensus
TXGX 2019_Andy_Klaytn's Network Architecture and Consensus
 
TXGX 2019_Jun_Klaytn World: From Inception to Completion
TXGX 2019_Jun_Klaytn World: From Inception to CompletionTXGX 2019_Jun_Klaytn World: From Inception to Completion
TXGX 2019_Jun_Klaytn World: From Inception to Completion
 
TXGX 2019_Jason_Welcome Speech
TXGX 2019_Jason_Welcome SpeechTXGX 2019_Jason_Welcome Speech
TXGX 2019_Jason_Welcome Speech
 
Klaytn Developer Meetup_20191210
Klaytn Developer Meetup_20191210Klaytn Developer Meetup_20191210
Klaytn Developer Meetup_20191210
 
Klaytn Developer Meetup_20191022
Klaytn Developer Meetup_20191022Klaytn Developer Meetup_20191022
Klaytn Developer Meetup_20191022
 
if kakao dev 2019_Ground X_Session 04
if kakao dev 2019_Ground X_Session 04if kakao dev 2019_Ground X_Session 04
if kakao dev 2019_Ground X_Session 04
 
if kakao dev 2019_Ground X_Session 03
if kakao dev 2019_Ground X_Session 03if kakao dev 2019_Ground X_Session 03
if kakao dev 2019_Ground X_Session 03
 
if kakao dev 2019_Ground X_Session 02
if kakao dev 2019_Ground X_Session 02if kakao dev 2019_Ground X_Session 02
if kakao dev 2019_Ground X_Session 02
 
if kakao dev 2019_Ground X_Session 01
if kakao dev 2019_Ground X_Session 01if kakao dev 2019_Ground X_Session 01
if kakao dev 2019_Ground X_Session 01
 
Klaytn Developer Meetup_20190827
Klaytn Developer Meetup_20190827Klaytn Developer Meetup_20190827
Klaytn Developer Meetup_20190827
 

Recently uploaded

Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 

Recently uploaded (20)

Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 

TXGX 2019_Albert_High Availability Architecture of Klaytn Service Chain

  • 1.
  • 2. Software Engineer, Ground X - 서비스 체인 개발 - 카카오톡 디지털 지갑 Klip backend 개발 Division Manager, TmaxData - RDBMS backend 개발 - Deep learning 기반 data center 관리 시스템 개발 ● 올해 3월부터 Ground X에서 Klaytn 개발에 참여하고 있습니다. ● 서비스 체인 개발을 담당하고 있고 최근에는 카카오톡에 들어갈 디지털 지갑 Klip의 backend도 개발하고 있습니다 나정호, Albert
  • 3. ∙Service Chain Overview ∙Problems To Solve ∙Multi-Bridge Architecture ∙Recovery ∙Test Results ∙Future Work
  • 4. Service Chain Overview CN : Consensus Node SCN: Service Chain Consensus Node PN: Proxy Node SPN: Service Chain Proxy Node EN: Endpoint Node SEN: Service Chain Endpoint Node P2P Network (Anchoring/Value Transfer)
  • 5. Service Chain Overview Service chainMain chain SENEN P2P Network (Anchoring/Value Transfer) Bridge contract Bridge contract Main-Bridge Sub-Bridge
  • 6. Service chainMain chain SENEN P2P Network Bridge contract Bridge contract TX 1: 10 KLAY to Bob Alice emit RequestValue Transfer() TX 2: 10 KLAY to Bob Operator Value Transfer Example
  • 7. Problems To Solve - Network Failure P2P Network (Anchoring/Value Transfer)
  • 8. Problems To Solve - Node Failure P2P Network (Anchoring/Value Transfer)
  • 9. Problems To Solve - Security of Operator Key Operator P2P Network (Anchoring/Value Transfer)
  • 10. Multi-Bridge Architecture Main chain Service chain Bridge Contract Sub-Bridge Operator Main-Bridge Bridge Contract P2P Network (Anchoring/Value Transfer) Main-Bridge Main-Bridge Sub-Bridge Operator Sub-Bridge Operator
  • 11. Multi-Bridge Architecture P2P network (Anchoring/Value Transfer) Main chain Service chain Bridge Contract Bridge Contract Sub-Bridge Operator Sub-Bridge Operator Sub-Bridge Operator Main-Bridge Main-Bridge Main-Bridge OwnerConfiguration Configuration Voting
  • 12. Multi-Bridge Architecture Start (handling event) Not closed? End key = keccak256(msg.data) count[key]++ count[key] >= threshold? close vote transfer emit HandleVT NY Y N Voting
  • 13. Multi-Bridge Scenarios Key: 0xABC From : Bob To: Alice Value: 50 KLAY Tx by Operator #1 Tx by Operator #2 Tx by Operator #3 Case 1: Normal transfer Key: 0xABC From : Bob To: Alice Value: 50 KLAY Tx by Operator #1 Tx by Operator #2 Tx by Operator #3 Key: 0xBBC From: Bob To: Albert Value: 100 KLAY Case 3: Invalid attempt Key: 0xABC From : Bob To: Alice Value: 50 KLAY Tx by Operator #1 Tx by Operator #2 Tx by Operator #3 Failure node can’t send a transaction. Case 2: Node failure
  • 14. Service chainMain chain SENEN P2P Network Bridge contract Bridge contract TX 1: 10 KLAY to Bob Alice emit RequestValue Transfer() TX 2: 10 KLAY to Bob Operator Recovery Recovery
  • 15. Recovery Update hint from Bridge Contract Retrieve pending events Recover the pending events Every 60s ● requestNonce ● handleNonce ● blkNum ● Check recovery condition ○ requestNonce != handleNonce ○ prevHandleNonce == handleNonce ● Get pending events ○ FilterRequestVT(blkNum, current) ● Re-send the pending transactions ○ Duplicated tx is reverted by checking nonce Recovery
  • 16. Recovery Service chainMain chain SENEN P2P Network Bridge contract reqNonce 99 blkNum 11 Bridge contract handleNonce 99 TX 1: 10 KLAY to Bob Alice emit RequestValue Transfer()
  • 17. Recovery Service chainMain chain SENEN P2P Network Bridge contract reqNonce 99 ⇒ 100 blkNum 11 ⇒ 20 Bridge contract handleNonce 99 emit RequestValue Transfer()
  • 18. Recovery Service chainMain chain SENEN P2P Network Bridge contract reqNonce 100 blkNum 20 Bridge contract handleNonce 99 Recovery reqNonce 100 handleNonce 99
  • 19. Recovery Service chainMain chain SENEN P2P Network Bridge contract reqNonce 100 blkNum 20 Bridge contract handleNonce 99 ⇒ 100 Recovery FilterLogs(20, current) blkNum 20 event log RequestValueT ransfer()
  • 20. Recovery Service chainMain chain SENEN P2P Network Bridge contract reqNonce 100 blkNum 11 Bridge contract handleNonce 99 ⇒ 100 Recovery Recover the pending event TX 2: 10 KLAY from Alice to Bob Operator
  • 21. Test Results Killed SEN 3 Killed SEN 0, 1, 2 continuously ∙Multi-bridge - EN 4 (main-bridge 4), SEN 4 (sub-bridge 4), threshold 1 - Value transfer (Main Chain ↔ Service Chain)
  • 22. Test Results Stop #1 Start #1 Stop #2 Start #2 ∙Recovery - Value transfer (Main Chain → Service Chain) - Repeatedly stop and start all SENs
  • 23. Future Work P2P network (Anchoring/Value Transfer) Main chain Service chain Bridge Contract Bridge Contract Sub-Bridge Operator Sub-Bridge Operator Sub-Bridge Operator Main-Bridge Main-Bridge Main-Bridge Owner
  • 24. Ground X 27F, 521, Teheran-ro, Gangnam-gu, Seoul, Republic of Korea THANK YOU