eos原始账户创建流程02
2018-06-28 15:47:03 0 举报
eos原始账户创建流程02
作者其他创作
大纲/内容
本图主要内容:创建账号这个“action”的“行为”
authorization_manger.cppget_permission(declared_auth).satisfies( min_permission...验证最小权限
dispatch分发
require_authorization(create.creator)传入user
vlaue_type 为 account_objecttype_id为枚举值account_object_type
apply_context::exec_one
_index_map[index_type::value_type::type_id]-get()
app().get_method().register
db之创建原始账号
elliptic.hpp:signature_shim::recover
eosio_contract.cpp:apply_eosio_newaccount(apply_context& context)
secp256k1_ecdsa_recover_compact
new_account = db.create
运行合约:controllor.cpp:trx_context.exec();
main.cpp:fc::variant push_transaction
cleos
签名signature数据结构里面有个存放签名的地方,storage_type _storage;它是static_variant类型的。templateclass static_variant{ alignas(Types...) char storage[impl::type_info::size]; .......}这个数组用来存放Types中某一类型的数据。就是把这个对象按字节全部存放在storage中。
nodeos
const auto& new_account = db.create([&](auto& a) { a.name = create.name; a.creation_date = context.control.pending_block_time(); });
chain_plugin.cpp:read_write::push_transaction
produce_plugin.cpp:on_incoming_transaction_async
controller.cpp:push_transaction
produce_plugin.cpp:chain.push_transaction
app().get_method()....
http
从签名中提取公钥,然后checker验证签名
收藏
收藏
0 条评论
下一页