How to write gas optimized solidity contract?
·
개발/BlockChain
Gas Optimized ContractsI will explain about gas optimization when writing contract code with reference to nodeguardians gas optimization campaignYou can find the all of codes in Github.1. Reducing Storage AccessAccessing contract storage is a very expensive operation.The opcodes for accessing storage are SLOAD and SSTORE. we can see that SLOAD and SSTORE are very expensive operations.Here is an ..
Uniswap v2 core 분석
·
개발/BlockChain
Markdown 을 그대로 티스토리에 옮겼더니 너무 많이 깨지는데 더 깔끔한 글은 깃허브에 있습니다.uniswap v2 core contract 분석uniswap v2 core 에는 크게 factory, pair 2개의 컨트랙트가 있다.이 컨트랙트들을 코드를 까보며 보려고 한다.1. Factoryfactory 에서는 흔히 LP 라고 부르는 pair를 만든다.그리고 프로토콜 수수료를 받을 주소를 저장하고 있는다.눈여겨볼 함수는 createPair 이다.프로세스는 다음과 같다.graph TD A[토큰 A, B 입력] --> B[token0, token1 정렬] B --> C[바이트코드 준비] C --> D[솔트 생성] D --> E[CREATE2 실행 - 페어 컨트랙트 생성] E ..
10kb 이상 파일 업로드가 안되는데요?
·
개발/Devops
10kb 이상 파일 업로드가 안되는데요?백엔드 서버는 spring boot를 사용하고 있고 파일업로드 기능은 multipart로 파일을 받아 s3에 업로드하는 형식이다.파일 업로드가 안되는 이슈를 계속 테스트 해봤고 10kb 이상 파일부터 안올라 가는걸 확인했다.나는 어플리케이션의 문제로 인지했고 파일 크기관련 설정을 넣어줬지만 여전히 계속 실패했다.spring: servlet: multipart: enabled: true max-file-size: 20MB max-request-size: 20MB진짜 삽질 너무많이 했는데 결국엔 WAF 문제였다.WAF 규칙에 AWSManagedRulesCommonRuleSet 중 SizeRestrictions_BODY 설정이 10kb ..
ZK 교육 후기
·
개발/BlockChain
2025.06.28 ~ 2025.08.02 기간에 이더리움 재단에서 주관한 ZK 교육을 듣게된 후기를 작성한다.교육은 매주 토요일 판교에서 오프라인으로 진행되었고 매주 리서치한 자료를 발표한걸 듣거나 ZK 관련된 분야의 현직자들의 연사를 들을 수 있었다.1. 계기블록체인쪽으로 커리어를 전향한건 25년 5월부터이다.정말 기본적인 것도 모르는게 많았고 블록체인쪽 기술은 너무 많고 새롭게 느껴져서 재밌었다.그러던중 지인의 소개로 해당 교육을 알게되었다.ZK 라는걸 아예 모르고 있었고 찾아봤는데 영지식증명이라는 이름 자체가 흥미로웠다.다른 사람과 함께하면 그만큼 동기부여도 될 것 같았고 다양한 인사이트를 얻을수 있을거 같아 주저없이 신청했다.2. 입문ZK 교육을 신청하고 사전과제로 암호학과 관련된 내용들을 사전..
[AWS ECS] 설정하면서 이슈들
·
개발/AWS
지금까지 ec2 인스턴스 하나만 배포하여 사용하고 있었다.생각보다 꽤나 잘버티고 있지만 저번에 동시에 엄청난 요청을 받아들이면서 서버가 매우 느려진 시기가 있었다.지금은 그정도는 아니지만 나름 여유가 있을때 ecs 로 바꾸면서 오토스케일링 및 롤링업데이트도 적용하려고 한다.기존에는 ecr 에 이미지를 올리고 ec2 에서 그 이미지를 pull 땡겨와서 배포를 진행했다.굳이 eks 까지 쓸이유는 없다고 판단해서 기존 배포를 ecs 배포로 마이그레이션 하려고 한다.1. EC2 vs Fargate제일 먼저 맞닥뜨린 고민은 ecs에서 launch type인 ec2와 fargate의 선택이다.나는 ecs뿐만 아니라 서버리스의 환경을 운영해본적은 없고 ec2에 훨씬 익숙하다.예전이라면 주저없이 ec2를 사용했을것이다..