| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- github 에러
- 블록체인
- 웹툰
- 싱글톤패턴
- 부트캠프
- 스테이트머신패턴
- RBAC
- 인센티브 기반 커뮤니티
- 솔리디티
- 멀티시그
- 팀 프로젝트
- 팩토리패턴
- 코드리뷰
- 배팅
- github
- 회로차단
- 일시정지
- 트러블슈팅
- 코드스테이츠
- 투표
- 프록시패턴
- 재진입
- 업그레이더블 컨트랙트
- 디자인 패턴
- solidity
- 옵저버패턴
- git add
- 토큰노믹스
- git commit
- Today
- Total
목록전체 글 (67)
보다 더 생생한 기록
솔리디티로 디자인 패턴 알아보고 적용하기 (上) 에서 이어집니다 목차6. 멀티시그 패턴7. 회로차단(Pausable) 패턴8. RBAC(Role-Based Access Control) 패턴9. 재진입 방지 패턴 6. 멀티시그 패턴 (Multisignature Wallet Pattern)멀티시그 패턴은 트랜잭션이나 특정 행동이 여러 사용자의 서명을 필요로 하는 패턴입니다. 이 패턴으로 만든 지갑이 '다중 서명 지갑'입니다. 기존 단일 서명 지갑에서는 하나의 개인 키만 필요했지만, 다중 서명 지갑에서는 특정 액션을 취할때 여러명의 서명이 필요합니다. 이를 이용하여 악의적인 공격이나 개인 키 탈취 등에서 한층 보안성을 높일 수 있습니다. 간단한 컨트랙트의 틀을 작성해보겠습니다.contract MultiSigW..
3번째 공부 마라톤 주제로 디자인 패턴을 선정했습니다.디자인 패턴에 대해 알아보고, 솔리디티에 적용하여 이야기를 해볼까 합니다.총 두 편으로 나눠 포스팅됩니다.목차1. 프록시 패턴2. 팩토리 패턴3. 싱글톤 패턴4. 옵저버 패턴5. 스테이트 머신 패턴 1. 프록시 패턴 (Proxy Pattern)프록시 패턴을 이용한 업그레이더블 컨트랙트 구현은 불변성을 지닌 컨트랙트 생태계에서 유명한 내용입니다.이 내용은 따로 포스팅해 뒀으니, 이번 글에서는 넘어가겠습니다. 1편 : 업그레이더블 컨트랙트 (이론)2편 : 업그레이더블 컨트랙트 + 하드햇 테스트 (실전) 2. 팩토리 패턴 (Factory Pattern) 디자인 패턴을 이용한 스마트 컨트랙트 개발의 두 번째 주제로 팩토리 패턴을 소개합니다. 팩토리 패턴은 객..
직전에 작성한 업그레이더블 컨트랙트와이번에 새로 학습한 TS, NestJS, TypeORM로 구축한 서버와 연결하는10일 챌린지 프로젝트를 진행했습니다. 72번째 포스팅 글에서 이어집니다. GITHUBhttps://github.com/viviviviviid/ts-nest-upgradable-challenge/blob/main/README.md 챌린지 프로젝트 개요학습 내용 : TypeScript, Nest.js, TypeORM학습 기간 : 1개월챌린지 목표 : 학습한 내용을 직전에 구축한 업그레이더블 컨트랙트에 연결하여 실전에 적용하는 것을 목표로 한다.챌린지 기간 : 7일 [컨트랙트 구축 및 하드햇 테스트 : 3일] [서버 구축 및 연결 4일]챌린지 후기 : 자주 사용하는 GO언어처럼 강타입으로 바뀌니..
최근 GO를 사용하다보니, JS에서 무수히 발생하는 타입에러들이 보기 싫어진 것과 부족한 스택을 채워야한다는 생각에 시작한 타입스크립트 공부.이 내용이 끝나면 Nest.js + TypeORM을 진행해 프로젝트로 진행할 예정이다.공부 마라톤 개요학습 내용 : TypeScript, Nest.js, TypeORM학습 기간 : 1개월 새로 안 사실만 블로깅 TypeScript BasicCall SignatureOverloadingPolymorphism(다형성) → 여러 형태TypeScript의 제네릭(Generic)을 사용하면 다양한 타입을 사용할 수 있다. 제네릭은 선언 시점이 아니라 생성 시점에 타입을 명시하여 하나의 타입만이 아닌 여러 타입을 지원하는 기법이다.type SuperPrint = { (a..
직전 포스트에서 업그레이더블 컨트랙트의 개념과 원리를 이해했으니, 이제 실제로 구현해보고 하드햇(Hardhat)을 이용해 테스트를 진행해 보자. 이번 프로젝트는 업그레이더블 스마트 컨트랙트를 통해 로직을 변경할 수 있는 시스템을 설계하는 것이다.프로젝트 설명이번 프로젝트에서는 프록시 컨트랙트(Proxy Contract)와 로직 컨트랙트(Logic Contract)를 활용하여, 필요 시 로직을 쉽게 업그레이드할 수 있는 스마트 컨트랙트를 구현한다. 주된 목적은 기존 상태를 유지하면서 새로운 기능을 추가하거나 버그를 수정하는 것이다.구조 설명아래 다이어그램은 프록시 패턴의 구조를 시각적으로 나타낸 것이다. User: 프록시 컨트랙트를 호출하는 사용자.Owner: 프록시 컨트랙트를 업그레이드할 수 있는 권한을..
업그레이더블 컨트랙트를 이용해서 간단한 프로젝트를 만들기전에, 제대로 짚고 넘어가보자. 업그레이더블 컨트랙트(Upgradable Contract): 한번 배포하면 수정할 수 없는 불변성의 특징을 가진 스마트컨트랙트를 업그레이드 시킬 수 있는 방식으로 설계한 스마트컨트랙트 프록시 패턴(Proxy Pattern): 실제 로직 컨트랙트(Logic Contract)을 대리하는 역할을 하는 프록시 컨트랙트 사용자는 프록시 컨트랙트와 상호 작용하지만, 실제 실행되는 로직은 별도의 논리 컨트랙트에서 수행 위 그림처럼 사용자가 프록시 컨트랙트의 함수를 호출하면, 프록시 컨트랙트에 저장된 주소를 이용하여 로직 컨트랙트의 함수를 호출할 수 있도록 한다. 위 그림1만 보면 다른 컨트랙트의 함수를 불러와 사용하는 것과 뭐가..