EOS DApp開發入門(二): 智能合約探究

Previously

EOS DApp開發入門(一)中,經過docker image的方式架起了本地的eos區塊鏈,使Note chain DApp與本地區塊鏈進行交互,成功運行起來。(boiler plateios

clipboard.png

在看啓動eosio腳本輸出的時候,發現了這兩樣輸出:設置account和智能合約,以及安裝eosio.CDT(合約開發工具)。就去查了一下。git

eos的帳戶

EOS 中,賬戶(account)是存儲在區塊鏈上的受權集合,用於標識發送者 / 接受者。github

EOS 中的受權結構很是靈活,也很是複雜,簡單來講,就是一個受權,既能夠由一我的擁有,也能夠由一組我的擁有,具體取決於如何配置權限。docker

咱們甚至能夠說,任何人,想要在 EOS 上作一些事情,他必須先有一個帳戶,才能向區塊鏈發送或接收有效的交易。segmentfault

因此要使用eos區塊鏈,得先設置帳戶。框架

合約開發工具

EOSIO.CDT是WebAssembly(WASM)的工具鏈和一組工具,用於促進EOSIO平臺的合同編寫。除了做爲通用WebAssembly工具鏈以外,還可使用EOSIO特定的優化來支持構建EOSIO智能合約。這個新工具鏈是圍繞Clang 7構建的,這意味着EOSIO.CDT具備最新的LLVM優化和分析,但因爲WASM目標仍被認爲是實驗性的,所以某些優化不可用或不完整。工具

關於智能合約的細節,打算對照當前v1.4.2版的源碼來學習,一方面能夠確保信息是第一手的,不會出現參考舊版的解讀文章,致使以訛傳訛,更重要的是能夠藉此機會好好學習C++工程項目(源碼在此:https://github.com/EOSIO/eos)學習

合約的主要組成

clipboard.png

  1. eosio.bios: 合約用於管理鏈上的堆棧和非堆棧資源,經過確認用戶持有的 token 控制資源分配,包括帶寬、CPU 以及內存資源。
  2. eosio.msig: 多用戶簽名和用戶權限管理合約。
  3. eosio.sudo: 實現了建立EOS系統中root帳戶的功能,用於修改系統代碼與更新合約。
  4. eosio.system: 系統智能合約,能夠進行不少系統級別的操做,好比用戶投票、將用戶註冊成爲生產者。
  5. eosio.token: 代幣合約,只要加載這個合約,就能夠輕鬆的發行一個代幣。

今天先看eosio.system,按github裏的說明,eosio.system這個合約可讓用戶抵押Token(eos代幣)、設置和投票給區塊生產者(好比eos公鏈上的生產者就須要投票來獲取超級節點的資格,成功成爲21個活躍超級節點後,纔有資格生產新區塊)。區塊鏈

eosio.system

【跟着源碼學】EOS智能合約之eosio.system - part1
part2 - eosio.system整理解讀開發工具

參考

EOS源碼框架剖析

相關文章
相關標籤/搜索