Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Fabric High-throughtput

670 views

Published on

[Hyperledger meetup] Fabric high throughput 발표자료

Published in: Software
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Fabric High-throughtput

  1. 1. Fabric High-Throughput (부제: 당신의 TPS 는 안녕하십니까?) 겜퍼 이경석
  2. 2. 2 발표자 소개 Co Founder Blockchain Developer Blockchain Yotube 운영 사업개발前) 現) 온라인과 오프라인이 하나되는 세상, 겜퍼
  3. 3. 3 High-Throughput 그게 뭐야? 출처: https://github.com/hyperledger/fabric-samples/blob/release-1.4/high-throughput
  4. 4. 4 속도를 높이는 방법!! 블록 생성 속도를 짧게?
  5. 5. 5 속도를 높이는 방법!! 합의 과정을 빠르게?
  6. 6. 6 속도를 높이는 방법!! 좋은 하드웨어 사용?
  7. 7. 7 TPS 향상 방법 블록 사이즈를 크게? 블록 생성 속도를 짧게? 합의 과정을 빠르게? 좋은 하드웨어 사용?
  8. 8. 8 TPS 향상 방법 블록 사이즈를 크게? 블록 생성 속도를 짧게? 합의 과정을 빠르게? 좋은 하드웨어 사용?
  9. 9. 9 <Success Transaction> 늘리는 아이디어!!!
  10. 10. 10 (수정된)Marbles 예제 1. 구슬 생성 (init) 2. 구슬 주고 받을 수 있음 (transfer)
  11. 11. 11 MVCC 란?
  12. 12. 12 Lock 방식 Alice Bob Alice 10개 Bob 10개 Bob 10개구나 5개 줘야지 나 10개구나 5개 추가해야지
  13. 13. 13 Lock 방식 Alice Bob Alice 10개 Bob 10개 Bob 10개구나 5개 줘야지 나 10개구나 5개 추가해야지 5개 전송 5개 추가 DB Lock Alice 5개 Bob 15개 Lock 해제 대기
  14. 14. 14 Lock 방식 Alice Bob Alice 10개 Bob 10개 Bob 10개구나 5개 줘야지 나 10개구나 5개 추가해야지 5개 전송 5개 추가 DB Lock Alice 5개 Bob 15개 Lock 해제 대기 5개 추가 시작 Alice 5개 Bob 20개 10 + 5 = 20 ??????
  15. 15. 15 MVCC 방식 Alice Bob Alice 10개 Bob 10개 Bob 10개구나 5개 줘야지 나 10개구나 5개 추가해야지 V1
  16. 16. 16 Alice Bob Alice 10개 Bob 10개 Bob 10개구나 5개 줘야지 나 10개구나 5개 추가해야지 5개 전송 5개 추가 Alice 5개 Bob 15개 V1 V2 V2 V2 동일한 버전 MVCC 방식
  17. 17. 17 MVCC 충돌 !
  18. 18. 18 Block4 Block3 Block2 Block1 Block5 V1 V2 V3 V4 V5
  19. 19. 19 Block4 Block3 Block2 Block1 Block5 Transaction (key: Bob, value: 0) Transaction (key: Bob, value: 10) Transaction (key: Bob, value: 20) Transaction (key: Bob, value: 15) V1 V2 V3 V3 Fail V1 V2 World State V3
  20. 20. 20 Alice Bob Carol 10개 10개 10개 World State Block3 (key: Alice, value 5), (key: Bob, value: 15) (key: Carol, value: 8), (key: Bob, value: 12) (key: Carol, value: 9), (key: Alice, value: 11) (key: Bob, value: 5), (key: Alice, value: 15) (key: Bob, value: 5), (key: Carol, value: 15) (key: Alice, value: 2), (key: Carol, value: 12) Alice Bob5 Alice Carol2 Bob Carol5 Bob Alice5 Carol Alice1 Carol Bob2 …
  21. 21. 21 https://hyperledger- fabric.readthedocs.io/en/release- 1.4/readwrite.html 잠깐! 조금 더 자세히 알고 싶다면? 1. Fabric ReadDoc 2. dappCampus 강의 https://youtu.be/FN2zoG3LRwU Read-Write set semantics [Hyperledger Fabric 개념] 02. Fabric Read&Write Set
  22. 22. 22 (key: Alice, value: 120000), (key: A, value: 80000) Alice ₩100,000 을 5명이 더치페이 하는 상황 ₩20,000 A ₩100,000 - ₩20,000
  23. 23. 23 Alice ₩100,000 을 5명이 더치페이 하는 상황 ₩20,000 (key: Alice, value: 120000), (key: A, value: 80000) A ₩100,000 - ₩20,000 B ₩100,000 - ₩20,000 C ₩100,000 - ₩20,000 D ₩100,000 - ₩20,000 ₩20,000 ₩20,000 ₩20,000 (key: Alice, value: 120000), (key: B, value: 80000) (key: Alice, value: 120000), (key: C, value: 80000) (key: Alice, value: 120000), (key: D, value: 80000) Fail Fail
  24. 24. 24 (부제: 당신의 TPS 는 안녕하십니까?)
  25. 25. 25 (부제: 당신의 TPS 는 안녕하십니까?) 나? 10만 TPS 블록체인
  26. 26. 26 (부제: 당신의 TPS 는 안녕하십니까?) 나? 10만 TPS 블록체인 Success Fail Fail Fail Fail Fail Fail Fail 하지만 한개의 Transaction 만 성공 시킬 수 있지
  27. 27. 27 (부제: 당신의 TPS 는 안녕하십니까?) 나? 10만 TPS 블록체인 Success Fail Fail Fail Fail Fail Fail Fail 하지만 한개의 Transaction 만 성공 시킬 수 있지 ?
  28. 28. 28 나? 10만 TPS 블록체인 Success Fail Fail Fail Fail Fail Fail Fail 하지만 한개의 Transaction 만 성공 시킬 수 있지 ?<Success Transaction> 늘리는 아이디어 High-Throughput !!!!
  29. 29. 29 What Idea???
  30. 30. 30 1. Unique Key
  31. 31. 31 2. Event Source와 비슷하게
  32. 32. 32 Event Source ??
  33. 33. 33 Event Source? 기존의 저장 방식 이벤트 소스 Alice 10개 Bob 0개 Alice 5개 Bob 5개 Alice 20개 Bob 0개 상태 변화 Alice deposit 20 Alice to Bob 15 Bob to Alice 5 이벤트 기록Alice 5개 Bob 15개 Bob exit 10
  34. 34. 34 Chaincode 에 적용해보자
  35. 35. 35 Alice Bob Carol 10개 10개 10개 World State 1. Alice 가 Bob 에게 구슬 5개를 보낸다. Key: Transfer/Alice/Bob/5/txid Value: 0x00 CompositeKey 이용 (key: Transfer/Alice/Bob/5/txid, value: 0x00)
  36. 36. 36 (key: Transfer/Alice/Carol/2/txid, value: 0x00) Alice Bob Carol 10개 10개 10개 World State 2. Alice 가 Carol 에게 구슬 2개를 보낸다. Key: Transfer/Alice/Carol/2/txid Value: 0x00 (key: Transfer/Alice/Bob/5/txid, value: 0x00)
  37. 37. 37 (key: Transfer/Bob/Alice/5/txid, value: 0x00) Alice Bob Carol 10개 10개 10개 World State 3. Bob 이 Carol 에게 구슬 5개를 보낸다. Key: Transfer/Bob/Carol/5/txid Value: 0x00 4. Bob 이 Alice 에게 구슬 5개를 보낸다. Key: Transfer/Bob/Alice/5/txid Value: 0x00 (key: Transfer/Alice/Carol/2/txid, value: 0x00) (key: Transfer/Alice/Bob/5/txid, value: 0x00) (key: Transfer/Bob/Carol/5/txid, value: 0x00)
  38. 38. 38 정보를 가져오고 싶다면?
  39. 39. 39 Block4 Block3 Block2 Block1 Block5 모든 기록을 조회한다. World State ?
  40. 40. 40 조회해야 하는 데이터가 100만 개라면?
  41. 41. 41 Snapshot !! Alice deposit 40 Alice to Bob 30 Alice to Bob 5 Bob exit 10 Bob to Alice 5 Bob to Alice 5 Bob to Alice 5 Alice exit 10 Alice : 10 Bob : 20 Snapshot Snapshot 부터 기록을 조회
  42. 42. 42 Chaincode 에서는?
  43. 43. 43 Alice deposit 40 Alice to Bob 30 Alice to Bob 5 Bob exit 10 Bob to Alice 5 Del Bob to Alice 5 Bob to Alice 5 Alice exit 10 1. 특정 범위까지 값을 제거 2. 넣어야 하는 값 만큼 event 형식으로 넣음 ‘’ to Alice 10 Put ‘’ to Bob 20 Pruning !!
  44. 44. 44 Why Different ?
  45. 45. 45 Alice deposit 40 Alice to Bob 30 Alice to Bob 5 Bob exit 10 Bob to Alice 5 Bob to Alice 5 Bob to Alice 5 Alice exit 10 Block4 Block3 Block2 Block1 Block5 Transaction Transaction Transaction Transaction Transaction ! World State 기록은 블록체인에서 관리 가능
  46. 46. 46 But…
  47. 47. 47 Alice ₩100,000 을 가진 Alice 가 ₩50,000 씩 네사람에게 보내면? ₩50,000 A B C D ₩50,000 ₩50,000 ₩50,000 (key: Transfer/Alice/C/50000/txid, value: 0x00) (key: Transfer/Alice/B/50000/txid, value: 0x00) (key: Transfer/Alice/A/50000/txid, value: 0x00) (key: Transfer/Alice/D/50000/txid, value: 0x00) 100,000 – 4x(50,000) = -100,000 ??
  48. 48. 48 Solution ! 출처: https://github.com/hyperledger/fabric-samples/blob/release-1.4/high-throughput
  49. 49. 49 Server polling Alice - 데이터를 polling 하다가 문제가 생기면 막아라 Solution 1
  50. 50. 50 Server polling ProblemAlice Stop Alice Account - 데이터를 polling 하다가 문제가 생기면 막아라 Solution 1
  51. 51. 51 Alice Server (SDK) Total balance 2 4 1 3 5 - SDK 를 활용한 서버에서 먼저 체크해라 Solution 2 (실습 예정)
  52. 52. 52 Problem - SDK 를 활용한 서버에서 먼저 체크해라 Alice Server (SDK) Total balance 2 1 Solution 2 (실습 예정) Fail 3
  53. 53. 53 Alice Amount > $1,000 Fail - $1,000 이상을 보내는 건 거절해라 Solution 3
  54. 54. 54 $1000Alice Server (SDK) - $1,000 이상을 보내는 건 거절해라 - (SDK 상에서 막아도 OK) Fail Solution 3
  55. 55. 55 Fabric Design Problem??
  56. 56. 56 출처: https://wiki.hyperledger.org/display/LMDWG/Use+Cases Coin Token Crypto Currency Balance … Fabric Purpose
  57. 57. 57 ex> IOT? key: Temperature/SensorA/24/txid value: 0x00 key: Temperature/SensorA/22/txid value: 0x00 key: Temperature/SensorA/25/txid value: 0x00 변해도 무관
  58. 58. 58 사용하는 목적에 맞게 블록체인을 선택하자
  59. 59. 59 [실습] 1. High-Througput 적용 전 2. High-Througput 적용 후 3. Solution2 적용 ※ 사전 작업 - fabric-samples 의 balance-transfer 예제를 띄울 수 있어야 함
  60. 60. 60 [실습 코드 링크] https://github.com/ Lee-KyungSeok/ meetup-high-throughput
  61. 61. 61 ※ 주의: Phantom Read GetStateByPartialCompositeKey Alice deposit 40 Alice to Bob 30 Alice to Bob 5 Bob exit 10 Bob to Alice 5 Bob to Alice 5 Bob to Alice 5 Alice exit 10 World State State list 를 가져오는 메서드
  62. 62. 62 ※ 주의: Phantom Read
  63. 63. 63 ※ 주의: Phantom Read 1 2~ Endorsement 단계 Alice deposit 40 Alice to Bob 30 Alice to Bob 5 Bob exit 10 Bob to Alice 5 Bob to Alice 5 … Alice exit 10 World State Peer GetStateByPartialCompositeKey 10 개
  64. 64. 64 ※ 주의: Phantom Read 3 4~ Consensus 단계 Orderer Block Make … Plus Event Plus Event
  65. 65. 65 ※ 주의: Phantom Read 4 ~ Validation 단계 Alice deposit 40 Alice to Bob 30 Bob exit 10 Bob to Alice 5 World State Peer GetStateByPartialCompositeKey 10 개 첫번째 Transaction validaton Plus Event
  66. 66. 66 ※ 주의: Phantom Read 4 ~ Validation 단계 두번째 Transaction validaton Alice deposit 40 Alice to Bob 30 Bob exit 10 Bob to Alice 5 World State Peer GetStateByPartialCompositeKey 11 개 Plus Event
  67. 67. Alice deposit 40 Alice to Bob 30 Bob exit 10 Bob to Alice 5 World State Plus Event 67 ※ 주의: Phantom Read 4 ~ Validation 단계 두번째 Transaction validaton Peer GetStateByPartialCompositeKey 11 개 Endorsement 단계 갯수(10) ≠ Validation 단계 갯수(11) Phantom Read !!!!! => Fail
  68. 68. 68 ※ 주의: Phantom Read 반드시 Read Query 에서만 사용 할 것 !!!
  69. 69. 69 감사합니다 <QA>

×