Career Authentication By Blockchain
블록체인을 이용한 프리랜서 경력 인증 웹서비스
경력 인증 플랫폼 : 서비스 Layer1
회원
1.1 회원 가입
1.2 회원 암호 키페어 (공개키, 개인키) ——————————— A (create)
1.3 회원 전자지갑(wallet) ——————-—————————— B (create)
1.3.1 tx 발생 이력 (ref) ———————————————— C (ref)
경력 인증
2.1 경력 등록(tx 생성) —————————————————— D (create)
2.2 경력 조회(tx/block)
2.2.1 전체 리스트 조회(tx) ——————————————— E (ref)
2.2.2 상세 조회(tx/block) ———————————————- F (ref)
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