-
새로운 체인을 만드는 함수 (구조체를 보고 불필요한 것에 대해서는 삭제하는 것이 필요해보임)
- 현재 구조체에 존재하는 것
- 블록저장 배열
- 검증자 배열
- 트랜젝션 저장하는 풀
- 블록가스 리밋
- 트랜젝션 가스 비용
- 사람들 잔고 저장
- 검증자 보상 저장
- 최대 블록 크기
- 최소 검증자 수
- 현재 구조체에 존재하는 것
-
트랜젝션 확인 함수 (분리해야될듯?)
- (추가적인 것) 벨리데이터를 확인 (지분 증명 알고리즘을 통해서 확인)한 이후에 트랜젝션 아래 로직을 검토 에러 핸들
- 트랜젝션에서 보내는 금액 확인
- 가스비 확인
- 서명 확인 (서명을 검증한다는 것은 특정 거래가 실제로 해당 거래를 보낸 사람에 의해 생성되었는지를 확인하는 )
- 가스비와 보내는 금액에 대해서 트랜젝션을 발생시키는 사람의 잔액이 충분한지 검증
- 중복거래가 있지는 않는지에 대해 (고유한 ID 부여)
-
트랜젝션을 확인한 이후에 이를 mempool에 저장
-
MEMPOOL에 있는 트랜젝션을 선택후 이를 머클루트 기반으로 블록을 생성
- (추가적인 것) MEMPOOL의 크기 제한을 두어 오래된 트랜젝션에 대해서는 자동으로 제거하도록 설
- 밸리데이터 검증
- 트랜젝션 해시 기반으로 머클루트 형성
- 새로운 블록 형성
- 트랜젝션을 정렬하여 가스비가 높은 것을 우선 처리
- 최대 블록 크기 설
- 블록에 대한 검증 진행
- 블록생성시 타임스탬프가 이전 블록의 시간보다 뒤에 있어야 함.
- 블록 추가
- 블록의 가스 한도에 맞게 트랜젝션을 선택 (최대 블록 크기가 필요가 없지 않을까?)
-
Notifications
You must be signed in to change notification settings - Fork 0
indianaPoly/blockchain-localSimulator
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
This is a project for implementing a blockchain core in a local environment.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published