Skip to content

This is a project for implementing a blockchain core in a local environment.

Notifications You must be signed in to change notification settings

indianaPoly/blockchain-localSimulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

  1. 새로운 체인을 만드는 함수 (구조체를 보고 불필요한 것에 대해서는 삭제하는 것이 필요해보임)

    1. 현재 구조체에 존재하는 것
      1. 블록저장 배열
      2. 검증자 배열
      3. 트랜젝션 저장하는 풀
      4. 블록가스 리밋
      5. 트랜젝션 가스 비용
      6. 사람들 잔고 저장
      7. 검증자 보상 저장
      8. 최대 블록 크기
      9. 최소 검증자 수
  2. 트랜젝션 확인 함수 (분리해야될듯?)

    1. (추가적인 것) 벨리데이터를 확인 (지분 증명 알고리즘을 통해서 확인)한 이후에 트랜젝션 아래 로직을 검토 에러 핸들
    2. 트랜젝션에서 보내는 금액 확인
    3. 가스비 확인
    4. 서명 확인 (서명을 검증한다는 것은 특정 거래가 실제로 해당 거래를 보낸 사람에 의해 생성되었는지를 확인하는 )
    5. 가스비와 보내는 금액에 대해서 트랜젝션을 발생시키는 사람의 잔액이 충분한지 검증
    6. 중복거래가 있지는 않는지에 대해 (고유한 ID 부여)
  3. 트랜젝션을 확인한 이후에 이를 mempool에 저장

  4. MEMPOOL에 있는 트랜젝션을 선택후 이를 머클루트 기반으로 블록을 생성

    1. (추가적인 것) MEMPOOL의 크기 제한을 두어 오래된 트랜젝션에 대해서는 자동으로 제거하도록 설
    2. 밸리데이터 검증
    3. 트랜젝션 해시 기반으로 머클루트 형성
    4. 새로운 블록 형성
      1. 트랜젝션을 정렬하여 가스비가 높은 것을 우선 처리
      2. 최대 블록 크기 설
    5. 블록에 대한 검증 진행
      1. 블록생성시 타임스탬프가 이전 블록의 시간보다 뒤에 있어야 함.
    6. 블록 추가
    7. 블록의 가스 한도에 맞게 트랜젝션을 선택 (최대 블록 크기가 필요가 없지 않을까?)

About

This is a project for implementing a blockchain core in a local environment.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages