





Blockchain/Ethereum(10)
-
Gas price != zero
테스트코드를 작성 하고 있을 때 Geth node가 백그라운드에서 돌아가고 컨트랙트 배포 등 트랜잭션 처리를 도와야할 필요가 있어서 Geth로 노드를 돌아가게 하는 개발을 진행중이었다. 다른 코드들에서는 계속 예전 mining 하는 버전의 Geth를 쓰다가 이제는 beacon으로 컨센서스 돌리는 버전으로 바꿔야겠다는 생각이 들어 업데이트를 수행했다. (기존에는 EthHash 또는 Clique로 컨센서스 알고리즘을 사용했었다.)백엔드 노드를 변경을 하고, 컨트랙트 배포 코드는 그대로 사용했더니 tx처리가 안되는 부분이 있어서 확인하고 기록을 남겨둔다.설정 변경Geth 버전은 1.15.0이며, genesis의 config는 params.AllDevChainProtocolChanges를 사용했다. 이 Chai..
2025.03.18 -
ENS(Ethereum Name Service)
※ 원글 작성 : 22년 11월 21일 ENS ENS(Ethereum Name Service) 란 웹서비스를 위한 DNS처럼 human-readable한 이름(도메인)을 ethereum address와 mapping하여, 이름 검색 시 연결된 ethereum address를 확인해 주는 서비스이다. .eth 같은 TLD(Top Level Domain)의 하위에 'alice.eth'처럼 하위 도메인을 구성할 수 있고, 이 도메인을 소유한 사람은 'pay.alice.eth'처럼 여러 하위 도메인을 생성/제어 가능하다. 또한 다른 NFT처럼 도메인을 구매하고 OpenSea 등에서 판매도 할 수 있다. ENS는 EIP-137에서도 제안 되어졌다. 요즘같은 대하락 시대의 코인판에서도 ENS는 "나름" 선방하고 있..
2023.06.15 -
Ethereum의 PoS 전환을 반기며
※ 원글 작성 : 22년 9월 19일 Ethereum merge Ethereum merge가 22년 9월 15일에 완료되었다. 기존에 출시한 메인넷과 ethereum 2.0(재단에서는 2.0이나 eth2 등의 용어 사용을 지양했지만 기존과 구분하고자 2.0을 사용하려 한다.)의 PoS 컨센서스를 위한 beacon chain의 통합이 바로 merge의 주요 내용이다. 메인넷(eth1)이 계속 운용중일 때 20년 12월 1일에 PoS 전환을 위한 beacon chain(eth2)이 출시 되었다. Beacon chain의 테스트를 병렬로 꾸준히 진행하여 보안성 확보를 진행하고, merge 됨과 동시에 eth1에서 사용하던 PoW를 완전히 PoS로 대체시켰다. 그리하여 eth1은 더이상 consensus alg..
2023.06.15 -
Ethereum Gas
※ 원글 작성 : 22년 8월 3일 Gas는 ethereum 네트워크를 구성할 시 필수적으로 사용되는 비용이다. Gas의 여러 정보들을 확인해본다. Gas Ethereum의 gas란 EVM 상에서 transaction을 동작시키기 위해 소모되는 비용이다. 예를 들어, solidity contract를 작성 후 ethereum 상에 바이트코드를 deploy 하면 해당 바이트코드를 동작하는 OPcode 마다 정해진 gas를 소모한다. 이렇게 OPcode 등의 계산에 대해 수수료를 gas로 요구하면 solidity 내의 무한 루프를 방지하여 계산으로 인한 throughput을 줄여 네트워크 혼잡도를 낮출 수 있고, 악의적으로 네트워크를 스팸하는 것 또한 방지가 가능하다. Gas는 ethereum의 네이티브 코..
2023.06.15 -
Ethereum Bootnode 기능 확인
※ 원글 작성 : 22년 5월 4일 Bootnode 부트노드는 이더리움에 참여하려는 노드가 처음으로 연결되는, 이더리움 code안에 주소가 박혀있는 노드이다. 참여 노드는 부트노드에 연결하여 다른 노드들을 find 하고 다른 이더리움 노드의 주소(enode 식별자)를 전달받아 해당 노드와 연결된다. 블록 동기화도 찾아낸 노드들로부터 정보를 얻어서 진행하기 때문에 부트노드의 연결은 이더리움 생태계 안에 들어가기 위한 시작점이라고 볼 수 있다. 부트노드가 새로 참여하는 노드에게 주변 live 노드 정보를 전달해 준다면, 개발자가 임의로 healthy한 노드를 찍어서 전달해 줄 수 있지 않을까? Geth 내에 부트노드 코드를 보며 어떠한 방식으로 노드간 연결이 진행되는지 분석해보고, 실제로 임의의 노드를 전달..
2023.06.14 -
Ethereum [5] (Smart contract)
※ 원글 작성 : 22년 4월 27일Smart contractSolidity이더리움 smart contract를 개발하기 위한 언어솔리디티 변수는 context에 따라 메모리 or 파일 시스템에 저장상태변수 : contract 최상위단에 선언된 변수 = Storage 저장로컬변수 : 함수 아래에 선언된 변수 = Storage 저장, memory keywordfh 메모리 저장 가능데이터 유형booluint8, uint16, uint24, ..., uint256 - 부호없는 8, 16,, 비트의 정수)ufixed0x8, ufixed0x16, ..., ufixed0x256 - 부호없는 실수fixed0x8, ...., fixed0x256 - 부호있는 실수address : 16진수 할당, 최대 20바이트 저장, ..
2023.06.13