[블록체인을 이용한 경력 인증] 설계서 작성 및 패키지 분할 (Go)

재호·2022년 7월 25일
0

CABB

목록 보기
1/5

CABB(가제)

Career Authentication By Blockchain
블록체인을 이용한 프리랜서 경력 인증 웹서비스

기초 설계서

경력 인증 플랫폼 : 서비스 Layer1


  1. 회원

    1.1 회원 가입

    1.2 회원 암호 키페어 (공개키, 개인키) ——————————— A (create)

    1.3 회원 전자지갑(wallet) ——————-—————————— B (create)

    • 주소
    • 인증 내역

    1.3.1 tx 발생 이력 (ref) ———————————————— C (ref)

  2. 경력 인증

    2.1 경력 등록(tx 생성) —————————————————— D (create)

    2.2 경력 조회(tx/block)

    2.2.1 전체 리스트 조회(tx) ——————————————— E (ref)

    • 경력
    • 등록 일자
    • 회사명

    2.2.2 상세 조회(tx/block) ———————————————- F (ref)

    • 경력
    • 회사명
    • 직무
    • 등록일자
    • 경력증명서 URL
    • 블록체인 메타(header) 정보
    • tx 메타 정보(TxID)

Layer2


RoutePath FunctionName Layer2


“/genKeyPair” NewKeyPair A -

“/newWallet” NewWallet B -

“/refTx” FindTxByAddr C -

“/newTx”, “/tx/new” NewTx D -

“/refTx“ , “tx/ref” FindTxByAddr E -

“/refBlk” , “/blk/ref” FindBlockByTx F -


Layer3
... 진행중


기본 구조체

Block Structure :

Hash      [32]byte //블록 해시  
prevHash  [32]byte //이전 블록 해시  
PoW       [32]byte //PoW  
txid      [32]byte //트랜잭션 해시  
nonce     int      // nonce  
height    int      // 현재 블록의 인덱스  
Data      []byte   //Copyright 등등..  
timestamp []byte   //블록 생성 시간  
sig       []byte   //서명  

Transaction Structure :

TxID      [32]byte  
TimeStamp []byte // 블럭 생성 시간  
Applier   []byte // 신청자  
Company   []byte // 경력회사  
Career    []byte // 경력기간  
payment   []byte // 결제수단  
Job       []byte // 직종, 업무  
Proof     []byte // 경력증명서 pdf  
wAddr     string // 지갑 주소  

Wallet Structure :

PrvKey  ecdsa.PrivateKey //개인키  
PubKey  []byte           //공개키  
Address string           //지갑 주소  
Alias   string           //별칭  

==========================================================
Front RDB Table Structure :

MEMBER

ID 			varchar(50)  
PW 			varchar(50)  
Link 		varchar(2000)  
Wallet 		varchar(100)  

NOTICE

Num			Integer
Cate 		Integer
TITLE 		varchar(50)  
Content 	varchar(50)  
RegDate 	date   

QNA

Num			Integer
TITLE 		varchar(200)  
Content 	varchar(500)  
Writer 		varchar(50)  
Reply 		varchar(1000)  
 

디렉토리 구조

코드가 너무 길어지는 관계로 패키지를 구조체 별로 분리하였다.

├── cabb
│   ├── user
│   	├── blockpkg
│   		├── blockStruct.go
│   		├── chain.go
│   		└── pow.go
│   	├── program
│   		└── main.go
│   	├── txpkg
│   		├── txs.go
│   		└── txStruct.go
│   	└── walletpkg
│   		└── walletStruct.go

Git

https://github.com/JINJAEHO/cabb

profile
Java, Spring, SpringMVC, JPA, MyBatis

0개의 댓글