EOS区块链
2021-03-04 17:35:43 2 举报
AI智能生成
EOS区块链技术最全总结
作者其他创作
大纲/内容
EOS公有链
EOS是什么
EOS.IO 是 block.one 开发的一个平台软件,就像PC中的Windows系统,手机中的安卓和iOS系统,是区块链中的基础平台。目的是构建一个区块链底层的技术架构,类似于区块链中的操作系统,使更多的开发者能够基于EOS.IO平台,快速方便的构建分布式应用程序(DAPP)。
EOS主要特点
EOS通过并行链和DPOS的方式解决了延迟和数据吞吐量的难题,EOS是每秒可以上千级别的处理量,而比特币每秒7笔左右,以太坊是每秒30-40笔;
EOS是没有手续费的,普通受众群体更广泛。
EOSIO核心组件
nodeos
核心守护进程,运行在每个eosio节点上
cleos
一个与区块链进行交互并管理钱包的命令行界面。
keosd
密钥管理器守护程序,用于存储私钥和签署数字消息。
eosio.cdt
智能合约开发工具包是一套用于构建EOSIO智能合约的工具。
eosio.contracts
提供EOSIO区块链的一些基本功能的智能合约。
EOS中账户、钱包和密钥的关系
EOS帐号,钱包,密钥等基本概念及操作
智能合约
什么是智能合约
EOSIO智能合约是在区块链上注册并在EOSIO节点上执行的软件
智能合约的组成
.cpp文件
.cpp文件是包含合约功能的源文件,用来实现智能合约的功能和动作等
.hpp文件
.hpp文件是包含.cpp文件引用的变量、常量和函数的头文件。
.abi文件
abi文件是应用程序二进制接口文件,是一种基于JSON的描述,通过ABI描述合约,开发人员和用户可通过JSON无缝地与智能合约进行交互
.wasm文件
而wasm是一种字节码,wasm字节码既可以编译成机器码后执行,又可以使用解释器直接执行, 兼容性和性能兼有。
.wast文件
.wast文件是wasm的代码文本格式,.wasm是汇编代码二级制格式
智能合约的编译和部署
编译
eosio-cpp hello.cpp -o hello.wasm
编译完成后,会生成hello.wasm 文件
eosiocpp -o hello.wast hello.cpp
编译完成后,会生成两个新文件,hello.wast, hello.wasm
部署
部署前需为智能合约创建账户
cleos create account eosio hello EOS67REZUXohqxx2ZfBFx5z2fEdAmF2BngKsiuQsTKLsZqNYccg1S -p eosio@active
cleos set contract hello /home/tzj/contracts/hello -p hello@active
执行
cleos push action hello hi '["bob"]' -p bob@active
智能合约的操作
创建、发布和转账代币
创建(create)
cleos push action eosio.token create '[ "alice", "1000000000.0000 SYS"]' -p eosio.token@active
发布(issue)
cleos push action eosio.token issue '[ "alice", "100.0000 SYS", "memo" ]' -p alice@active
转账(transfer)
cleos push action eosio.token transfer '[ "alice", "bob", "25.0000 SYS", "m" ]' -p alice@active
数据持久化
在eos中Multi-Index为eosio的数据库提供了c++的接口
创建数据结构
配置多索引表
添加构造函数
Multi-Index使用emplace、erase、modify、get实现增删改查
添加内联action
添加操作(Action)至外部合约
创建和链接自定义权限
付款操作
EOSIO核心协议
共识协议(Consensus Protocol)
转账协议(Transactions Protocol)
网络-点对点协议(Network or Peer to Peer Protocol)
账户和权限(Accounts and Permissions)
EOS系统合约
eosio.bios
这个合约是EOS很多基本action的基础系统,所以要保证这个合约的有效执行。这个合约可以让你能够直接控制资源分配,并且有权限访问API。在公链上,这个合约将管理已募集和待募集token,以储备带宽给CPU、内存以及网络活动使用。
默认钱包default内部包含一个默认主密钥的账户eosio,默认的智能合约eosio.bios已经可以使用。
————————————————
版权声明:本文为CSDN博主「fishopark」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fishopark/article/details/105578771
默认钱包default内部包含一个默认主密钥的账户eosio,默认的智能合约eosio.bios已经可以使用。
————————————————
版权声明:本文为CSDN博主「fishopark」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fishopark/article/details/105578771
eosio.system
用户可以质押和赎回CPU、NET,还可以投票给BP节点或者设置投票代理;节点可以注册为产块节点,以便参与投票来获得挖矿奖励;用户可以购买和卖出内存,也可以参与EOS账号名竞拍;用户还可以操作REX资源的使用。
该合约直接部署到eosio账户。
该合约直接部署到eosio账户。
eosio.msig
msig的意思是multi-signature,多重签名的意思。这个合约是可以支持多方对同一笔交易进行异步签名,它是一个对用户友好的支持多方同意的异步进行提案、批复以及最终发布交易的合约。
eosio.token
eosio.token合约提供了代币的发行、分发和交易的功能。这是EOS的默认发行合约及合约账户。
eosio.wrap
特殊情况下可以让BP节点调用,可代替另一账户执行交易。
系统层概念
系统账户(System accounts)
RAM
CPU
NET
Stake
Vote
合约与前端
前端调用合约方法
前端通过eos.contract方法来调用合约方法,通过eos.getTableRows方法来查询调用结果
合约与前端交互的解决方案
子主题
fisco联盟链
公有链、私有链和联盟链到底有何区别?
什么是RAM,什么是EOS数据库,什么是multi_index
0 条评论
下一页