Hyperledger Fabric Add New Org to Network- eyfn 뜯어보기

이번 포스팅에서는 네트워크 확장과 관련된 eyfn 튜토리얼에 대해서 살펴보려고한다. 이전 byfn 튜토리얼 뜯어보기 포스팅에서는 최초로 organization들이 모여서 네트워크를 구성하는 것에 대해서 살펴보았다면 eyfn에서는 이미 구성된 네트워크에 새로운 organization을 추가하기 위해서 어떻게 하는지를 알려준다. 그래서 이번 포스팅에서는 Hyperledger Fabric 네트워크에서 어떻게 새로운 organization을 추가할 수 있는지를 위주로 작성해보려고 한다. Generate Crypto Config eyfn.sh 를 살펴보면 up 명령어를 사용해서 시작했을 때 엔트리 포인트가 networkUp 함수인 것을 알 수 있다. networkUp 에서 하는 일은 먼저 다음과 같다: # generate artifacts if they don’t… 더 보기 »Hyperledger Fabric Add New Org to Network- eyfn 뜯어보기

Filecoin: A Decentralized Storage Network Protocol Overview

최근 SWIM에 발을 들이면서 같이 틈틈히 공부하고 있는 Decentralized Storage Network이다. 개인적으로 생각하기에 현재 작업 중에 있는 SWIM 네트워크 프로젝트를 마무리하고 이 위에 올렸을 때 효용성이 있는 서비스들 중에 하나가 아닐까하고 생각하고 있다. 무엇보다 재미있어보인다. 현재는 작업 시간 중 7-8할을 SWIM에 쏟고 있지만 이 프로젝트가 얼추 마무리되면 좀 더 관심을 가지고 개인적으로든 마음 맞는 사람이든 같이 구현해서 올려보는 것이 목표이다. Introduction IPFS와 같이 분산 시스템으로 데이터 콘텐츠를 처리하는 것의 유용성은 수천만개의 파일들을 p2p 네트워크로 서빙하면서 입증해왔다. Filecoin은 클라우드 저장소를 알고리즘… 더 보기 »Filecoin: A Decentralized Storage Network Protocol Overview

How DDD Concept can be applied to Project

I’ve translated blog post (korean version) which is about 7 important concepts which is about DDD(Domain-Driven Design). Ubiquitous language Layers Bounded contexts Anti-Corruption Layer Shared Kernal Generic subdomain After translating post I’ve done projects which apply DDD concepts. One is blockchain engine project, it-chain. You can see the codes on this link Lightweight & Customizable blockchain engine, it-chain: https://github.com/it-chain/engine In this post, I’m going to show how DDD concepts can be applied to real-world project codes and code snippets which… 더 보기 »How DDD Concept can be applied to Project

Hyperledger Fabric: Transaction Flow

이번 포스팅에서는 Hyperledger Fabric의 transaction이 어떻게 생성되고 ledger에 최종적으로 commit되는지 이해가 잘 되도록 예시를 들어 설명되어 있는 글을 Hyperledger Fabric doc에서 발견해서 번역해보았다. 원본 링크: https://hyperledger-fabric.readthedocs.io/en/release-1.2/txflow.html Scenario 상품 거래를 하는 시나리오를 가지고 어떻게 transaction이 발생하고 ledger에 commit되는지 그 과정에 대해서 설명하려고 한다. 예시로 사용할 시나리오에서는 A, B라는 두 명의 client가 있고 각각은 당근을 사고 팔려고 한다. client A, B 각각 자신의 네트워크에 피어를 가지고 있고 그 네트워크를 통해 각각의 transaction을 보내고 ledger에 기록한다. Assumptions 이 시나리오에서는 channel이 세팅되어있다고 가정한다. 그리고… 더 보기 »Hyperledger Fabric: Transaction Flow

Ports & Adapters Architecture

Hexagonal Architecture로 알려져있는 Ports & Adapters Architecture는 2005년에 Alistair Cockburn 블로그에 소개되었다. 거기서 그는 Ports & Architecture의 목표를 한 문장으로 정리했다.: Allow an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases. – Alistair Cockburn 2005, Ports and Adapters Ports & Adapters Architecture에 관한 글들 중에 layer들에 대해서 많이 얘기를 하는데 실제 Alistair Cockburn가 작성한 포스트에서는 layer에 관해서는 별로 언급이 없었다.… 더 보기 »Ports & Adapters Architecture

