EOS入门必读

编译安装问题

    1.源码拉取的时候必须使用–recursive
git clone https://github.com/eosio/eos –recursive
  2.源码拉取不完整
        这是因为github网络慢,参考这篇博文【github访问慢和clone慢解决方案
  3.eosio_build.sh执行后很长时间没反应
    这是因为编译过程中会下载很多依赖库,其中LLVM这个库耗时最久,除了VPN没有什么太好的方法。有网友说使用国内brew源,但同时也有很多人说这个brew国内源也不太好。
  4.内存不够错误
Beginning build version: 1.2
    2018年 05月 18日 星期五 07:13:36 UTC
    User: itleaks
    git head id: 29c30f10650102ffb000bb1a287dc285d582275f
    Current branch: master
    ARCHITECTURE: Linux
    OS name: Ubuntu
    OS Version: 16.04
    CPU speed: 3095.998Mhz
    CPU cores: 1
    Physical Memory: 1993 Mgb
    Disk install: /dev/sda1
    Disk space total: 47G
    Disk space available: 31G
    Your system must have 7 or more Gigabytes of physical memory installed.
    Exiting now.
比如ubuntu平台就修改./scripts/eosio_build_ubuntu.sh文件,将下面的7000修改即可

 5.mac环境安装报错
  参考知乎文章
export LLVM_DIR=/usr/local/Cellar/llvm/4.0.1/lib/cmake
brew unlink gettext&& brew link –force gettext

数据目录

钱包数据目录

 
   删除文件即可删除对应钱包
~/eosio-wallet/xxx

节点链数据目录

 
ubuntu:
     ~/.local/share/eosio/
Mac:
    ~/Library/Application\ Support/eosio/
    删掉nodeos,删除这个目录,重启nodeos即可重置账号,智能合约等各种数据

eosiocpp智能合约编译工具找不到

这是因为你没有调用install安装工具

cd $EOS_SOURCE/build
sudo make install

超级节点,普通节点,主链,私有链

超级节点:DPOS协议的21+1个代表节点,目前初始的超级节点正在竞选中,理论上超级节点后续会动态变化,但是”虹吸效应”告诉我们强者愈强,弱则愈弱,估计短期变化可能性不大

普通节点:负责投票,获取区块信息,发送交易,提交应用

主链:  2018年6月上线

私有链: 本地搭建的链,自己玩EOS,应用开发测试环境

智能合约开发工具

1) vim, vscode编写c++智能合约代码,然后通过eosiocpp工具编译生成.wast, .abi文件然后部署,适合中小项目

2) 参考EOS_SOURCE_DIR/contracts/eosio.bios智能合约在EOS_SOURCE_DIR/contracts新增一个合约目录xxx,使用CMake编译,然后在EOS_SOURCE_DIR目录下执行./eosio_build.sh,然后在EOS_SOURCE_DIR/build/contracts/xx会生成.wast,.abi文件,然后部署。适合大项目

Programs & Tools

  • nodeos – server-side blockchain node component
  • cleos – command line interface to interact with the blockchain and to manage wallets
  • keosd – component that manages EOSIO wallets

cleos

启动本地单节点区块链
$ nodeos -e -p eosio –plugin eosio::chain_api_plugin –plugin eosio::history_api_plugin
plugin = eosio::chain_api_plugin// Enable Chain API
plugin = eosio::wallet_api_plugin// Enable Wallet API

 

启动时出现的异常处理
std::exception::what: database dirty flag set
命令添加
–replay-blockchain

 

创建默认钱包
$ cleos wallet create
$ cleos wallet create -n ${wallet_name}
passowrd:
default:PW5KXcKrwMXuzBoZgvGvcxEhLhF7awYvqGn4jHogGFqKjv1Mou2VA
wallet_forrest:PW5J2FRGLsBpW5AqsGLZwQtQczjk1ydtgnjt5odKdFrBs8gda4FyP
wallet_test:PW5KUt2rSfb97vQgbS5fmnDhy7d8VukEK1Q8HRBsZY5A2y7dSkWoy

 

查询钱包
$ cleos wallet list
Wallets:
[
  “wallet_forrest *”,
  “wallet_test *”
]

 

解锁默认钱包
$ cleos wallet unlock –password PW5KXcKrwMXuzBoZgvGvcxEhLhF7awYvqGn4jHogGFqKjv1Mou2VA
$ cleos wallet unlock -n wallet_forrest –password PW5J2FRGLsBpW5AqsGLZwQtQczjk1ydtgnjt5odKdFrBs8gda4FyP
$ cleos wallet unlock
password:

 

锁定默认钱包
$ cleos wallet lock
创建Key
$ cleos create key
查询钱包keys
$ cleos wallet keys
Private key: 5J1MyitfFcj3MwZfBBHgDafWkixE3U1YTJ7dyDzbED9kZ51X8eg
Public key: EOS7zwPu8PWDdJMqBDGx2j4vDJ1i8dmCTR3eEe6AaWbHec1Mwrmrf
密钥导入钱包
$ cleos wallet import 5J1MyitfFcj3MwZfBBHgDafWkixE3U1YTJ7dyDzbED9kZ51X8eg
创建账户
$ cleos create account eosio user EOS7zwPu8PWDdJMqBDGx2j4vDJ1i8dmCTR3eEe6AaWbHec1Mwrmrf EOS7zwPu8PWDdJMqBDGx2j4vDJ1i8dmCTR3eEe6AaWbHec1Mwrmrf
注:create account子命令需要两个公钥,一个用于OwnerKey,另一个用于ActiveKey

发表评论

电子邮件地址不会被公开。 必填项已用*标注