목록2023/04 (5)
devops
이더리움의 트랜잭션은 암호로 서명된 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 트랜잭션 비용이 결정된다. 이 비용이 저렴할 수 록 ..