DDD – Entities, Value Objects, Aggregates

Domain-Driven Design 모델링을 할 때 알아야할 가장 기본적인 요소들에 대해서 포스팅해보려고 한다. DDD의 전체적인 개념은 여기에 소개되어있다. 이번 포스팅에서는 세 가지 개념을 설명하려고 한다: Entities Value Objects Aggregates and Roots Entities Eric Evan의 Domain-Driven Design 책에서: Many objects are not fundamentally defined by their attributes, but rather by a thread of continuity and identity. 보통 object-oriented 방식으로 디자인할 때는 model들의 nouns와 verbs들을 정하면서 출발하게 된다. DDD에서 모델링을 할때는 먼저 Ubiquitous Language를 정하고 그에 맞춰서 model의 naming를 정하고 identity를 드러내게한다. 예를… 더 보기 »DDD – Entities, Value Objects, Aggregates

Domain-Driven Design Key Concepts

현재 오픈소스로 활동하고 있는 it-chain-Engine에서 적용 중인 아키텍쳐, 디자인에 대해서 조금 더 자세하게 알아보고 개념에 대해서 포스팅해보려고 한다. 그 중에 첫 번째가 DDD(Domain-Driven-Design)이다. 본 글은 원작자의 허가를 받고 번역한 글입니다. 의역과 오역이 있을 수 있습니다. 원본 링크: https://herbertograca.com/2017/09/07/domain-driven-design/ Domain-Driven Design과 관련해서 엄청나게 많은 중요한 컨셉들이 있지만 여기서 그것들에 대해서 모두 다루는 것은 아니고 중요하다고 생각하는 개념들에 대해서 나열하고 그것들에 대해서 설명해보려고 한다. 이번 포스팅에는 다음과 같은 개념들에 대해서 적어보려고 한다. Ubiquitous language Layers Bounded contexts Anti-Corruption Layer Shared Kernel Generic… 더 보기 »Domain-Driven Design Key Concepts

Tips for OpenSource Project – Git

Recently I’m working on a opensource project: it-chain/engine. I’ve participate in this project as collaborator early in the year. For about 6 month, there’re lots of hard situation to work with other developers. And also learned about how can I work with others not making awkward situation. In addition I want to share the tips to work on opensource project and how to use git, not basic tutorial but more about practices which fit into opensource project. Work on Smaller… 더 보기 »Tips for OpenSource Project – Git

How to Write Go Testing

  • go

Intro In making your application with code, it is strongly recommended to write test cases. Because it can make sure that your whole bunch of codes work correctly and for your mind health. Recently I have a chance to work in great project named it-chain-Engine with golang. In shortly this project is about lightweight and completely customizable blockchain engine. Completely customizable, because this project is implemented with DDD & event sourcing way which can separate every component with bounded context… 더 보기 »How to Write Go Testing

Hyperledger Fabric Configure Network – byfn 뜯어보기

Intro Hyperledger Fabric docs를 읽다보면 가장 처음 접하게 되는 것이 byfn 튜토리얼이다. 처음에 개념적인 부분과 실제 네트워크의 흐름을 맞춰보는데 정말 도움이 되는 것 같다. 그런데 정말 찬찬히 뜯어봐야한다. 하나씩 ‘이건 왜 이렇게 동작하는거지?’, ‘이건 왜 안되는거지?’ 하면서 Fabric의 개념적인 부분하고 연결시키면서 생각하면 어느순간 전체적인 그림이 그려지게 된다. 처음에 sample을 받고, develop 혹은 연습하는데 도움이 되는 바이너리 파일을 받게 된다. 바이너리 파일에는 cryptogen, configtxlator, peer 등 우리가 네트워크를 쉽게 구성할 수 있게 도움을 줄 수 있는 프로그램들이 있다. 전체 디렉토리 구조이다.… 더 보기 »Hyperledger Fabric Configure Network – byfn 뜯어보기