목록분류 전체보기 (238)
devops
블록체인의 트릴레마는 해결하기보다 Layer 2가 트릴레마를 보완해 가는 방향으로 발전하고 있다고 생각한다. 현재 많은 Layer 2들이 활동하고 있지만 Optimism은 자체 Layer와 더불어 이더리움 기반의 새로운 Layer2 생태계를 그려나가고 있다. 그 시작은 OP stack이라는 Layer 2 SDK다. OP stack 공식 문서 내용을 보면, OP stack은 Optimism Superchain과 거버넌스를 위한 소프트웨어 세트라고도 말한다. 여기서 Superchain은 OP stack을 기반으로 레이어간의 통신과 보안, 거버넌스를 공유하는 네트워크다 Utility, Simplicity, Extensibility OP stack은 3가지 원칙에 따라 구축된다. 유틸리티와 간단함 그리고 확장성..
이더리움의 트랜잭션은 암호로 서명된 Data message다. 한 이더리움 account에서 다른 account로 ETH를 전송하거나, 블록체인에 배포된 Smart Contract와 상호작용하는 역할을 한다. 트랜잭션은 블록체인에 있어 아주 기본적이지만, 중요한 개념이기 때문에 관련 종사자라면 필수적으로 알아야하는 부분이기도 하다. 트랜잭션 Transaction 트랜잭션은 EVM 상태 변경을 위해 전체 네트워크에 Broadcast되어야 한다. 모든 노드는 EVM에 실행될 트랜잭션에 대한 요청을 Broadcast할 수 있어야하며, Broadcast된 후에는 Validator가 트랜잭션을 실행하고 상태가 변경된 결과를 네트워크에 전파한다. 이더리움 네트워크에서 트랜잭션은 Serialize되어 전송되는데, 각..
Rollup L2들은 L1에 트랜잭션 Batch를 전송하기 때문에 최적화를 위해선 Layer 1에 전송되는 batch와 state와 관련된 Tx도 체크해야 한다. 그래서 단순히 Tx가 전송되는 것만 체크해선 소용없다. 코드를 수정하고 체인을 다시 올리고 직접 log를 일일이 확인하면서 테스트했는데, 너무 비효율적이라 직접 테스팅 툴을 go언어로 개발하게 되었다. 개발하면서 고민했던 주요 기능은 다음과 같다. - EVM Transaction : Dapp에 최적화된 Layer가 필요하기 때문에 단순히 value를 전송하기 보다 Contract를 사용하는 Tx가 필요하다. - Layer Batch Post Log : L2에서 Tx가 처리됨과 동시에 L1에 정상적으로 Batch가 Post되었는지 확인할 수 있어..
서비스 테스트를 위해서, 자체적으로 구축한 아비트럼 체인의 TxGas 수수료를 제로로 하는 테스트를 진행했다. 짧은 시간에 Tx가 많이 요구되는 서비스라면 사용자 경험을 최적화하기 위해서, 가스비를 0로 해야할 수 있다. 서비스 테스팅을 위해서 아래 local-dev-node 방식으로 일부 코드를 수정하여 체인을 구축했다. https://developer.arbitrum.io/node-running/local-dev-node Running a local dev node | Arbitrum Documentation Center 1. Install developer.arbitrum.io 아비트럼의 가스비는 ETH로 사용되며, Arbos의 L2Pricing 기능을 통해서 비용이 결정되는데, Arbos가 Nit..
[Arbos] nitro 노드는 아래와 같은 세가지 layer로 구성된다. base layer : evm contract 실행과 state를 구성하는 데이터 구조를 유지 관리하는 core 역할을 담당한다. nitro에선 필요한 hook를 추가하기 위해 몇가지 수정을 거쳐 이 코드를 라이브러리로 컴파일한다. middle layer : arbos로써, sequencer의 batch와 압축 및 해석, layer 1 가스비용 계산과 요금 징수 등 레이어 2의 추가 기능을 제공하는 custom s/w. 크로스체인 브릿지 기능을 지원한다. top layer : geth 에서 가져온 노드 소프트웨어로 구성된다. client로부터 접속과 RPC request를 처리하고 Ethernet 호환을 위한 노드를 작동시키는 기..
아비트럼은 이더리움의 ETH가 가스비로 사용된다. 현재 $ARB 라는 거버넌스 토큰이 발행되었지만, $ARB 는 유틸리티는 단지 '거버넌스'에 한정되어있고 Arbitrum실제 트랜잭션 수수료엔 ETH가 사용된다. 시퀀서는 Arbos를 통해서 L2 가스비를 계산하여 유저로부터 가스비를 징수하고 전달받은 트랜잭션을 Batch화 하여 L1 Sequencer Inbox Contract의 Calldata로 전송한다. 여기서 Arbitrum 체인 운영에서 가장 많은 비중을 차지하는 비용이 이 calldata에 Tx Batch를 전송하는 ETH 가스비다. L2의 Tx를 Batch화할 때 압축과 인코딩 과정을 거치는데, 얼마나 효율적으로 크기를 줄이느냐에 따라 L1 트랜잭션 비용이 결정된다. 이 비용이 저렴할 수 록 ..
아비트럼이 현재 옵티미즘 롤업 기반 L2 사이에서 높은 TPS를 자랑한다. 많은 Layer 1 프로젝트들이 Layer 2 연구에 옵티미즘을 많이 사용하는 만큼, 가장 빠른 아비트럼으로 테스트를 진행해봤다. 조만간 Orbit이 출시하면 더 친절한 자료들이 나오겠지만, 시급한 서비스 테스트를 위해 현재 Arbitrum Nitro를 L1인 위믹스3.0 테스트넷에 연결시켰다. https://developer.arbitrum.io/node-running/local-dev-node Running a local dev node | Arbitrum Documentation Center 1. Install developer.arbitrum.io 위 링크에 들어가면 Local 환경에서 docker-compose로 손쉽게 ..
아비트럼에서 다양한 컴포넌트에 대한 설명부터, 클라이언트가 서명한 트랜잭션이 생성되어 레이어 1에서 컨펌되는 과정을 단계별로 정리해본다. 지난 포스팅에서 블록체인의 간단한 구조를 정리했는데, 트랜잭션의 라이프사이클만 확인해도 전체적인 프로세스를 이해하는 데 많은 도움이 된다. 1. Sequencer의 트랜잭션 수신 트랜잭션 라이프사이클의 시작은 Sequencer가 클라이언트로부터 트랜잭션을 수신하면서 시작된다. Sequencer는 두 가지의 방법으로 트랜잭션을 수신한다. Directly/Offchain 아비트럼의 Dapp에서 발생하는 트랜잭션은 클라이언트가 지갑을 L2 노드에 연결하여 서명된 트랜잭션을 직접 전달함 Delayed Inbox 클라이언트는 아비트럼의 Delayed Inbox에 L1 트랜잭션에..
최근 아비트럼이 자체 거버넌스 토큰인 $ARB 를 발행하면서, 많은 관심을 받고 있다. GMX, Camelot 같은 트렌디한 Defi들이 출시되면서 체인의 TVL도 급격히 높이고 있는 추세다. 다양한 옵티미즘 롤업 기반 체인들이 있지만 그중에서 가장 높은 TPS를 구현한 아비트럼이기에, 이더리움의 보안을 빌려 높은 확장성을 유지하는 아비트럼에 매력적인 서비스들이 많이 운영되고 있는 것같다. 아무튼 간단한 구조를 정리해보면 다음과 같다. 아비트럼 네트워크는 Sequencer와 Validator 이 두 노드에 의해서 실행되어 Ethereum 메인넷과 상호 작용한다. Sequencer는 유저의 L2 트랜잭션을 가져와 L1에 제출하고, Validator는 L1의 트랜잭션 데이터를 읽고 트랜잭션을 처리하여 L2 ..
kubeconfig 파일을 생성하여 EKS 클러스터 API 서버와 통신할 수 있도록 구성한다. cluster를 컨트롤할 bastion 서버에는 aws cli, kubectl가 미리 설치되어 있어야한다. (혹시 기존에 config 파일이 존재했다면, 삭제하고 재설정하는 것을 권장) kubectl 설치 (아래 aws 공식문서 참고) https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/ # 기존 버전 설치되어 있는 지 확인 $ kubectl version | grep Client | cut -d : -f 5 # kubernetes amd 64 1.23버전 다운 (linux) $ curl -o kubectl https://s3.us-west-2.amazo..