이 프로젝트를 통해 파이썬을 사용하여 블록체인 기술을 학습하고, 간단한 비트코인 및 이더리움 네트워크를 모델링하는 방법을 탐구했습니다. 원본 소스 코드와 실습 예제는 여기에서 찾을 수 있습니다.
블록체인의 기본 정의와 구성 요소를 다룹니다. 블록체인 기술의 핵심인 암호해시와 함께 파이썬에서 함수와 객체 사용 방법, SQLite3을 활용한 데이터베이스 관리, Flask를 이용한 백엔드 개발 및 API 구성 방법에 대해 공부했습니다.
- 블록체인 정의 및 구성 요소
- 암호해시
- 파이썬: 함수, 객체
- 데이터베이스: SQLite3
- 백엔드 개발: Flask, API
비트코인 네트워크의 기본적인 구성과 운영 방법을 배웠으며, 블록체인 노드의 구축부터 운영까지 다양한 실습을 포함합니다.
- 블록체인 노드 구축 (one_node.ipynb): 파이썬 패키지 호출, 블록체인 객체 및 노드 생성 방법.
- 운영 중인 노드에 실행 명령 (one_node_command.ipynb).
- 블록 스캔 사이트 (one_node_chainScan.ipynb): 백엔드 및 프론트엔드 개발.
- 블록 Wallet 사이트 (one_node_Wallet.ipynb): 백엔드 및 프론트엔드 개발.
- 여러 개의 노드 연결 (node_network_1.ipynb 등): 여러 노드 운영을 위한 추가 사항들.
이더리움 네트워크 구축과 스마트 컨트랙트 기능의 구현 방법을 배웁니다. 또한, PoW 대신 PoS 작업 방식을 적용하는 방법에 대해서도 학습합니다.
- 블록체인 객체에 스마트 컨트랙트 인자 추가.
- 파이썬
exec
함수를 사용한 스마트 컨트랙트 코드 실행. - 실제 command 파일을 통한 스마트 컨트랙트 코드 실행.
- PoW 사용 시 논스와 같은 기능 대신, Validator와 예치 지분율 등 PoS에 필요한 정보와 메소드 추가.
- 한 노드에서 여러 노드로, 그리고 스마트 컨트랙트까지 확장된 내용