![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
一起读源码
狍子科技-贺汉景
这个作者很懒,什么都没留下…
展开
-
一起读源码-目录
boost 源码分析:skynet 源码分析:eos 源码分析:nginx 源码分析 :原创 2020-05-30 15:56:51 · 730 阅读 · 0 评论 -
一起来读源码2-eos fc
摘要详情compress/smaz.hppcompress/zlib.hpp定义全局函数定义注释std::string smaz_compress( const std::string& in )-std::string smaz_decompress( const::string& compressed )-原创 2020-08-24 10:54:07 · 192 阅读 · 0 评论 -
一起来读源码235-Ipfs 第三方库:go-filecoin
摘要ipfs的file_coin项目详情file_coin定义全局变量名称类型注释定义类ActorView成员类型注释AddressstringCodego-cid.CidNonceuint64Balancetypes.AttoFILHeadgo-cid.Cid原创 2020-08-17 13:40:47 · 177 阅读 · 0 评论 -
一起来读源码70-eosio.contracts eosio.token
摘要eos代币机制详情原创 2020-08-15 11:23:15 · 174 阅读 · 0 评论 -
一起来读源码69-eosio.contracts eosio.system
md摘要eos的投票以及资产购买,抵押,竞拍,出租,等等;购买机制使用的bancor算法; 执行action需要ram,cpu和net,cpu和net需要抵押获得,ram需要购买;用来抵押的物品为eos token;ram会消耗;cpu和net用完会退押金;...原创 2020-08-12 10:20:58 · 1167 阅读 · 0 评论 -
一起来读源码237-Ipfs 第三方库:go-multihash
摘要详情io.gomultihash.goset.gosum.go定义全局变量错误表函数注释ErrUnknownCode未知错误ErrTooShort“multihash too short. must be >= 2 bytes”定义全局函数函数注释NewReader(r io.Reader) Reader新建mh阅读器NewWriter(w io.Writer) Writer新建mh写入器定义接口Reade原创 2020-08-08 18:45:37 · 295 阅读 · 0 评论 -
一起来读源码230-Ipfs 第三方库:go-cid
摘要一个自描述地址项目详情go-cid定义全局变量名称类型注释Raw“raw”0x55, 滚动DagProtobuf“protobuf”0x70, dag协议DagCBOR“cbor”0x71Libp2pKey“libp2p-key”0x72GitRaw“git-raw”0x78EthBlock“eth-block”0x90, 以太坊块EthBlockList“eth-block-list”0x9, 以太坊块列表原创 2020-08-08 14:58:47 · 210 阅读 · 0 评论 -
一起来读源码234-Ipfs 第三方库:go-merkledag
摘要merkeldag,用来存文件路径;做路径遍历操作;详情go-merkledag定义类型名称类型注释Orderint序列类别Funcfunc(current State) error遍历节点回调函数GetLinksfunc(context.Context, cid.Cid) ([]*ipld.Link, error)获得cid的所有链接WaltOptionfunc(*walkOptions)设置遍历选项ErrFuncfunc(er原创 2020-08-08 14:01:58 · 490 阅读 · 0 评论 -
一起来读源码236-Ipfs 第三方库:go-libp2p-core
摘要ipfs的p2p go语言实现详情alias.goconnmgr/decay.goconnmgr/gater.goconnmgr/manager.goconnmgr/null.goconnmgr/presets.gocontrol/disconnect.gocrypto/ecdsa.gocrypto/ed25519.gocrypto/key.gocrypto/key_not_openssl.gocrypto/key_openssl.gocrypto/openssl_comm原创 2020-08-08 11:56:41 · 959 阅读 · 0 评论 -
一起来读源码220-Ipfs p2p
摘要ipfs的网络库详情p2p/linstener.gop2p/local.gop2p/p2p.gop2p/remote.gop2p/stream.go原创 2020-08-01 19:47:19 · 142 阅读 · 0 评论 -
一起来读源码203-Ipfs cmd
摘要ipfs核心部件详情bootstrap/bootsrap.go定义全局变量var ErrNotEnoughBootstrapPeers = errors.New("not enough bootstrap peers to bootstrap") //bootstrap节点不够//默认节点配置var DefaultBootstrapConfig = BootstrapConfig{ MinPeerThreshold: 4, Period: 30.原创 2020-07-30 18:23:19 · 226 阅读 · 0 评论 -
一起来读源码619-skynet 回调
摘要skynet的回调详情skynet_handle.hskynet_handle.c定义全局变量#define DEFAULT_SLOT_SIZE 4 //默认槽尺寸#define MAX_SLOT_SIZE 0x40000000 //最大槽尺寸定义全局函数原创 2020-07-27 14:09:47 · 123 阅读 · 0 评论 -
一起来读源码609-skynet 监视器
摘要skynet监视器详情skynet_monitor.hskynet_monitor.c定义全局函数//新建监视器struct skynet_monitor * skynet_monitor_new();//删除监视器void skynet_monitor_delete(struct skynet_monitor *);//触发监视器void skynet_monitor_trigger(struct skynet_monitor *, uint32_t source,原创 2020-07-25 23:29:00 · 212 阅读 · 0 评论 -
一起来读源码608-skynet 服务
摘要skynet服务详情skynet_server.hskynet_server.c原创 2020-07-25 14:12:55 · 95 阅读 · 0 评论 -
一起来读源码607-skynet 消息队列
摘要消息队列详情skynet_mq.hskynet_mq.c定义全局变量定义全局函数定义类定义函数原创 2020-07-22 21:23:17 · 130 阅读 · 0 评论 -
一起来读源码606-skynet 模块
摘要ksynet模块详情skynet_module.hskynet_module.c原创 2020-07-22 13:48:46 · 193 阅读 · 0 评论 -
一起来读源码605-skynet 计时器
摘要计时器详情skynet_timer.hskynet_timer.c定义全局变量#define TIME_NEAR_SHIFT 8#define TIME_NEAR (1 << TIME_NEAR_SHIFT) //256#define TIME_LEVEL_SHIFT 6#define TIME_LEVEL (1 << TIME_LEVEL_SHIFT) //64#define TIME_NEAR_MASK (TIME_NEAR-1) .原创 2020-07-22 13:45:10 · 133 阅读 · 0 评论 -
一起来读源码801-Jemalloc sz
摘要内存尺寸定义详情sz.c原创 2020-07-22 12:29:58 · 84 阅读 · 0 评论 -
一起来读源码800-Jemalloc 前言
计划: 预计花2天时间看下jemalloc的源码,并做好笔记;完工时间: 2020年7月23日项目地址:jemalloc;原创 2020-07-22 11:55:50 · 190 阅读 · 1 评论 -
一起来读源码68-eosio.contracts eosio.msig
摘要 用于多签,用户管理详情eosio.msig.hppeosio.msig.cpp定义action//提名void propose( ignore<name> proposer, ignore<name> proposal_name, ignore<std::vector<permission_level>> requested, ignore<transaction> trx )//批准voi...原创 2020-07-15 12:49:51 · 137 阅读 · 0 评论 -
一起来读源码67-eosio.contracts eosio.bios
摘要详情定义action//新建账号void newaccount( name creator, name name, ignore<authorith> owner, ignore<authority> active )//更新权限void updateauth( ignore<name> account, ignore<name> permission, ignore<name> parent, ignore<.原创 2020-07-14 18:30:17 · 2462 阅读 · 0 评论 -
一起来读源码42-eosio.cdt producer_schedule
摘要生产者调度详情producer_schedule.hpp定义类struct producer_key { //生产者keyname producer_name; //生产者名字public_key block_signing_key; //块签名key//比较名字friend constexpr bool operator < ( const producer_key& a, const producer_key& b ) {re..原创 2020-07-09 09:37:35 · 156 阅读 · 0 评论 -
一起来读源码41-eosio.cdt privileged
摘要:负责特权部分,说实话没看懂详情:privileged.hpp定义导出c函数//bool is_privileged( uint64_t account );void get_resource_limits( uint64_t account, int64_t* ram_bytes, int64_t* net_weight, int64_t* cpu_weight );void set_resource_limits( uint64_t account, int64.原创 2020-07-09 09:35:56 · 222 阅读 · 0 评论 -
一起来读源码38-eosio.cdt dispatcher
摘要:获得合约的名字,部署者等;详情:dispatcher.hpp定义函数:bool dispatch( uint64_t code, uint64_t act ) //分配actionbool execute_action( name self, name code, void (T::*func)(Args...) ) //执行action原创 2020-07-07 18:38:04 · 130 阅读 · 0 评论 -
一起来读源码37-eosio.cdt contract
摘要:详情:contract.hpp知识点: deprecated:主要用于标记过时的函数、接口、类等;定义类:class contract { name _self; //合约部署者名字 name _first_receiver; //合约部署者 datastream<const char*> _ds; //数据流处理器 contract( name self, name first_receiver, datastre...原创 2020-07-07 18:18:08 · 148 阅读 · 0 评论 -
一起来读源码40-eosio.cdt permission
摘要:对一些权限操作的封装详情:permission.hpp导出c函数:// 检查传输权限,具体看eos的wasm_interface.cppint32_t check_transaction_authorization(const char*, uint32_t, const char*, uint32_t, const char*, uint32_t);//检查检查权限,具体看eos的wasm_interface.cppint32_t check_permission_au原创 2020-07-07 17:13:44 · 127 阅读 · 0 评论 -
一起来读源码50-eosio.cdt datastream
摘要:eos的二进制流工具类,负责数据缓存,打/解包;详情:datastream.hpp重载运算符:<< 输入>> 输出定义类函数template<typename T>std::vector<char> pack( const T& value ) //打包template<typename T>T unpack( const char* buffer, size_t len ) //解包te原创 2020-07-07 16:39:53 · 184 阅读 · 0 评论 -
一起来读源码36-eosio.cdt action
摘要:详情:action.hpp datastream.hpp知识点:action数据拆包: 默认包缓冲区尺寸:512byte,如果超过就malloc;具体的拆包代码在datastream.hpp里;定义导出c函数:uint32_t read_action_data( void* msg, uint32_t len );uint32_t action_data_size();void require_recipient( uint64_t name );v...原创 2020-07-07 15:33:29 · 155 阅读 · 0 评论 -
一起来读源码53-eosio.cdt name
摘要:eos的名字系统,包括名字和uint64_t的转换,名字合法性判断详情:name.hpp知识点:constexpr:函数的返回值类型及所有形参的类型都是字面值类型;decltype:选择并返回操作数的数据类型;与auto配合使用;命名规则:1.长度必须大于0且小于14;2.每个字符从[.], [1~5], [a~z]中间选;3.如果长度等于13,则最后一个字符不能是".";...原创 2020-07-07 12:11:34 · 139 阅读 · 0 评论 -
一起来读源码232-Ipfs 第三方库:go-mfs
摘要:详情:go-mfs知识点:定义全局函数:func NewDirectory(ctx context.Context, name string, node ipld.Node, parent parent, dserv ipld.DAGService ) (*Directory, error) //新建目录(上下文,目录名,节点,父类, dagservice)(目录,err)定义接口:type FSNode interface { //节点 G...原创 2020-07-02 15:38:17 · 309 阅读 · 0 评论 -
一起来读源码231-Ipfs 第三方库:go-log
摘要:一个日志项目支持以下级别的日志:Debug,Error,Fatal,Info,Panic,Warn详情:go-log原创 2020-07-02 14:44:39 · 159 阅读 · 0 评论 -
一起来读源码216-Ipfs fuse
摘要:日志请求入口的维护和定时清除详情:ipns/common.go ipns/ipns_unix.go ipns/link_unix.go ipns/mount_unix.go mount/fuse.go mount/mount.go node/mount_darwin.go node/mount_nofuse.go node/mount_unix.go node/mount_windows.go readonly/doc.go readonly/mount_unix.g原创 2020-06-30 16:02:21 · 166 阅读 · 0 评论 -
一起来读源码215-Ipfs coverage
摘要:启动ipfs-test-cover命令进程,创建临时恢复文件和临时返回文件,创建信号管道并接受信号;详情:main.go知识点:func Notify(sigchan<- os.Signal, arg...os.Signal) Notify函数让signal包将输入信号转发到sig。如果没有列出要传递的信号, 会将所有输入信号传递到sig;否则只传递列出的输入信号。signal包不会为了向sig发送信息而阻塞( 就是说如果发送时...原创 2020-06-30 15:52:08 · 136 阅读 · 0 评论 -
一起来读源码204-Ipfs commands
摘要:日志请求入口的维护和定时清除详情:context.go reqlog.go定义结构体://上下文type Context struct{ ConfigRoot string ReqLog *ReqLog //请求日志 Plugins *loader.PluginLoader ...原创 2020-06-30 15:29:19 · 137 阅读 · 0 评论 -
一起来读源码203-Ipfs cmd
摘要:ipfs/util/signal_wasm.go ipfs/util/signal.go ipfs/util/ui_windows.go ipfs/util/ui.go ipfs/util/ulimit_freebsd.go ipfs/util/ulimit_unix.go ipfs/util/ulimit_windows.go ipfs/util/ulimit.go ipfs/deamon_linux.go ipfs/daemon_other.go ipfs/deamon.g原创 2020-06-30 14:37:24 · 110 阅读 · 0 评论 -
一起来读源码202-Ipfs blocks
摘要:详情:remove.go结构体://已经被删除的块 omitempty:表示这条信息如果没有提供,在序列化成 json 的时候就不要包含其默认值type RemovedBlock struct { Hash string `json:",omitempty"` //hash Error string `json:",omitempty"` //错误}// 删除块选项type RmBlocksOpts struct { Prefix stri...原创 2020-06-30 11:43:21 · 166 阅读 · 0 评论 -
一起来读源码201-Ipfs assets
摘要:插件功能:1.负责端点的连接与断开,状态管理;2.请求块,验证块,处理块;详情:assets.go bindata.go bindata_dep.go bindata_version_hash.go全局函数: SeedInitDocs(nd *core.IpfsNode) (cid.Cid, error) //初始化文档全局变量: BindataVersionHash = "c1aa0601ac3eac2c50b296cf618a6747eeb...原创 2020-06-30 11:02:42 · 115 阅读 · 0 评论 -
一起来读源码200-Ipfs 前言
计划:预计花3天时间看下ipfs的源码,并做好笔记;完工时间:2020年7月2日项目详解: go-ipfs上面项目都是fork自:ipfs官方github,添加了自己的注释原创 2020-06-29 17:18:32 · 164 阅读 · 0 评论 -
一起来读源码35-eos history_tools
计划:预计花3天时间看下eos的history_tools的源码,并做好笔记;完工时间:2020年6月16日项目详解:上面3个项目都是fork自:eosio官方history-tools的github,添加了自己的注释原创 2020-06-13 16:05:33 · 160 阅读 · 0 评论 -
一起来读源码12-eos cleos
详情:main.cppCLI11.hppconfig.hpp.ineosc.pothelp_text.cpp.inhelp_text.hpphttpc.hpphttpc.cpplocalize.hppcleos客户端:原创 2020-06-10 16:45:21 · 130 阅读 · 0 评论