区块链教程Fabric1.0源代码分析Fabric1.0.4go代码量统计-兄弟连区块链

简介:

  兄弟连区块链教程Fabric1.0源代码分析Fabric1.0.4go代码量统计,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。

Fabric 1.0源代码笔记 之Fabric 1.0.4 go代码量统计

1、概述

除test、vendor、mocks、example、protos外,go核心代码文件341个,核心代码行63433行。

find ./ |grep -vE 'test|vendor|mocks|example|protos' | grep '\.go$' | wc -l
341
wc -l `find ./ |grep -vE 'test|vendor|mocks|example|protos' | grep '\.go$'`
63433 total

2、代码分布

目录 代码量 代码量占比
bccsp 5605 8.84%
common 12998 20.49%
core 22613 35.65%
events 1069 1.69%
gossip 9389 14.80%
msp 2425 3.82%
orderer 5199 8.20%
peer 4135 6.52%

3、详情

     65 ./bccsp/aesopts.go
    144 ./bccsp/bccsp.go
     49 ./bccsp/ecdsaopts.go
     93 ./bccsp/factory/factory.go
     87 ./bccsp/factory/nopkcs11.go
     35 ./bccsp/factory/opts.go
    106 ./bccsp/factory/pkcs11.go
     66 ./bccsp/factory/pkcs11factory.go
     82 ./bccsp/factory/swfactory.go
     70 ./bccsp/hashopts.go
     34 ./bccsp/keystore.go
    326 ./bccsp/opts.go
    108 ./bccsp/pkcs11/conf.go
    120 ./bccsp/pkcs11/ecdsa.go
     97 ./bccsp/pkcs11/ecdsakey.go
    535 ./bccsp/pkcs11/impl.go
    617 ./bccsp/pkcs11/pkcs11.go
     81 ./bccsp/rsaopts.go
     89 ./bccsp/signer/signer.go
    161 ./bccsp/sw/aes.go
     65 ./bccsp/sw/aeskey.go
     81 ./bccsp/sw/conf.go
     49 ./bccsp/sw/dummyks.go
    171 ./bccsp/sw/ecdsa.go
    120 ./bccsp/sw/ecdsakey.go
    431 ./bccsp/sw/fileks.go
     37 ./bccsp/sw/hash.go
    393 ./bccsp/sw/impl.go
     94 ./bccsp/sw/internals.go
    157 ./bccsp/sw/keyderiv.go
     67 ./bccsp/sw/keygen.go
    162 ./bccsp/sw/keyimport.go
     72 ./bccsp/sw/rsa.go
    136 ./bccsp/sw/rsakey.go
     26 ./bccsp/utils/errs.go
     69 ./bccsp/utils/io.go
    459 ./bccsp/utils/keys.go
     25 ./bccsp/utils/slice.go
     26 ./bccsp/utils/x509.go
    119 ./common/cauthdsl/cauthdsl.go
    174 ./common/cauthdsl/cauthdsl_builder.go
     68 ./common/cauthdsl/policy.go
     34 ./common/cauthdsl/policy_util.go
    279 ./common/cauthdsl/policyparser.go
    115 ./common/config/api.go
     96 ./common/config/application.go
     38 ./common/config/application_util.go
     94 ./common/config/applicationorg.go
    241 ./common/config/channel.go
     74 ./common/config/channel_util.go
    128 ./common/config/consortium.go
     99 ./common/config/consortiums.go
     44 ./common/config/consortiums_util.go
    150 ./common/config/msp/config.go
    108 ./common/config/msp/config_util.go
    247 ./common/config/orderer.go
     57 ./common/config/orderer_util.go
    129 ./common/config/organization.go
    152 ./common/config/proposer.go
     93 ./common/config/root.go
    105 ./common/config/standardvalues.go
    114 ./common/configtx/api/api.go
    186 ./common/configtx/compare.go
    282 ./common/configtx/config.go
    168 ./common/configtx/configmap.go
    155 ./common/configtx/initializer.go
    305 ./common/configtx/manager.go
    291 ./common/configtx/template.go
    412 ./common/configtx/tool/configtxgen/main.go
     38 ./common/configtx/tool/configtxgen/metadata/metadata.go
    268 ./common/configtx/tool/localconfig/config.go
    276 ./common/configtx/tool/provisional/provisional.go
    208 ./common/configtx/update.go
     99 ./common/configtx/util.go
     42 ./common/crypto/random.go
     28 ./common/crypto/signer.go
    104 ./common/errors/codes.go
    204 ./common/errors/errors.go
     61 ./common/flogging/grpclogger.go
    233 ./common/flogging/logging.go
     75 ./common/genesis/genesis.go
     75 ./common/ledger/blkstorage/blockstorage.go
    218 ./common/ledger/blkstorage/fsblkstorage/block_serialization.go
    209 ./common/ledger/blkstorage/fsblkstorage/block_stream.go
    117 ./common/ledger/blkstorage/fsblkstorage/blockfile_helper.go
    696 ./common/ledger/blkstorage/fsblkstorage/blockfile_mgr.go
     94 ./common/ledger/blkstorage/fsblkstorage/blockfile_rw.go
    381 ./common/ledger/blkstorage/fsblkstorage/blockindex.go
    101 ./common/ledger/blkstorage/fsblkstorage/blocks_itr.go
     54 ./common/ledger/blkstorage/fsblkstorage/config.go
     93 ./common/ledger/blkstorage/fsblkstorage/fs_blockstore.go
     65 ./common/ledger/blkstorage/fsblkstorage/fs_blockstore_provider.go
     53 ./common/ledger/ledger_interface.go
     99 ./common/ledger/util/ioutil.go
    165 ./common/ledger/util/leveldbhelper/leveldb_helper.go
    152 ./common/ledger/util/leveldbhelper/leveldb_provider.go
     56 ./common/ledger/util/protobuf_util.go
     62 ./common/ledger/util/util.go
     74 ./common/localmsp/signer.go
     24 ./common/metadata/metadata.go
     83 ./common/policies/implicitmeta.go
     69 ./common/policies/implicitmeta_util.go
    376 ./common/policies/policy.go
     66 ./common/tools/configtxlator/main.go
     32 ./common/tools/configtxlator/metadata/metadata.go
    125 ./common/tools/configtxlator/rest/configtxlator_handlers.go
    109 ./common/tools/configtxlator/rest/protolator_handlers.go
     40 ./common/tools/configtxlator/rest/router.go
    147 ./common/tools/configtxlator/sanitycheck/sanitycheck.go
    234 ./common/tools/configtxlator/update/update.go
    175 ./common/tools/cryptogen/ca/generator.go
     77 ./common/tools/cryptogen/csp/csp.go
    568 ./common/tools/cryptogen/main.go
     32 ./common/tools/cryptogen/metadata/metadata.go
    224 ./common/tools/cryptogen/msp/generator.go
    157 ./common/tools/protolator/api.go
    149 ./common/tools/protolator/dynamic.go
    445 ./common/tools/protolator/json.go
    111 ./common/tools/protolator/nested.go
    152 ./common/tools/protolator/statically_opaque.go
    124 ./common/tools/protolator/variably_opaque.go
    195 ./common/util/utils.go
    327 ./common/viperutil/config_util.go
     73 ./core/admin.go
    122 ./core/chaincode/ccproviderimpl.go
    759 ./core/chaincode/chaincode_support.go
     91 ./core/chaincode/chaincodeexec.go
    106 ./core/chaincode/exectransaction.go
   1459 ./core/chaincode/handler.go
     91 ./core/chaincode/platforms/car/platform.go
     89 ./core/chaincode/platforms/golang/env.go
     84 ./core/chaincode/platforms/golang/list.go
    149 ./core/chaincode/platforms/golang/package.go
    462 ./core/chaincode/platforms/golang/platform.go
     89 ./core/chaincode/platforms/java/hash.go
     48 ./core/chaincode/platforms/java/package.go
    148 ./core/chaincode/platforms/java/platform.go
    227 ./core/chaincode/platforms/platforms.go
    247 ./core/chaincode/platforms/util/utils.go
    882 ./core/chaincode/shim/chaincode.go
    807 ./core/chaincode/shim/handler.go
     45 ./core/chaincode/shim/inprocstream.go
    235 ./core/chaincode/shim/interfaces.go
     46 ./core/chaincode/shim/response.go
    127 ./core/comm/config.go
    215 ./core/comm/connection.go
     80 ./core/comm/creds.go
    101 ./core/comm/producer.go
    364 ./core/comm/server.go
     41 ./core/committer/committer.go
    130 ./core/committer/committer_impl.go
    673 ./core/committer/txvalidator/validator.go
    245 ./core/common/ccpackage/ccpackage.go
     70 ./core/common/ccprovider/ccinfocache.go
    466 ./core/common/ccprovider/ccprovider.go
    282 ./core/common/ccprovider/cdspackage.go
    346 ./core/common/ccprovider/sigcdspackage.go
     79 ./core/common/sysccprovider/sysccprovider.go
    435 ./core/common/validation/msgvalidation.go
    191 ./core/config/config.go
     37 ./core/container/api/core.go
     76 ./core/container/ccintf/ccintf.go
    266 ./core/container/controller.go
    473 ./core/container/dockercontroller/dockercontroller.go
    252 ./core/container/inproccontroller/inproccontroller.go
     41 ./core/container/inproccontroller/inprocstream.go
     72 ./core/container/util/dockerutil.go
    171 ./core/container/util/writer.go
    101 ./core/container/vm.go
    230 ./core/deliverservice/blocksprovider/blocksprovider.go
    246 ./core/deliverservice/client.go
    231 ./core/deliverservice/deliveryclient.go
     88 ./core/deliverservice/requester.go
    537 ./core/endorser/endorser.go
     72 ./core/fsm.go
     60 ./core/ledger/kvledger/history/historydb/histmgr_helper.go
     41 ./core/ledger/kvledger/history/historydb/historydb.go
    217 ./core/ledger/kvledger/history/historydb/historyleveldb/historyleveldb.go
    155 ./core/ledger/kvledger/history/historydb/historyleveldb/historyleveldb_query_executer.go
    247 ./core/ledger/kvledger/kv_ledger.go
    341 ./core/ledger/kvledger/kv_ledger_provider.go
     33 ./core/ledger/kvledger/recovery.go
    268 ./core/ledger/kvledger/txmgmt/rwsetutil/query_results_helper.go
    123 ./core/ledger/kvledger/txmgmt/rwsetutil/rwset_builder.go
    103 ./core/ledger/kvledger/txmgmt/rwsetutil/rwset_proto_util.go
    264 ./core/ledger/kvledger/txmgmt/statedb/statecouchdb/query_wrapper.go
    492 ./core/ledger/kvledger/txmgmt/statedb/statecouchdb/statecouchdb.go
    229 ./core/ledger/kvledger/txmgmt/statedb/statedb.go
    206 ./core/ledger/kvledger/txmgmt/statedb/stateleveldb/stateleveldb.go
     35 ./core/ledger/kvledger/txmgmt/statedb/util.go
    244 ./core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/helper.go
     64 ./core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/lockbased_query_executer.go
     83 ./core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/lockbased_tx_simulator.go
    133 ./core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/lockbased_txmgr.go
     36 ./core/ledger/kvledger/txmgmt/txmgr/txmgr.go
    174 ./core/ledger/kvledger/txmgmt/validator/statebasedval/combined_iterator.go
    157 ./core/ledger/kvledger/txmgmt/validator/statebasedval/range_query_validator.go
    252 ./core/ledger/kvledger/txmgmt/validator/statebasedval/state_based_validator.go
     27 ./core/ledger/kvledger/txmgmt/validator/validator.go
     75 ./core/ledger/kvledger/txmgmt/version/version.go
    127 ./core/ledger/ledger_interface.go
     93 ./core/ledger/ledgerconfig/ledger_config.go
    160 ./core/ledger/ledgermgmt/ledger_mgmt.go
     46 ./core/ledger/util/couchdb/config.go
   1426 ./core/ledger/util/couchdb/couchdb.go
    169 ./core/ledger/util/couchdb/couchdbutil.go
     55 ./core/ledger/util/txvalidationflags.go
     34 ./core/ledger/util/util.go
    150 ./core/peer/config.go
    562 ./core/peer/peer.go
    210 ./core/policy/policy.go
     43 ./core/policyprovider/provider.go
    235 ./core/scc/cscc/configure.go
    179 ./core/scc/escc/endorser_onevalidsignature.go
    144 ./core/scc/importsysccs.go
    905 ./core/scc/lscc/lscc.go
    218 ./core/scc/qscc/query.go
     91 ./core/scc/samplesyscc/samplesyscc.go
     73 ./core/scc/sccproviderimpl.go
    178 ./core/scc/sysccapi.go
    459 ./core/scc/vscc/validator_onevalidsignature.go
     29 ./events/consumer/adapter.go
    256 ./events/consumer/consumer.go
    123 ./events/producer/eventhelper.go
    345 ./events/producer/events.go
    188 ./events/producer/handler.go
     72 ./events/producer/producer.go
     56 ./events/producer/register_internal_events.go
     71 ./gossip/api/channel.go
     71 ./gossip/api/crypto.go
     68 ./gossip/comm/comm.go
    642 ./gossip/comm/comm_impl.go
    381 ./gossip/comm/conn.go
    122 ./gossip/comm/crypto.go
     97 ./gossip/comm/demux.go
    195 ./gossip/comm/mock/mock_comm.go
     58 ./gossip/comm/msg.go
     64 ./gossip/common/common.go
    140 ./gossip/discovery/discovery.go
   1044 ./gossip/discovery/discovery_impl.go
    171 ./gossip/election/adapter.go
    487 ./gossip/election/election.go
     77 ./gossip/filter/filter.go
    344 ./gossip/gossip/algo/pull.go
    148 ./gossip/gossip/batcher.go
    156 ./gossip/gossip/certstore.go
    733 ./gossip/gossip/channel/channel.go
    168 ./gossip/gossip/chanstate.go
     97 ./gossip/gossip/gossip.go
   1257 ./gossip/gossip/gossip_impl.go
    279 ./gossip/gossip/msgstore/msgs.go
    378 ./gossip/gossip/pull/pullstore.go
    214 ./gossip/identity/identity.go
     94 ./gossip/integration/integration.go
    120 ./gossip/service/eventer.go
    322 ./gossip/service/gossip_service.go
     72 ./gossip/state/metastate.go
    144 ./gossip/state/payloads_buffer.go
    689 ./gossip/state/state.go
     69 ./gossip/util/logging.go
    202 ./gossip/util/misc.go
     82 ./gossip/util/msgs.go
    133 ./gossip/util/pubsub.go
    146 ./msp/cert.go
    278 ./msp/configbuilder.go
    218 ./msp/identities.go
     69 ./msp/mgmt/deserializer.go
    172 ./msp/mgmt/mgmt.go
     73 ./msp/mgmt/principal.go
    190 ./msp/msp.go
   1172 ./msp/mspimpl.go
    107 ./msp/mspmgrimpl.go
    165 ./orderer/common/blockcutter/blockcutter.go
     28 ./orderer/common/bootstrap/bootstrap.go
     53 ./orderer/common/bootstrap/file/bootstrap.go
    162 ./orderer/common/broadcast/broadcast.go
     90 ./orderer/common/configtxfilter/filter.go
    223 ./orderer/common/deliver/deliver.go
    107 ./orderer/common/filter/filter.go
     75 ./orderer/common/sigfilter/sigfilter.go
     53 ./orderer/common/sizefilter/sizefilter.go
    150 ./orderer/configupdate/configupdate.go
    503 ./orderer/kafka/chain.go
     58 ./orderer/kafka/channel.go
     78 ./orderer/kafka/config.go
     76 ./orderer/kafka/consenter.go
     32 ./orderer/kafka/partitioner.go
     86 ./orderer/kafka/retry.go
     78 ./orderer/ledger/file/factory.go
    111 ./orderer/ledger/file/impl.go
    160 ./orderer/ledger/json/factory.go
    177 ./orderer/ledger/json/impl.go
     65 ./orderer/ledger/ledger.go
     97 ./orderer/ledger/ram/factory.go
    171 ./orderer/ledger/ram/impl.go
    105 ./orderer/ledger/util.go
    365 ./orderer/localconfig/config.go
    221 ./orderer/main.go
     35 ./orderer/metadata/metadata.go
    296 ./orderer/multichain/chainsupport.go
    319 ./orderer/multichain/manager.go
    189 ./orderer/multichain/systemchain.go
    126 ./orderer/sample_clients/broadcast_config/client.go
     31 ./orderer/sample_clients/broadcast_config/newchain.go
    105 ./orderer/sample_clients/broadcast_timestamp/client.go
    144 ./orderer/sample_clients/deliver_stdout/client.go
    166 ./orderer/sample_clients/single_tx_client/single_tx_client.go
     94 ./orderer/server.go
    120 ./orderer/solo/consensus.go
     85 ./orderer/util.go
    130 ./peer/chaincode/chaincode.go
    348 ./peer/chaincode/common.go
    210 ./peer/chaincode/install.go
    129 ./peer/chaincode/instantiate.go
     59 ./peer/chaincode/invoke.go
    193 ./peer/chaincode/package.go
     64 ./peer/chaincode/query.go
     77 ./peer/chaincode/signpackage.go
    132 ./peer/chaincode/upgrade.go
    188 ./peer/channel/channel.go
    214 ./peer/channel/create.go
    152 ./peer/channel/deliverclient.go
    110 ./peer/channel/fetchconfig.go
    144 ./peer/channel/join.go
    112 ./peer/channel/list.go
     90 ./peer/channel/update.go
     73 ./peer/clilogging/common.go
     55 ./peer/clilogging/getlevel.go
     48 ./peer/clilogging/logging.go
     55 ./peer/clilogging/revertlevels.go
     55 ./peer/clilogging/setlevel.go
    230 ./peer/common/common.go
     96 ./peer/common/mockclient.go
    103 ./peer/common/ordererclient.go
    319 ./peer/gossip/mcs.go
     88 ./peer/gossip/sa.go
    122 ./peer/main.go
     46 ./peer/node/node.go
    382 ./peer/node/start.go
     60 ./peer/node/status.go
     51 ./peer/version/version.go
  63433 total

