본문 바로가기

분류 전체보기30

[번역] There is No Now 분산 시스템의 시간 및 상태 1. There is No Now 2. Time, Clocks, and the Ordering of Events in a Distributed System 3. Virtual Time and Global States of Distributed Systems 4. Why Logical Clocks are Easy 5. Hybrid logical clocks There is No Now (지금은 없습니다) 분산 시스템의 동시성 문제 Justin Sheehy 원문 "지금" 제가 이 글을 쓴 시점과 여러분이 이 글을 읽은 시점 사이에는 최소 2주 이상의 시간이 흘렀습니다. 이런 종류의 지연은 우리가 당연하게 여기고 서면 매체에서는 생각조차 하지 않는 것입니다. "지금" 만약 우리가 .. 2023. 4. 27.
NAT-PMP 에러 처리 본 내용을 다루기에 앞서, NAT-PMP(Port Mapping Protocol)에 대한 간단한 설명으로 글을 시작한다. NAT-PMP는 NAT 내부에 할당된 [IP, 포트]와 NAT의 포트를 매핑시켜, 사설 네트워크의 호스트가 외부 네트워크의 호스트와 end-to-end 통신 할 수 있도록 돕는 프로토콜이다. 예를 들어, 다른 네트워크에 있는 사용자가 '192.168.10.111' 라는 사설 IP를 갖고 있는 나에게 연결하려는 상황을 가정해보자. 외부에 있는 호스트는 나에게 직접 접근할 방법이 없다. 만약 내가 NAT 관리자라면 포트 포워딩을 해주면 되겠지만, 그렇지 않은 사용자가 대다수이다. 이럴 때 NAT-PMP를 사용한다면 [internal: '192.168.10.111:8080', extern.. 2023. 4. 22.
[이더리움] Access list 현재 이더리움의 트랜잭션 타입은 총 세 가지(Legacy, Dynamic fee, Access list)가 존재한다. Legacy와 Dynamic fee에 대해서는 파악하고 있는데, Access list는 무엇인지 전혀 모르고 있다는 걸 깨달았다. 그도 그럴게 인터넷의 여러 자료들을 봐도 Access list를 사용하는 예제나 코드는 찾아볼 수가 없었고, 자연스레 관심을 가지지 않게 되었던 것 같다. 이 글을 작성하게 된 계기는, 이더리움 상하이 하드 포크 업데이트 내용을 보다가 EIP-3651: Worm COINBASE 가 적용된 것을 보고 궁금증이 생겨 EIP 내용을 봤더니 Access list와 관련된 내용이 나와 이해하기가 힘들다고 느꼈다. 글을 작성하고 나면 Access list 트랜잭션이 무엇.. 2023. 4. 12.
[Go] 메모리 할당 위치 해당 글의 대부분은 https://dave.cheney.net/2014/06/07/five-things-that-make-go-fast 글을 번역한 내용입니다. 링크의 글은 'Go를 빠르게 만드는 5가지'라는 주제로 여러 예시와 함께 잘 정리되어 있습니다. Most of this article is a translation of an article from 'https://dave.cheney.net/2014/06/07/five-things-that-make-go-fast'. The article at the link is called "5 things that make Go fast" and is well organized with lots of examples. This post is not mone.. 2023. 4. 11.
[이더리움] Multicall contract 오늘은 간단하면서도 재밌는 컨셉의 컨트랙트를 발견하여 그와 관련된 글을 적어 보려한다. Multicall (https://github.com/mds1/multicall) Multicall은 한 번의 호출만으로 여러 컨트랙트 조회값을 리턴 받을 수 있는 컨트랙트다. 여러 컨트랙트를 각각 조회하면 되는데, 왜 굳이 다른 컨트랙트를 거쳐서 결과값을 얻어야 할까? 기본적으로 한 번에 많은 요청을 하는 것이 요청을 여러 번 하는 것보다 오버헤드가 적고, Infura와 같은 노드 서비스를 운영한다면 rpc 요청 수에 제한이 있거나, 과금이 발생하기 때문에 다소 번거로움이 있더라도 요청 수를 줄이려는 노력은 합리적으로 보인다. 컨트랙트의 역할에서 유추할 수 있지만, Multicall 컨트랙트 자체가 복잡한 기능을 하.. 2023. 4. 8.
[어원] 코로나 몇 해 동안 마스크를 쓰게 했던 COVID-19는 전세계 사람들이 모두 알고 있을 것이다. 보통 우리는 실생활에서 '코로나에 걸렸다', '코로나 양성이 나왔다' 같이 말하는데 코로나란 무엇일까?코로나는 고대 그리스어 korone를 어원으로 갖는 라틴어 corona 이고 이는 머리에 쓰는 관을 의미한다. 영어로 번역하자면 crown이 되겠다. 왜 바이러스에 코로나라는 이름을 붙였을까?  전자현미경으로 바이러스를 보면, 둥근 몸체에 왕관처럼 튀어 나온 돌기가 나와 있어 코로나바이러스라고 부른다고 한다.이제 와서 코로나바이러스라고 하면 COVID-19를 의미하는 말처럼 되어버렸지만, 이전에도 우리는 코로나바이러스를 겪은 경험이 있다. 사스와 메르스 또한, 위 사진을 보면 알겠지만 왕관처럼 튀어 나온 돌기를 가.. 2023. 3. 30.