일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Golang
- play2 강좌
- play 강좌
- Hyperledger fabric gossip protocol
- 스위프트
- 파이썬 강좌
- 하이브리드앱
- Play2
- 파이썬 머신러닝
- 주키퍼
- 파이썬 데이터분석
- Play2 로 웹 개발
- 안드로이드 웹뷰
- 이더리움
- akka 강좌
- 스칼라 강좌
- 스칼라 동시성
- 스칼라
- 파이썬
- 파이썬 동시성
- Akka
- CORDA
- 하이퍼레저 패브릭
- 그라파나
- 블록체인
- Adapter 패턴
- Actor
- hyperledger fabric
- 엔터프라이즈 블록체인
- 플레이프레임워크
- Today
- Total
목록2019/01/21 (2)
HAMA 블로그
이더리움의 P2P에서 리모트 피어와 메세지를 읽고/쓸때에는 위의 그림처럼 peer ( 이더리움에서 peer객체는p2p 와 eth에 각각있으며, eth의 peer 는 위 그림의 peer 와 protoRW를 포함한다) 를 통하는데, peer객체는 읽고/쓰기를 rlpxFrameRW를 통해서 한다. 이 글에서는 rlpx의 transport부분은 빼고 rlpxFrameRW를 살펴 볼 것이다.func (pm *ProtocolManager) handleMsg(p *peer) error { msg, err := p.rw.ReadMsg() switch { case msg.Code == GetBlockHeadersMsg: ... case msg.Code == BlockHeadersMsg: ... case msg.Code ..
이더리움에서 TCP기반의 스트리밍을 위해 peer끼리 커넥션을 맺을때 아래와 같은 순서를 갖는데 1. 암호화키를 교환하여 앞으로는 이 키 기반으로 통신하게 함 2. 프로토콜 정보(버전등)를 교환하여 서로 동업자인지 확인하고 3. rlp 로 엔코딩하고 서로 약속된 frame에 맞춰서 메세지를 주고 받는다.이 글에서는 1번에 대해서 코드와 함께 알아 볼 것이다. 접속을 하는 peer를 initiator 라고 하고 접속을 받는 peer를 receiver 라고 한다. 한번 접속했던 경우 known peer라고 하고, 처음 접속하는 peer를 new peer라고 한다. 한번 접속했던 경우에는 session token을 보관하는데, 그렇더라도 항상 접속할때마다 그 기반으로 새로운 키를 만들어 사용한다.(참고: 스트..