感谢关注兄弟连区块链教程分享!

相关文章
|
2月前
|
存储 供应链 监控
区块链技术在供应链管理中的应用与前景分析
随着信息化时代的到来,供应链管理面临着越来越多的挑战和机遇。本文主要探讨了区块链技术在供应链管理中的应用,以及未来的发展前景。通过对区块链技术的特点和优势进行分析,结合实际案例和趋势展望,展示了区块链技术在提升供应链透明度、效率和安全性方面的潜力,以及未来发展的可能方向。
|
4天前
|
存储 安全 区块链
元宇宙与区块链技术的关系可以从多个角度进行阐述。以下是对这两者之间关系的详细分析
**元宇宙:虚拟世界融合现实元素,强调交互与沉浸;区块链:去中心化、安全的分布式账本。两者结合,区块链确保元宇宙中虚拟资产安全、支付高效、身份验证私密、治理透明,支撑其经济体系与用户信任,驱动未来发展。**
|
2月前
|
存储 供应链 安全
基于区块链技术的智能合约安全性分析
【5月更文挑战第31天】本文深入探讨了区块链技术中智能合约的安全性问题,通过分析现有智能合约的安全漏洞和攻击手段,提出了一系列增强智能合约安全性的策略。文章首先介绍了区块链和智能合约的基本概念,随后详细讨论了智能合约面临的安全挑战,包括代码漏洞、重入攻击等问题,并对比分析了不同平台下智能合约的安全性差异。最后,文章提出了一系列提高智能合约安全性的建议,旨在为区块链应用的健康发展提供参考。
|
11天前
|
区块链
近期区块链市场趋势分析
**区块链市场趋势摘要:** - 跨链技术成熟,提升互操作性,助力区块链网络融合。 - DeFi持续繁荣,智能合约与AMM创新活跃,市场竞争驱动市场壮大。 - NFT市场多样化,拓展至游戏、音乐等领域,实用性增强。 - 区块链寻求绿色转型,通过PoS共识与绿色能源减少能耗。 - 技术模块化、可组合性提升,降低成本,增强系统灵活性。 这些趋势展现区块链潜力,带来机遇与挑战,促进行业创新。
|
2月前
|
存储 算法 安全
区块链系统开发技术规则分析
区块链核心技术包括:1) 哈希算法,利用单向函数将任意数据转化为固定长度代码,确保安全验证;2) 非对称加密,使用公钥和私钥一对进行加密解密,保证信息安全;3) 共识机制,如PoW、PoS、DPoS等,实现快速交易验证和确认;4) 智能合约,自动执行的可信代码,一旦编写即不可更改,用于自动化交易;5) 分布式存储,将数据分散存储在网络各处,涵盖结构化、非结构化和半结构化数据。
|
2月前
|
供应链 区块链 数据安全/隐私保护
探索区块链技术在金融领域的应用与前景分析
本文将深入探讨区块链技术在金融领域的具体应用场景,分析其优势与挑战,并展望未来发展趋势。通过案例分析和技术解析,揭示区块链技术在金融行业中的革新意义及前景。
252 15
|
10月前
|
区块链
区块链的发币流程技术分析
区块链现在是发展的如火如荼,很多人都想趁着这个风口,投入区块链创业的浪潮中。 那么我们该怎么做才能抓住这个机会呢? 进行区块链发币要求是很多的,主要有以下几个步骤。
|
10月前
|
安全 算法 区块链
区块链交易所开发技术说明:智能合约设计与实现步骤实现分析
智能合约是区块链技术的核心应用,其能够自动执行、验证和执行合同,并以可验证的方式进行操作。在区块链交易所中,智能合约扮演着重要的角色,它们保证了交易的透明性、效率和安全性。作为一名专业的交易所开发团队一员,在交易所开发这块拥有相对成熟的开发技术,目前已经有成熟的区块链交易所开发案例。本文将介绍如何设计和实现可靠的智能合约来支持区块链交易所。
|
10月前
|
区块链 安全 数据安全/隐私保护
区块链LP流动性SWAP博饼交易所系统开发分析模式
Web3在生态的每一个要素中,都体现出了去中心化的特点。
|
11月前
|
区块链
区块链DAO众筹资金模式合约开发源代码详情
// 众筹函数,向DAO众筹资金 function contribute() public { uint contributionAmount = (unitPrice * msg.value).div(10 ether); // 计算贡献金额,最小单位为0.01ETH