├── .dockerignore ├── .gitattributes ├── .gitignore ├── .gitreview ├── .travis.yml ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Gopkg.lock ├── Gopkg.toml ├── LICENSE ├── Makefile ├── README.md ├── bccsp ├── aesopts.go ├── bccsp.go ├── bccsp_test.go ├── ecdsaopts.go ├── factory │ ├── factory.go │ ├── factory_test.go │ ├── nopkcs11.go │ ├── opts.go │ ├── opts_test.go │ ├── pkcs11.go │ ├── pkcs11_test.go │ ├── pkcs11factory.go │ ├── pkcs11factory_test.go │ ├── pluginfactory.go │ ├── pluginfactory_test.go │ ├── race_test.go │ ├── swfactory.go │ └── swfactory_test.go ├── hashopts.go ├── idemix │ ├── bccsp.go │ ├── bccsp_test.go │ ├── bridge │ │ ├── bridge_suite_test.go │ │ ├── bridge_test.go │ │ ├── credential.go │ │ ├── credrequest.go │ │ ├── issuer.go │ │ ├── math.go │ │ ├── nymsignaturescheme.go │ │ ├── rand.go │ │ ├── revocation.go │ │ ├── signaturescheme.go │ │ └── user.go │ ├── handlers │ │ ├── cred.go │ │ ├── cred_test.go │ │ ├── idemix.go │ │ ├── idemix_suite_test.go │ │ ├── issuer.go │ │ ├── issuer_test.go │ │ ├── mock │ │ │ ├── big.go │ │ │ ├── credential.go │ │ │ ├── credrequest.go │ │ │ ├── ecp.go │ │ │ ├── issuer.go │ │ │ ├── issuer_public_key.go │ │ │ ├── issuer_secret_key.go │ │ │ ├── nymsignature_scheme.go │ │ │ ├── revocation.go │ │ │ ├── signature_scheme.go │ │ │ └── user.go │ │ ├── nym.go │ │ ├── nymsigner.go │ │ ├── nymsigner_test.go │ │ ├── revocation.go │ │ ├── revocation_test.go │ │ ├── signer.go │ │ ├── signer_test.go │ │ ├── user.go │ │ └── user_test.go │ └── idemix_suite_test.go ├── idemixerrs.go ├── idemixopts.go ├── keystore.go ├── mocks │ └── mocks.go ├── opts.go ├── pkcs11 │ ├── conf.go │ ├── ecdsa.go │ ├── ecdsakey.go │ ├── ecdsakey_test.go │ ├── impl.go │ ├── impl_test.go │ ├── pkcs11.go │ └── pkcs11_test.go ├── rsaopts.go ├── signer │ ├── signer.go │ └── signer_test.go ├── sw │ ├── aes.go │ ├── aes_test.go │ ├── aeskey.go │ ├── conf.go │ ├── dummyks.go │ ├── dummyks_test.go │ ├── ecdsa.go │ ├── ecdsa_test.go │ ├── ecdsakey.go │ ├── enc_test.go │ ├── fileks.go │ ├── fileks_test.go │ ├── hash.go │ ├── hash_test.go │ ├── impl.go │ ├── impl_test.go │ ├── inmemoryks.go │ ├── inmemoryks_test.go │ ├── internals.go │ ├── keyderiv.go │ ├── keyderiv_test.go │ ├── keygen.go │ ├── keygen_test.go │ ├── keyimport.go │ ├── keyimport_test.go │ ├── mocks │ │ └── mocks.go │ ├── new.go │ ├── rsa.go │ ├── rsa_test.go │ ├── rsakey.go │ ├── sign_test.go │ ├── sw_test.go │ └── verify_test.go └── utils │ ├── ecdsa.go │ ├── ecdsa_test.go │ ├── errs.go │ ├── errs_test.go │ ├── io.go │ ├── io_test.go │ ├── keys.go │ ├── keys_test.go │ ├── slice.go │ ├── slice_test.go │ ├── x509.go │ └── x509_test.go ├── ci.properties ├── cmd ├── common │ ├── cli.go │ ├── cli_test.go │ ├── comm │ │ ├── client.go │ │ ├── client_test.go │ │ ├── config.go │ │ └── testdata │ │ │ ├── client │ │ │ ├── cert.pem │ │ │ └── key.pem │ │ │ └── server │ │ │ ├── ca.pem │ │ │ ├── cert.pem │ │ │ └── key.pem │ ├── config.go │ ├── config_test.go │ ├── signer │ │ ├── signer.go │ │ ├── signer_test.go │ │ └── testdata │ │ │ └── signer │ │ │ ├── 8150cb2d09628ccc89727611ebb736189f6482747eff9b8aaaa27e9a382d2e93_sk │ │ │ ├── broken_private_key │ │ │ ├── ca.pem │ │ │ ├── cert.pem │ │ │ └── empty_private_key │ └── testdata │ │ ├── not_a_yaml.yaml │ │ └── valid_config │ │ └── config.yaml └── discover │ ├── main.go │ └── main_test.go ├── common ├── attrmgr │ ├── attrmgr.go │ └── attrmgr_test.go ├── capabilities │ ├── application.go │ ├── application_test.go │ ├── capabilities.go │ ├── capabilities_test.go │ ├── channel.go │ ├── channel_test.go │ ├── orderer.go │ └── orderer_test.go ├── cauthdsl │ ├── cauthdsl.go │ ├── cauthdsl_builder.go │ ├── cauthdsl_test.go │ ├── policy.go │ ├── policy_test.go │ ├── policyparser.go │ └── policyparser_test.go ├── chaincode │ ├── metadata.go │ └── metadata_test.go ├── channelconfig │ ├── acls.go │ ├── acls_test.go │ ├── api.go │ ├── application.go │ ├── application_test.go │ ├── applicationorg.go │ ├── applicationorg_test.go │ ├── bundle.go │ ├── bundle_test.go │ ├── bundlesource.go │ ├── channel.go │ ├── channel_test.go │ ├── consortium.go │ ├── consortium_test.go │ ├── consortiums.go │ ├── consortiums_test.go │ ├── logsanitychecks.go │ ├── msp.go │ ├── msp_test.go │ ├── orderer.go │ ├── orderer_test.go │ ├── organization.go │ ├── organization_test.go │ ├── realconfig_test.go │ ├── standardvalues.go │ ├── standardvalues_test.go │ ├── util.go │ └── util_test.go ├── config │ └── api.go ├── configtx │ ├── compare.go │ ├── compare_test.go │ ├── configmap.go │ ├── configmap_test.go │ ├── configtx.go │ ├── test │ │ └── helper.go │ ├── update.go │ ├── update_test.go │ ├── util.go │ ├── util_test.go │ ├── validator.go │ └── validator_test.go ├── crypto │ ├── expiration.go │ ├── expiration_test.go │ ├── random.go │ ├── random_test.go │ ├── signer.go │ ├── signer_test.go │ ├── testdata │ │ ├── badCert.pem │ │ └── cert.pem │ └── tlsgen │ │ ├── ca.go │ │ ├── ca_test.go │ │ ├── key.go │ │ └── key_test.go ├── deliver │ ├── acl.go │ ├── acl_test.go │ ├── deliver.go │ ├── deliver_suite_test.go │ ├── deliver_test.go │ ├── interfaces_test.go │ ├── metrics.go │ └── mock │ │ ├── block_iterator.go │ │ ├── block_reader.go │ │ ├── chain.go │ │ ├── chain_manager.go │ │ ├── filtered_response_sender.go │ │ ├── inspector.go │ │ ├── policy_checker.go │ │ ├── receiver.go │ │ └── response_sender.go ├── diag │ ├── goroutine.go │ └── goroutine_test.go ├── errors │ └── errors.go ├── flogging │ ├── core.go │ ├── core_test.go │ ├── fabenc │ │ ├── color.go │ │ ├── color_test.go │ │ ├── encoder.go │ │ ├── encoder_test.go │ │ ├── formatter.go │ │ └── formatter_test.go │ ├── floggingtest │ │ ├── logger.go │ │ └── logger_test.go │ ├── global.go │ ├── global_test.go │ ├── httpadmin │ │ ├── fakes │ │ │ └── logging.go │ │ ├── httpadmin_suite_test.go │ │ ├── spec.go │ │ └── spec_test.go │ ├── legacy.go │ ├── legacy_test.go │ ├── levels.go │ ├── levels_test.go │ ├── loggerlevels.go │ ├── loggerlevels_test.go │ ├── logging.go │ ├── logging_test.go │ ├── metrics │ │ ├── observer.go │ │ └── observer_test.go │ ├── mock │ │ ├── observer.go │ │ └── write_syncer.go │ ├── zap.go │ └── zap_test.go ├── genesis │ ├── genesis.go │ └── genesis_test.go ├── graph │ ├── choose.go │ ├── choose_test.go │ ├── graph.go │ ├── graph_test.go │ ├── perm.go │ ├── perm_test.go │ ├── tree.go │ └── tree_test.go ├── grpclogging │ ├── context.go │ ├── context_test.go │ ├── fakes │ │ ├── echo_service.go │ │ └── leveler.go │ ├── fields.go │ ├── fields_test.go │ ├── grpclogging_suite_test.go │ ├── server.go │ ├── server_test.go │ └── testpb │ │ ├── echo.pb.go │ │ └── echo.proto ├── grpcmetrics │ ├── fakes │ │ └── echo_service.go │ ├── grpcmetrics_suite_test.go │ ├── interceptor.go │ ├── interceptor_test.go │ ├── metrics.go │ └── testpb │ │ ├── echo.pb.go │ │ └── echo.proto ├── ledger │ ├── blkstorage │ │ ├── blockstorage.go │ │ └── fsblkstorage │ │ │ ├── block_serialization.go │ │ │ ├── block_serialization_test.go │ │ │ ├── block_stream.go │ │ │ ├── block_stream_test.go │ │ │ ├── blockfile_helper.go │ │ │ ├── blockfile_helper_test.go │ │ │ ├── blockfile_mgr.go │ │ │ ├── blockfile_mgr_test.go │ │ │ ├── blockfile_rw.go │ │ │ ├── blockfile_scan_test.go │ │ │ ├── blockindex.go │ │ │ ├── blockindex_test.go │ │ │ ├── blocks_itr.go │ │ │ ├── blocks_itr_test.go │ │ │ ├── config.go │ │ │ ├── fs_blockstore.go │ │ │ ├── fs_blockstore_provider.go │ │ │ ├── fs_blockstore_provider_test.go │ │ │ ├── fs_blockstore_test.go │ │ │ └── pkg_test.go │ ├── blockledger │ │ ├── blackbox_test.go │ │ ├── file │ │ │ ├── factory.go │ │ │ ├── factory_test.go │ │ │ ├── impl.go │ │ │ └── impl_test.go │ │ ├── file_test.go │ │ ├── json │ │ │ ├── factory.go │ │ │ ├── factory_test.go │ │ │ ├── impl.go │ │ │ └── impl_test.go │ │ ├── json_test.go │ │ ├── ledger.go │ │ ├── mocks │ │ │ └── read_writer.go │ │ ├── ram │ │ │ ├── factory.go │ │ │ ├── factory_test.go │ │ │ ├── impl.go │ │ │ └── impl_test.go │ │ ├── ram_test.go │ │ ├── util.go │ │ └── util_test.go │ ├── ledger_interface.go │ ├── testutil │ │ ├── test_helper.go │ │ └── test_util.go │ └── util │ │ ├── ioutil.go │ │ ├── ioutil_test.go │ │ ├── leveldbhelper │ │ ├── leveldb_helper.go │ │ ├── leveldb_helper_test.go │ │ ├── leveldb_provider.go │ │ ├── leveldb_provider_test.go │ │ └── pkg_test.go │ │ ├── protobuf_util.go │ │ ├── protobuf_util_test.go │ │ ├── util.go │ │ └── util_test.go ├── localmsp │ ├── signer.go │ └── signer_test.go ├── metadata │ └── metadata.go ├── metrics │ ├── cmd │ │ └── gendoc │ │ │ ├── .gitignore │ │ │ └── main.go │ ├── disabled │ │ ├── disabled_suite_test.go │ │ ├── provider.go │ │ └── provider_test.go │ ├── gendoc │ │ ├── gendoc_suite_test.go │ │ ├── options.go │ │ ├── options_test.go │ │ ├── table.go │ │ ├── table_test.go │ │ └── testdata │ │ │ ├── basic.go │ │ │ ├── ignored.go │ │ │ └── named_import.go │ ├── internal │ │ └── namer │ │ │ ├── namer.go │ │ │ ├── namer_suite_test.go │ │ │ └── namer_test.go │ ├── metrics_suite_test.go │ ├── metricsfakes │ │ ├── counter.go │ │ ├── gauge.go │ │ ├── histogram.go │ │ └── provider.go │ ├── prometheus │ │ ├── prometheus_suite_test.go │ │ ├── provider.go │ │ └── provider_test.go │ ├── provider.go │ └── statsd │ │ ├── goruntime │ │ ├── collector.go │ │ ├── collector_test.go │ │ ├── goruntime_suite_test.go │ │ └── metrics.go │ │ ├── provider.go │ │ ├── provider_test.go │ │ └── statsd_suite_test.go ├── mocks │ ├── config │ │ ├── application.go │ │ ├── channel.go │ │ ├── channel_test.go │ │ ├── orderer.go │ │ ├── orderer_test.go │ │ ├── resources.go │ │ └── resources_test.go │ ├── configtx │ │ ├── configtx.go │ │ └── configtx_test.go │ ├── crypto │ │ ├── localsigner.go │ │ └── localsigner_test.go │ ├── ledger │ │ └── queryexecutor.go │ ├── msp │ │ ├── noopmsp.go │ │ └── noopmsp_test.go │ ├── peer │ │ ├── mockccstream.go │ │ └── mockpeerccsupport.go │ ├── policies │ │ ├── policies.go │ │ └── policies_test.go │ ├── resourcesconfig │ │ └── resourcesconfig.go │ └── scc │ │ └── sccprovider.go ├── policies │ ├── implicitmeta.go │ ├── implicitmeta_test.go │ ├── implicitmeta_util.go │ ├── implicitmetaparser.go │ ├── implicitmetaparser_test.go │ ├── inquire │ │ ├── compare.go │ │ ├── compare_test.go │ │ ├── inquire.go │ │ ├── inquire_test.go │ │ ├── merge.go │ │ └── merge_test.go │ ├── policy.go │ ├── policy_test.go │ ├── util.go │ └── util_test.go ├── semaphore │ ├── semaphore.go │ └── semaphore_test.go ├── tools │ ├── configtxgen │ │ ├── configtxgentest │ │ │ └── config.go │ │ ├── encoder │ │ │ ├── encoder.go │ │ │ └── encoder_test.go │ │ ├── localconfig │ │ │ ├── config.go │ │ │ └── config_test.go │ │ ├── main.go │ │ ├── main_test.go │ │ └── metadata │ │ │ ├── metadata.go │ │ │ └── metadata_test.go │ ├── configtxlator │ │ ├── integration │ │ │ ├── cors_test.go │ │ │ └── integration_suite_test.go │ │ ├── main.go │ │ ├── metadata │ │ │ ├── metadata.go │ │ │ └── metadata_test.go │ │ ├── rest │ │ │ ├── configtxlator_handlers.go │ │ │ ├── configtxlator_handlers_test.go │ │ │ ├── protolator_handlers.go │ │ │ ├── protolator_handlers_test.go │ │ │ └── router.go │ │ ├── sanitycheck │ │ │ ├── sanitycheck.go │ │ │ └── sanitycheck_test.go │ │ └── update │ │ │ ├── update.go │ │ │ └── update_test.go │ ├── cryptogen │ │ ├── ca │ │ │ ├── ca_test.go │ │ │ └── generator.go │ │ ├── csp │ │ │ ├── csp.go │ │ │ └── csp_test.go │ │ ├── main.go │ │ ├── metadata │ │ │ ├── metadata.go │ │ │ └── metadata_test.go │ │ └── msp │ │ │ ├── generator.go │ │ │ ├── msp_internal_test.go │ │ │ └── msp_test.go │ ├── idemixgen │ │ ├── idemixca │ │ │ ├── idemixca.go │ │ │ └── idemixca_test.go │ │ ├── idemixgen.go │ │ └── metadata │ │ │ ├── metadata.go │ │ │ └── metadata_test.go │ └── protolator │ │ ├── api.go │ │ ├── dynamic.go │ │ ├── dynamic_test.go │ │ ├── integration │ │ └── integration_test.go │ │ ├── json.go │ │ ├── json_test.go │ │ ├── nested.go │ │ ├── nested_test.go │ │ ├── statically_opaque.go │ │ ├── statically_opaque_test.go │ │ ├── testprotos │ │ ├── sample.go │ │ ├── sample.pb.go │ │ └── sample.proto │ │ ├── variably_opaque.go │ │ └── variably_opaque_test.go ├── util │ ├── net.go │ ├── net_test.go │ ├── utils.go │ └── utils_test.go └── viperutil │ ├── config_test.go │ └── config_util.go ├── core ├── aclmgmt │ ├── aclmgmt.go │ ├── aclmgmtimpl.go │ ├── defaultaclprovider.go │ ├── mocks │ │ └── mocks.go │ ├── resourceprovider.go │ ├── resourceprovider_test.go │ └── resources │ │ └── resources.go ├── admin │ ├── admin.go │ ├── admin_test.go │ ├── validate.go │ └── validate_test.go ├── cclifecycle │ ├── lifecycle.go │ ├── lifecycle_test.go │ ├── mocks │ │ ├── enumerator.go │ │ ├── life_cycle_change_listener.go │ │ ├── query.go │ │ └── query_creator.go │ ├── subscription.go │ ├── util.go │ └── util_test.go ├── chaincode │ ├── accesscontrol │ │ ├── access.go │ │ ├── access_test.go │ │ ├── interceptor.go │ │ ├── mapper.go │ │ └── mapper_test.go │ ├── active_transactions.go │ ├── active_transactions_test.go │ ├── ccproviderimpl.go │ ├── chaincode_suite_test.go │ ├── chaincode_support.go │ ├── chaincode_support_test.go │ ├── chaincodetest.yaml │ ├── config.go │ ├── config_test.go │ ├── container_runtime.go │ ├── container_runtime_test.go │ ├── exectransaction_test.go │ ├── executetransaction_pvtdata_test.go │ ├── fake │ │ ├── application_config_retriever.go │ │ ├── context_registry.go │ │ ├── launch_registry.go │ │ ├── message_handler.go │ │ ├── query_response_builder.go │ │ └── registry.go │ ├── handler.go │ ├── handler_internal_test.go │ ├── handler_registry.go │ ├── handler_registry_test.go │ ├── handler_test.go │ ├── lib │ │ └── cid │ │ │ ├── README.md │ │ │ ├── cid.go │ │ │ ├── cid_test.go │ │ │ └── interfaces.go │ ├── lifecycle │ │ ├── lifecycle.go │ │ ├── lifecycle_suite_test.go │ │ ├── lifecycle_test.go │ │ ├── mock │ │ │ ├── chaincode_store.go │ │ │ ├── chaincode_stub.go │ │ │ ├── package_parser.go │ │ │ ├── protobuf.go │ │ │ └── scc_functions.go │ │ ├── protobuf.go │ │ ├── protobuf_test.go │ │ ├── scc.go │ │ └── scc_test.go │ ├── metrics.go │ ├── mock │ │ ├── acl_provider.go │ │ ├── cert_generator.go │ │ ├── chaincode_definition_getter.go │ │ ├── chaincode_stream.go │ │ ├── collection_store.go │ │ ├── history_query_executor.go │ │ ├── instantiation_policy_checker.go │ │ ├── invoker.go │ │ ├── ledger_getter.go │ │ ├── lifecycle.go │ │ ├── package_provider.go │ │ ├── peer_ledger.go │ │ ├── processor.go │ │ ├── results_iterator.go │ │ ├── runtime.go │ │ ├── system_chaincode_provider.go │ │ ├── transaction_registry.go │ │ └── tx_simulator.go │ ├── pending_query_result.go │ ├── pending_query_result_test.go │ ├── persistence │ │ ├── chaincode_package.go │ │ ├── chaincode_package_test.go │ │ ├── mock │ │ │ ├── ioreadwriter.go │ │ │ ├── legacy_package_provider.go │ │ │ ├── osfileinfo.go │ │ │ ├── package_parser.go │ │ │ └── store_package_provider.go │ │ ├── package_provider.go │ │ ├── package_provider_test.go │ │ ├── persistence.go │ │ ├── persistence_suite_test.go │ │ ├── persistence_test.go │ │ └── testdata │ │ │ ├── bad-metadata.tar.gz │ │ │ ├── corrupted-header.tar.gz │ │ │ ├── corrupted-package.tar.gz │ │ │ ├── good-package.tar.gz │ │ │ ├── missing-codepackage.tar.gz │ │ │ ├── missing-metadata.tar.gz │ │ │ ├── non-regular-file.tar.gz │ │ │ └── too-many-files.tar.gz │ ├── platforms │ │ ├── car │ │ │ ├── metadataprovider.go │ │ │ ├── platform.go │ │ │ ├── platform_test.go │ │ │ ├── testdata │ │ │ │ └── org.hyperledger.chaincode.example02-0.1-SNAPSHOT.car │ │ │ └── vm_helper_test.go │ │ ├── ccmetadata │ │ │ ├── ccmetadata.go │ │ │ ├── targzmetadataprovider.go │ │ │ ├── targzmetadataprovider_test.go │ │ │ ├── validators.go │ │ │ └── validators_test.go │ │ ├── golang │ │ │ ├── env.go │ │ │ ├── env_test.go │ │ │ ├── list.go │ │ │ ├── list_test.go │ │ │ ├── package.go │ │ │ ├── platform.go │ │ │ ├── platform_test.go │ │ │ └── testdata │ │ │ │ └── src │ │ │ │ └── chaincodes │ │ │ │ ├── AutoVendor │ │ │ │ ├── chaincode │ │ │ │ │ └── main.go │ │ │ │ ├── directdep │ │ │ │ │ └── core.go │ │ │ │ └── indirectdep │ │ │ │ │ └── core.go │ │ │ │ ├── BadImport │ │ │ │ └── main.go │ │ │ │ ├── BadMetadataIgnoreHiddenFile │ │ │ │ ├── META-INF │ │ │ │ │ └── .hiddenfile │ │ │ │ └── main.go │ │ │ │ ├── BadMetadataInvalidIndex │ │ │ │ ├── META-INF │ │ │ │ │ └── statedb │ │ │ │ │ │ └── couchdb │ │ │ │ │ │ └── indexes │ │ │ │ │ │ └── bad.json │ │ │ │ └── main.go │ │ │ │ └── BadMetadataUnexpectedFolderContent │ │ │ │ ├── META-INF │ │ │ │ └── unsupported_metadata_ocation.json │ │ │ │ └── main.go │ │ ├── java │ │ │ ├── java_test.go │ │ │ ├── platform.go │ │ │ └── testdata │ │ │ │ └── gradle │ │ │ │ ├── build.gradle │ │ │ │ ├── pom.xml │ │ │ │ ├── settings.gradle │ │ │ │ ├── src │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── example │ │ │ │ │ ├── ExampleCC.java │ │ │ │ │ └── examplecc.class │ │ │ │ └── target │ │ │ │ └── example │ │ │ │ ├── ExampleCC.class │ │ │ │ └── ExampleCC.java │ │ ├── mock │ │ │ ├── package_writer.go │ │ │ └── platform.go │ │ ├── node │ │ │ ├── platform.go │ │ │ └── platform_test.go │ │ ├── platforms.go │ │ ├── platforms_suite_test.go │ │ ├── platforms_test.go │ │ └── util │ │ │ ├── hashtestfiles1 │ │ │ ├── a.txt │ │ │ ├── a │ │ │ │ ├── a1.txt │ │ │ │ └── a2.txt │ │ │ ├── b.txt │ │ │ └── b │ │ │ │ ├── c.txt │ │ │ │ └── c │ │ │ │ └── c1.txt │ │ │ ├── hashtestfiles2 │ │ │ ├── x.txt │ │ │ ├── x │ │ │ │ ├── z.txt │ │ │ │ └── z │ │ │ │ │ └── z1.txt │ │ │ ├── y.txt │ │ │ └── y │ │ │ │ ├── y1.txt │ │ │ │ └── y2.txt │ │ │ ├── utils.go │ │ │ └── utils_test.go │ ├── query_response_generator.go │ ├── query_response_generator_test.go │ ├── runtime_launcher.go │ ├── runtime_launcher_test.go │ ├── shim │ │ ├── chaincode.go │ │ ├── ext │ │ │ ├── attrmgr │ │ │ │ ├── attrmgr.go │ │ │ │ └── attrmgr_test.go │ │ │ ├── cid │ │ │ │ ├── README.md │ │ │ │ ├── cid.go │ │ │ │ ├── cid_test.go │ │ │ │ └── interfaces.go │ │ │ ├── entities │ │ │ │ ├── entities.go │ │ │ │ ├── entities_test.go │ │ │ │ ├── interfaces.go │ │ │ │ ├── message.go │ │ │ │ ├── message_test.go │ │ │ │ └── testutils.go │ │ │ └── statebased │ │ │ │ ├── interfaces.go │ │ │ │ ├── statebasedimpl.go │ │ │ │ └── statebasedimpl_test.go │ │ ├── handler.go │ │ ├── inprocstream.go │ │ ├── inprocstream_test.go │ │ ├── interfaces.go │ │ ├── mockstub.go │ │ ├── mockstub_test.go │ │ ├── response.go │ │ └── shim_test.go │ ├── testdata │ │ ├── chaincode │ │ │ ├── init_private_data │ │ │ │ └── init_private_data.go │ │ │ └── init_public_data │ │ │ │ └── init_public_data.go │ │ ├── server1.key │ │ └── server1.pem │ ├── transaction_context.go │ ├── transaction_context_test.go │ ├── transaction_contexts.go │ └── transaction_contexts_test.go ├── comm │ ├── client.go │ ├── client_test.go │ ├── config.go │ ├── config_test.go │ ├── connection.go │ ├── connection_test.go │ ├── creds.go │ ├── creds_test.go │ ├── metrics.go │ ├── mock │ │ ├── new_semaphore.go │ │ ├── semaphore.go │ │ ├── server_stream.go │ │ ├── stream_handler.go │ │ └── unary_handler.go │ ├── producer.go │ ├── producer_test.go │ ├── server.go │ ├── server_test.go │ ├── serverstatshandler.go │ ├── serverstatshandler_test.go │ ├── testdata │ │ ├── certs │ │ │ ├── Org1-cert.pem │ │ │ ├── Org1-child1-cert.pem │ │ │ ├── Org1-child1-client1-cert.pem │ │ │ ├── Org1-child1-client1-key.pem │ │ │ ├── Org1-child1-client2-cert.pem │ │ │ ├── Org1-child1-client2-key.pem │ │ │ ├── Org1-child1-key.pem │ │ │ ├── Org1-child1-server1-cert.pem │ │ │ ├── Org1-child1-server1-key.pem │ │ │ ├── Org1-child1-server2-cert.pem │ │ │ ├── Org1-child1-server2-key.pem │ │ │ ├── Org1-child2-cert.pem │ │ │ ├── Org1-child2-client1-cert.pem │ │ │ ├── Org1-child2-client1-key.pem │ │ │ ├── Org1-child2-client2-cert.pem │ │ │ ├── Org1-child2-client2-key.pem │ │ │ ├── Org1-child2-key.pem │ │ │ ├── Org1-child2-server1-cert.pem │ │ │ ├── Org1-child2-server1-key.pem │ │ │ ├── Org1-child2-server2-cert.pem │ │ │ ├── Org1-child2-server2-key.pem │ │ │ ├── Org1-client1-cert.pem │ │ │ ├── Org1-client1-key.pem │ │ │ ├── Org1-client2-cert.pem │ │ │ ├── Org1-client2-key.pem │ │ │ ├── Org1-key.pem │ │ │ ├── Org1-server1-cert.pem │ │ │ ├── Org1-server1-key.pem │ │ │ ├── Org1-server2-cert.pem │ │ │ ├── Org1-server2-key.pem │ │ │ ├── Org2-cert.pem │ │ │ ├── Org2-child1-cert.pem │ │ │ ├── Org2-child1-client1-cert.pem │ │ │ ├── Org2-child1-client1-key.pem │ │ │ ├── Org2-child1-client2-cert.pem │ │ │ ├── Org2-child1-client2-key.pem │ │ │ ├── Org2-child1-key.pem │ │ │ ├── Org2-child1-server1-cert.pem │ │ │ ├── Org2-child1-server1-key.pem │ │ │ ├── Org2-child1-server2-cert.pem │ │ │ ├── Org2-child1-server2-key.pem │ │ │ ├── Org2-child2-cert.pem │ │ │ ├── Org2-child2-client1-cert.pem │ │ │ ├── Org2-child2-client1-key.pem │ │ │ ├── Org2-child2-client2-cert.pem │ │ │ ├── Org2-child2-client2-key.pem │ │ │ ├── Org2-child2-key.pem │ │ │ ├── Org2-child2-server1-cert.pem │ │ │ ├── Org2-child2-server1-key.pem │ │ │ ├── Org2-child2-server2-cert.pem │ │ │ ├── Org2-child2-server2-key.pem │ │ │ ├── Org2-client1-cert.pem │ │ │ ├── Org2-client1-key.pem │ │ │ ├── Org2-client2-cert.pem │ │ │ ├── Org2-client2-key.pem │ │ │ ├── Org2-key.pem │ │ │ ├── Org2-server1-cert.pem │ │ │ ├── Org2-server1-key.pem │ │ │ ├── Org2-server2-cert.pem │ │ │ ├── Org2-server2-key.pem │ │ │ └── generate.go │ │ ├── dynamic_cert_update │ │ │ ├── ca.crt │ │ │ ├── localhost │ │ │ │ ├── server.crt │ │ │ │ └── server.key │ │ │ └── notlocalhost │ │ │ │ ├── server.crt │ │ │ │ └── server.key │ │ ├── grpc │ │ │ ├── generate.go │ │ │ ├── test.pb.go │ │ │ └── test.proto │ │ ├── impersonation │ │ │ ├── orgA │ │ │ │ ├── ca.crt │ │ │ │ ├── server.crt │ │ │ │ └── server.key │ │ │ └── orgB │ │ │ │ ├── ca.crt │ │ │ │ ├── server.crt │ │ │ │ └── server.key │ │ ├── prime256v1-openssl-cert.pem │ │ └── prime256v1-openssl-key.pem │ ├── throttle.go │ ├── throttle_test.go │ ├── util.go │ └── util_test.go ├── committer │ ├── committer.go │ ├── committer_impl.go │ ├── committer_test.go │ └── txvalidator │ │ ├── mocks │ │ ├── capabilities.go │ │ ├── identity_deserializer.go │ │ ├── plugin.go │ │ ├── plugin_factory.go │ │ ├── plugin_mapper.go │ │ └── query_executor_creator.go │ │ ├── plugin_validator.go │ │ ├── plugin_validator_test.go │ │ ├── testdata │ │ └── test_plugin.go │ │ ├── txvalidator_test.go │ │ ├── validator.go │ │ ├── validator_test.go │ │ └── vscc_validator.go ├── common │ ├── ccpackage │ │ ├── ccpackage.go │ │ └── ccpackage_test.go │ ├── ccprovider │ │ ├── cc_info_provider.go │ │ ├── cc_statedb_artifacts_provider.go │ │ ├── ccinfocache.go │ │ ├── ccinfocache_test.go │ │ ├── ccprovider.go │ │ ├── ccprovider_test.go │ │ ├── cdspackage.go │ │ ├── cdspackage_test.go │ │ ├── common.go │ │ ├── sigcdspackage.go │ │ └── sigcdspackage_test.go │ ├── privdata │ │ ├── collection.go │ │ ├── collection_test.go │ │ ├── membershipinfo.go │ │ ├── membershipinfo_test.go │ │ ├── simplecollection.go │ │ ├── simplecollection_test.go │ │ ├── store.go │ │ ├── store_test.go │ │ └── util.go │ ├── sysccprovider │ │ ├── sysccprovider.go │ │ └── sysccprovider_test.go │ └── validation │ │ ├── config_test.go │ │ ├── fullflow_test.go │ │ ├── msgvalidation.go │ │ ├── msgvalidation_test.go │ │ └── statebased │ │ ├── validator_keylevel.go │ │ ├── validator_keylevel_test.go │ │ ├── vpmanager.go │ │ ├── vpmanager_test.go │ │ └── vpmanagerimpl.go ├── config │ ├── config.go │ ├── config_test.go │ └── configtest │ │ ├── config.go │ │ └── config_test.go ├── container │ ├── ccintf │ │ ├── ccintf.go │ │ └── ccintf_test.go │ ├── container_suite_test.go │ ├── container_test.go │ ├── controller.go │ ├── controller_test.go │ ├── dockercontroller │ │ ├── dockercontroller.go │ │ ├── dockercontroller_test.go │ │ └── metrics.go │ ├── inproccontroller │ │ ├── inproccontroller.go │ │ ├── inproccontroller_test.go │ │ ├── inprocstream.go │ │ └── inprocstream_test.go │ ├── mock │ │ ├── builder.go │ │ ├── vm.go │ │ ├── vm_provider.go │ │ └── vm_req.go │ └── util │ │ ├── dockerutil.go │ │ ├── dockerutil_test.go │ │ ├── testdata │ │ ├── BadMetadataInvalidIndex │ │ │ └── META-INF │ │ │ │ └── statedb │ │ │ │ └── couchdb │ │ │ │ └── indexes │ │ │ │ └── bad.json │ │ ├── BadMetadataUnexpectedFolderContent │ │ │ ├── META-INF │ │ │ │ └── unsupported_metadata_location.json │ │ │ └── main.go │ │ └── sourcefiles │ │ │ ├── META-INF │ │ │ ├── .hiddenfile │ │ │ └── statedb │ │ │ │ └── couchdb │ │ │ │ └── indexes │ │ │ │ └── indexOwner.json │ │ │ ├── artifact.xml │ │ │ └── src │ │ │ ├── Hello.class │ │ │ ├── Hello.java │ │ │ └── main.go │ │ ├── writer.go │ │ └── writer_test.go ├── deliverservice │ ├── blocksprovider │ │ ├── blocksprovider.go │ │ └── blocksprovider_test.go │ ├── client.go │ ├── client_test.go │ ├── deliveryclient.go │ ├── deliveryclient_test.go │ ├── mocks │ │ ├── blocksprovider.go │ │ ├── blocksprovider_test.go │ │ ├── orderer.go │ │ └── orderer_test.go │ ├── requester.go │ ├── requester_test.go │ └── testdata │ │ ├── ca.pem │ │ ├── cert.pem │ │ └── key.pem ├── endorser │ ├── endorser.go │ ├── endorser_test.go │ ├── metrics.go │ ├── metrics_test.go │ ├── mocks │ │ ├── channel_state_retriever.go │ │ ├── plugin.go │ │ ├── plugin_factory.go │ │ ├── plugin_mapper.go │ │ ├── query_creator.go │ │ ├── signing_identity_fetcher.go │ │ ├── store.go │ │ ├── support.go │ │ └── transient_store_retriever.go │ ├── plugin_endorser.go │ ├── plugin_endorser_test.go │ ├── pvtrwset_assembler.go │ ├── pvtrwset_assembler_test.go │ ├── state.go │ └── support.go ├── handlers │ ├── auth │ │ ├── auth.go │ │ ├── auth_test.go │ │ ├── filter │ │ │ ├── expiration.go │ │ │ ├── expiration_test.go │ │ │ ├── filter.go │ │ │ ├── filter_test.go │ │ │ └── testdata │ │ │ │ ├── expiredCert.pem │ │ │ │ └── notExpiredCert.pem │ │ └── plugin │ │ │ ├── filter.go │ │ │ └── filter_test.go │ ├── decoration │ │ ├── decoration.go │ │ ├── decoration_test.go │ │ ├── decorator │ │ │ ├── decorator.go │ │ │ └── decorator_test.go │ │ └── plugin │ │ │ ├── decorator.go │ │ │ └── decorator_test.go │ ├── endorsement │ │ ├── api │ │ │ ├── endorsement.go │ │ │ ├── identities │ │ │ │ └── identities.go │ │ │ └── state │ │ │ │ └── state.go │ │ ├── builtin │ │ │ ├── default_endorsement.go │ │ │ ├── default_endorsement_test.go │ │ │ └── mocks │ │ │ │ └── signing_identity.go │ │ ├── plugin │ │ │ ├── plugin.go │ │ │ └── plugin_test.go │ │ └── testdata │ │ │ └── noop_endorser.go │ ├── library │ │ ├── library.go │ │ ├── race_test.go │ │ ├── registry.go │ │ ├── registry_plugin_test.go │ │ └── registry_test.go │ └── validation │ │ ├── api │ │ ├── capabilities │ │ │ └── capabilities.go │ │ ├── identities │ │ │ └── identities.go │ │ ├── policies │ │ │ └── policies.go │ │ ├── state │ │ │ └── state.go │ │ └── validation.go │ │ ├── builtin │ │ ├── default_validation.go │ │ ├── default_validation_test.go │ │ ├── mocks │ │ │ └── transaction_validator.go │ │ ├── v12 │ │ │ ├── mocks │ │ │ │ ├── capabilities.go │ │ │ │ ├── identity_deserializer.go │ │ │ │ ├── policy_evaluator.go │ │ │ │ └── state_fetcher.go │ │ │ ├── validation_logic.go │ │ │ └── validation_logic_test.go │ │ └── v13 │ │ │ ├── lscc_validation_logic.go │ │ │ ├── mocks │ │ │ ├── capabilities.go │ │ │ ├── identity_deserializer.go │ │ │ ├── policy_evaluator.go │ │ │ ├── state_based_validator.go │ │ │ └── state_fetcher.go │ │ │ ├── validation_logic.go │ │ │ ├── validation_logic_test.go │ │ │ └── validator.go │ │ ├── testdata │ │ └── noop_validator.go │ │ └── token │ │ ├── validation.go │ │ └── validation_test.go ├── ledger │ ├── cceventmgmt │ │ ├── defs.go │ │ ├── lsccstate_listener.go │ │ ├── mgmt_test.go │ │ └── mgr.go │ ├── confighistory │ │ ├── db_helper.go │ │ ├── db_helper_test.go │ │ ├── mgr.go │ │ └── mgr_test.go │ ├── customtx │ │ ├── custom_tx_processor.go │ │ ├── interface.go │ │ └── test_export.go │ ├── kvledger │ │ ├── bookkeeping │ │ │ ├── provider.go │ │ │ ├── provider_test.go │ │ │ └── test_exports.go │ │ ├── coll_elg_notifier.go │ │ ├── coll_elg_notifier_test.go │ │ ├── custom_processor_test.go │ │ ├── hashcheck_pvtdata.go │ │ ├── hashcheck_pvtdata_test.go │ │ ├── history │ │ │ └── historydb │ │ │ │ ├── histmgr_helper.go │ │ │ │ ├── histmgr_helper_test.go │ │ │ │ ├── historydb.go │ │ │ │ └── historyleveldb │ │ │ │ ├── historyleveldb.go │ │ │ │ ├── historyleveldb_query_executer.go │ │ │ │ ├── historyleveldb_test.go │ │ │ │ └── pkg_test.go │ │ ├── kv_ledger.go │ │ ├── kv_ledger_provider.go │ │ ├── kv_ledger_provider_test.go │ │ ├── kv_ledger_test.go │ │ ├── metrics.go │ │ ├── metrics_test.go │ │ ├── pkg_test.go │ │ ├── recovery.go │ │ ├── state_listener_test.go │ │ ├── tests │ │ │ ├── client.go │ │ │ ├── committer.go │ │ │ ├── env.go │ │ │ ├── ledger_test.go │ │ │ ├── pvtdata_test.go │ │ │ ├── rebuild_test.go │ │ │ ├── sample_data_helper.go │ │ │ ├── test_helper.go │ │ │ ├── testdata │ │ │ │ └── v11 │ │ │ │ │ └── sample_ledgers │ │ │ │ │ └── ledgersData │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── chains │ │ │ │ │ ├── chains │ │ │ │ │ │ ├── ledger1 │ │ │ │ │ │ │ └── blockfile_000000 │ │ │ │ │ │ └── ledger2 │ │ │ │ │ │ │ └── blockfile_000000 │ │ │ │ │ └── index │ │ │ │ │ │ ├── 000001.log │ │ │ │ │ │ ├── CURRENT │ │ │ │ │ │ └── MANIFEST-000000 │ │ │ │ │ ├── historyLeveldb │ │ │ │ │ ├── 000001.log │ │ │ │ │ ├── CURRENT │ │ │ │ │ └── MANIFEST-000000 │ │ │ │ │ ├── ledgerProvider │ │ │ │ │ ├── 000001.log │ │ │ │ │ ├── CURRENT │ │ │ │ │ └── MANIFEST-000000 │ │ │ │ │ ├── pvtdataStore │ │ │ │ │ ├── 000001.log │ │ │ │ │ ├── CURRENT │ │ │ │ │ └── MANIFEST-000000 │ │ │ │ │ └── stateLeveldb │ │ │ │ │ ├── 000001.log │ │ │ │ │ ├── CURRENT │ │ │ │ │ └── MANIFEST-000000 │ │ │ ├── util.go │ │ │ ├── v11_test.go │ │ │ └── verifier.go │ │ └── txmgmt │ │ │ ├── privacyenabledstate │ │ │ ├── common_storage_db.go │ │ │ ├── common_storage_db_test.go │ │ │ ├── db.go │ │ │ ├── db_test.go │ │ │ ├── optimization.go │ │ │ ├── optimization_test.go │ │ │ └── test_exports.go │ │ │ ├── pvtstatepurgemgmt │ │ │ ├── expiry_keeper.go │ │ │ ├── expiry_keeper_test.go │ │ │ ├── expiry_schedule_builder.go │ │ │ ├── expiry_schedule_builder_test.go │ │ │ ├── purge_mgr.go │ │ │ ├── purge_mgr_test.go │ │ │ ├── pvtdata_key.pb.go │ │ │ ├── pvtdata_key.proto │ │ │ └── pvtdata_key_helper.go │ │ │ ├── queryutil │ │ │ ├── combiner_test.go │ │ │ ├── iterator_combiner.go │ │ │ ├── mock │ │ │ │ └── query_executer.go │ │ │ └── query_executer_combiner.go │ │ │ ├── rwsetutil │ │ │ ├── query_results_helper.go │ │ │ ├── query_results_helper_test.go │ │ │ ├── rwset_builder.go │ │ │ ├── rwset_builder_test.go │ │ │ ├── rwset_proto_util.go │ │ │ └── rwset_proto_util_test.go │ │ │ ├── statedb │ │ │ ├── commontests │ │ │ │ └── test_common.go │ │ │ ├── mock │ │ │ │ ├── results_iterator.go │ │ │ │ └── versioned_db.go │ │ │ ├── statecouchdb │ │ │ │ ├── batch_util.go │ │ │ │ ├── commit_handling.go │ │ │ │ ├── couchdoc_conv.go │ │ │ │ ├── metadata_retrieval.go │ │ │ │ ├── msgs │ │ │ │ │ ├── msgs.pb.go │ │ │ │ │ └── msgs.proto │ │ │ │ ├── statecouchdb.go │ │ │ │ ├── statecouchdb_test.go │ │ │ │ ├── statecouchdb_test_export.go │ │ │ │ ├── version_cache.go │ │ │ │ ├── version_cache_test.go │ │ │ │ ├── version_field_encoding.go │ │ │ │ └── version_field_encoding_test.go │ │ │ ├── statedb.go │ │ │ ├── statedb_test.go │ │ │ └── stateleveldb │ │ │ │ ├── msgs │ │ │ │ ├── storage.pb.go │ │ │ │ └── storage.proto │ │ │ │ ├── stateleveldb.go │ │ │ │ ├── stateleveldb_test.go │ │ │ │ ├── stateleveldb_test_export.go │ │ │ │ ├── value_encoding.go │ │ │ │ └── value_encoding_test.go │ │ │ ├── storageutil │ │ │ ├── metadata.go │ │ │ └── serialize_deserialize_test.go │ │ │ ├── txmgr │ │ │ ├── lockbasedtxmgr │ │ │ │ ├── collection_val.go │ │ │ │ ├── collection_val_test.go │ │ │ │ ├── helper.go │ │ │ │ ├── helper_test.go │ │ │ │ ├── lockbased_query_executer.go │ │ │ │ ├── lockbased_tx_simulator.go │ │ │ │ ├── lockbased_txmgr.go │ │ │ │ ├── pkg_test.go │ │ │ │ ├── state_listener_test.go │ │ │ │ └── txmgr_test.go │ │ │ └── txmgr.go │ │ │ ├── validator │ │ │ ├── internal │ │ │ │ ├── tx_ops_preparation.go │ │ │ │ ├── tx_ops_preparation_test.go │ │ │ │ ├── val.go │ │ │ │ └── val_test.go │ │ │ ├── statebasedval │ │ │ │ ├── combined_iterator.go │ │ │ │ ├── combined_iterator_test.go │ │ │ │ ├── range_query_validator.go │ │ │ │ ├── range_query_validator_test.go │ │ │ │ ├── state_based_validator.go │ │ │ │ └── state_based_validator_test.go │ │ │ ├── validator.go │ │ │ └── valimpl │ │ │ │ ├── default_impl.go │ │ │ │ ├── helper.go │ │ │ │ └── helper_test.go │ │ │ └── version │ │ │ ├── version.go │ │ │ └── version_test.go │ ├── ledger_interface.go │ ├── ledgerconfig │ │ ├── ledger_config.go │ │ └── ledger_config_test.go │ ├── ledgermgmt │ │ ├── ledger_mgmt.go │ │ ├── ledger_mgmt_test.go │ │ └── ledger_mgmt_test_exports.go │ ├── ledgerstorage │ │ ├── pkg_test.go │ │ ├── store.go │ │ └── store_test.go │ ├── mock │ │ ├── deployed_ccinfo_provider.go │ │ ├── health_check_registry.go │ │ ├── membership_info_provider.go │ │ └── state_listener.go │ ├── pkg_test.go │ ├── pvtdatapolicy │ │ ├── btlpolicy.go │ │ ├── btlpolicy_test.go │ │ ├── mock │ │ │ └── coll_info_provider.go │ │ └── testutil │ │ │ └── util.go │ ├── pvtdatastorage │ │ ├── helper.go │ │ ├── kv_encoding.go │ │ ├── kv_encoding_test.go │ │ ├── persistent_msgs.pb.go │ │ ├── persistent_msgs.proto │ │ ├── persistent_msgs_helper.go │ │ ├── store.go │ │ ├── store_impl.go │ │ ├── store_impl_test.go │ │ ├── test_exports.go │ │ ├── testdata │ │ │ └── v11_v12 │ │ │ │ └── ledgersData │ │ │ │ └── pvtdataStore │ │ │ │ ├── 000002.ldb │ │ │ │ ├── 000005.ldb │ │ │ │ ├── CURRENT │ │ │ │ ├── LOCK │ │ │ │ ├── LOG │ │ │ │ └── MANIFEST-000065 │ │ ├── v11.go │ │ └── v11_V12_test.go │ ├── testutil │ │ ├── test_util.go │ │ └── test_util_test.go │ └── util │ │ ├── couchdb │ │ ├── config.go │ │ ├── config_test.go │ │ ├── couchdb.go │ │ ├── couchdb_test.go │ │ ├── couchdbutil.go │ │ ├── couchdbutil_test.go │ │ ├── metrics.go │ │ └── metrics_test.go │ │ ├── txvalidationflags.go │ │ ├── txvalidationflags_test.go │ │ ├── uint64_encoding.go │ │ ├── util.go │ │ └── util_test.go ├── middleware │ ├── chain.go │ ├── chain_test.go │ ├── fakes │ │ └── http_handler.go │ ├── middleware_suite_test.go │ ├── request_id.go │ ├── request_id_test.go │ ├── require_cert.go │ └── require_cert_test.go ├── mocks │ ├── ccprovider │ │ └── ccprovider.go │ ├── endorser │ │ └── support.go │ ├── peer │ │ └── support.go │ ├── scc │ │ └── lscc │ │ │ └── support.go │ ├── txvalidator │ │ └── support.go │ └── validator │ │ └── validator.go ├── operations │ ├── fakes │ │ ├── healthchecker.go │ │ └── logger.go │ ├── metrics.go │ ├── operations_suite_test.go │ ├── system.go │ ├── system_test.go │ ├── tls.go │ └── tls_test.go ├── peer │ ├── config.go │ ├── config_test.go │ ├── configtx_processor.go │ ├── configtx_test.go │ ├── configtx_util.go │ ├── deliverevents.go │ ├── deliverevents_test.go │ ├── mock_helpers.go │ ├── peer.go │ ├── peer_impl.go │ ├── peer_test.go │ ├── pkg_test.go │ ├── support.go │ └── testdata │ │ ├── Org1-cert.pem │ │ ├── Org1-server1-cert.pem │ │ ├── Org1-server1-key.pem │ │ ├── Org2-cert.pem │ │ ├── Org2-child1-cert.pem │ │ ├── Org2-child1-key.pem │ │ ├── Org2-child1-server1-cert.pem │ │ ├── Org2-child1-server1-key.pem │ │ ├── Org2-server1-cert.pem │ │ ├── Org2-server1-key.pem │ │ ├── Org3-cert.pem │ │ ├── Org3-server1-cert.pem │ │ ├── Org3-server1-key.pem │ │ └── generate.go ├── policy │ ├── mocks │ │ └── mocks.go │ ├── policy.go │ └── policy_test.go ├── policyprovider │ ├── provider.go │ └── provider_test.go ├── scc │ ├── cscc │ │ ├── configure.go │ │ ├── configure_test.go │ │ └── mock │ │ │ ├── acl_provider.go │ │ │ ├── config_manager.go │ │ │ └── configtx_validator.go │ ├── importsysccs.go │ ├── loadsysccs.go │ ├── loadsysccs_test.go │ ├── lscc │ │ ├── deployedcc_infoprovider.go │ │ ├── deployedcc_infoprovider_test.go │ │ ├── errors.go │ │ ├── lscc.go │ │ ├── lscc_noncc_test.go │ │ ├── lscc_suite_test.go │ │ ├── lscc_test.go │ │ ├── mock │ │ │ ├── cc_package.go │ │ │ ├── chaincode_stub.go │ │ │ ├── fs_support.go │ │ │ ├── query_executor.go │ │ │ ├── state_query_iterator.go │ │ │ └── sysccprovider.go │ │ └── support.go │ ├── qscc │ │ ├── query.go │ │ └── query_test.go │ ├── race_test.go │ ├── register.go │ ├── register_pluginsenabled.go │ ├── scc_test.go │ ├── sccproviderimpl.go │ └── sysccapi.go ├── testutil │ └── config.go └── transientstore │ ├── store.go │ ├── store_helper.go │ ├── store_test.go │ └── test_exports.go ├── devenv ├── README.md ├── Vagrantfile ├── failure-motd.in ├── golang_buildcmd.sh ├── golang_buildpkg.sh ├── images │ └── openchain-dev-env-deployment-diagram.png ├── install_nvm.sh ├── limits.conf ├── setup.sh ├── setupRHELonZ.sh ├── setupUbuntuOnPPC64le.sh └── tools │ └── couchdb ├── discovery ├── api.go ├── authcache.go ├── authcache_test.go ├── client │ ├── api.go │ ├── client.go │ ├── client_test.go │ ├── selection.go │ ├── selection_test.go │ ├── signer.go │ ├── signer_test.go │ └── testdata │ │ ├── client │ │ ├── cert.pem │ │ └── key.pem │ │ └── server │ │ ├── ca.pem │ │ ├── cert.pem │ │ └── key.pem ├── cmd │ ├── cmd.go │ ├── cmd_test.go │ ├── config.go │ ├── config_test.go │ ├── endorsers.go │ ├── endorsers_test.go │ ├── mocks │ │ ├── channel_response.go │ │ ├── command_registrar.go │ │ ├── local_response.go │ │ ├── response_parser.go │ │ ├── service_response.go │ │ └── stub.go │ ├── peers.go │ ├── peers_test.go │ ├── stub.go │ ├── stub_test.go │ └── testdata │ │ ├── 8150cb2d09628ccc89727611ebb736189f6482747eff9b8aaaa27e9a382d2e93_sk │ │ └── cert.pem ├── endorsement │ ├── collection.go │ ├── collection_test.go │ ├── endorsement.go │ └── endorsement_test.go ├── service.go ├── service_test.go ├── support │ ├── acl │ │ ├── support.go │ │ └── support_test.go │ ├── chaincode │ │ ├── support.go │ │ └── support_test.go │ ├── config │ │ ├── support.go │ │ ├── support_test.go │ │ └── testdata │ │ │ └── configtx.yaml │ ├── gossip │ │ ├── support.go │ │ └── support_test.go │ ├── mocks │ │ ├── chanconfig.go │ │ ├── channel_policy_manager_getter.go │ │ ├── config.go │ │ ├── configtxvalidator.go │ │ ├── evaluator.go │ │ ├── gossip.go │ │ ├── gossip_support.go │ │ ├── identity.go │ │ ├── mspmgr.go │ │ ├── resources.go │ │ └── verifier.go │ └── support.go └── test │ └── integration_test.go ├── docker-env.mk ├── docs ├── .gitignore ├── Makefile ├── README.md ├── custom_theme │ └── searchbox.html ├── requirements.txt ├── source │ ├── CONTRIBUTING.rst │ ├── DCO1.1.txt │ ├── Fabric-FAQ.rst │ ├── Gerrit │ │ ├── best-practices.rst │ │ ├── changes.rst │ │ ├── gerrit.rst │ │ ├── lf-account.rst │ │ └── reviewing.rst │ ├── MAINTAINERS.rst │ ├── Style-guides │ │ └── go-style.rst │ ├── _static │ │ ├── css │ │ │ └── custom.css │ │ └── images │ │ │ ├── github_button.png │ │ │ ├── rocketchat_button.png │ │ │ ├── stackoverflow_button.png │ │ │ └── youtube_button.png │ ├── _templates │ │ ├── footer.html │ │ └── layout.html │ ├── access_control.md │ ├── arch-deep-dive.rst │ ├── architecture.rst │ ├── blockchain.rst │ ├── build_network.rst │ ├── capability_requirements.rst │ ├── chaincode.rst │ ├── chaincode4ade.rst │ ├── chaincode4noah.rst │ ├── channel_update_tutorial.rst │ ├── channels.rst │ ├── command_ref.rst │ ├── commands │ │ ├── configtxgen.md │ │ ├── configtxlator.md │ │ ├── cryptogen.md │ │ ├── fabric-ca-commands.rst │ │ ├── peerchaincode.md │ │ ├── peerchannel.md │ │ ├── peercommand.md │ │ ├── peerlogging.md │ │ ├── peernode.md │ │ └── peerversion.md │ ├── conf.py │ ├── config_update.md │ ├── configtx.rst │ ├── couchdb_as_state_database.rst │ ├── couchdb_tutorial.rst │ ├── dev-setup │ │ ├── build.rst │ │ ├── devenv.rst │ │ └── headers.txt │ ├── developapps │ │ ├── analysis.md │ │ ├── apis.md │ │ ├── application.md │ │ ├── architecture.md │ │ ├── chaincodenamespace.md │ │ ├── connectionoptions.md │ │ ├── connectionprofile.md │ │ ├── designelements.rst │ │ ├── develop.diagram.1.png │ │ ├── develop.diagram.10.png │ │ ├── develop.diagram.11.png │ │ ├── develop.diagram.12.png │ │ ├── develop.diagram.13.png │ │ ├── develop.diagram.2.png │ │ ├── develop.diagram.25.png │ │ ├── develop.diagram.3.png │ │ ├── develop.diagram.30.png │ │ ├── develop.diagram.35.png │ │ ├── develop.diagram.4.png │ │ ├── develop.diagram.5.png │ │ ├── develop.diagram.50.png │ │ ├── develop.diagram.51.png │ │ ├── develop.diagram.6.png │ │ ├── develop.diagram.7.png │ │ ├── develop.diagram.8.png │ │ ├── developing_applications.rst │ │ ├── diagrams.pptx │ │ ├── endorsementpolicies.md │ │ ├── gateway.md │ │ ├── namespace.md │ │ ├── scenario.md │ │ ├── smartcontract.md │ │ ├── transactioncontext.md │ │ ├── transactionhandler.md │ │ └── wallet.md │ ├── diagrams │ │ └── diagrams.pptx │ ├── discovery-cli.md │ ├── discovery-overview.rst │ ├── enable_tls.rst │ ├── endorsement-policies.rst │ ├── error-handling.rst │ ├── fabric-sdks.rst │ ├── fabric_model.rst │ ├── functionalities.rst │ ├── getting_started.rst │ ├── glossary.rst │ ├── glossary │ │ ├── diagrams.pptx │ │ ├── glossary.block.png │ │ ├── glossary.blockchain.png │ │ ├── glossary.channel.png │ │ ├── glossary.ledger.png │ │ ├── glossary.msp.png │ │ ├── glossary.orderer.png │ │ ├── glossary.orderingservice.png │ │ ├── glossary.organization.png │ │ ├── glossary.peer.png │ │ ├── glossary.transaction.png │ │ └── glossary.worldstate.png │ ├── gossip.rst │ ├── idemix.rst │ ├── idemixgen.rst │ ├── identity │ │ ├── identity.diagram.1.png │ │ ├── identity.diagram.10.png │ │ ├── identity.diagram.11.png │ │ ├── identity.diagram.12.png │ │ ├── identity.diagram.6.png │ │ ├── identity.diagram.7.png │ │ ├── identity.diagram.8.png │ │ ├── identity.diagram.9.png │ │ └── identity.md │ ├── images │ │ ├── AddSSH1.png │ │ ├── AddSSH2.png │ │ ├── AppConceptsOverview.png │ │ ├── GitCloneCmd.png │ │ ├── Jira.png │ │ ├── Jira1.png │ │ ├── Jira2.png │ │ ├── Jira3.png │ │ ├── Jira4.png │ │ ├── NewGerritUI.png │ │ ├── QueryingtheLedger.png │ │ ├── RunningtheSample.png │ │ ├── SSHKeys.png │ │ ├── Settings.png │ │ ├── SideDB-org1.png │ │ ├── SideDB-org2.png │ │ ├── SideDB-peer.png │ │ ├── SideDB.png │ │ ├── SideDBTutorialImages.pptx │ │ ├── Smart_Contract.png │ │ ├── UpdatingtheLedger.png │ │ ├── attributes_flow.png │ │ ├── basic_network.png │ │ ├── blocks-3.png │ │ ├── chaincode_swimlane.png │ │ ├── consensus.png │ │ ├── couchdb_tutorial_pkg_example.png │ │ ├── current_network.png │ │ ├── flow-4.png │ │ ├── future_net.png │ │ ├── hyperledger_fabric_logo_color.png │ │ ├── idemix-overview.png │ │ ├── idemix-three-steps.png │ │ ├── idmx-audit.png │ │ ├── idmx-contribution.png │ │ ├── idmx-revocation.png │ │ ├── idmx-steps.png │ │ ├── idmx-vs-x509.png │ │ ├── lf-sandbox.png │ │ ├── standalone-app-developer.png │ │ ├── step0.png │ │ ├── step1.png │ │ ├── step2.png │ │ ├── step3.png │ │ ├── step4.png │ │ ├── step5.png │ │ ├── step6.png │ │ ├── what.png │ │ └── world_view.png │ ├── index.rst │ ├── install.rst │ ├── jira_navigation.rst │ ├── kafka.rst │ ├── key_concepts.rst │ ├── ledger.rst │ ├── ledger │ │ ├── ledger.diagram.1.png │ │ ├── ledger.diagram.2.png │ │ ├── ledger.diagram.3.png │ │ ├── ledger.diagram.4.png │ │ ├── ledger.diagram.5.png │ │ ├── ledger.diagram.6.png │ │ └── ledger.md │ ├── logging-control.rst │ ├── mdtorst.sh │ ├── membership │ │ ├── membership.diagram.2.png │ │ ├── membership.diagram.3.png │ │ ├── membership.diagram.4.png │ │ ├── membership.diagram.5.png │ │ └── membership.md │ ├── metrics_reference.rst │ ├── metrics_reference.rst.tmpl │ ├── msp-identity-validity-rules.rst │ ├── msp.rst │ ├── network │ │ ├── network.diagram.1.png │ │ ├── network.diagram.10.png │ │ ├── network.diagram.11.png │ │ ├── network.diagram.12.png │ │ ├── network.diagram.14.png │ │ ├── network.diagram.15.png │ │ ├── network.diagram.2.1.png │ │ ├── network.diagram.2.png │ │ ├── network.diagram.3.png │ │ ├── network.diagram.4.png │ │ ├── network.diagram.5.png │ │ ├── network.diagram.6.png │ │ ├── network.diagram.7.png │ │ ├── network.diagram.8.png │ │ ├── network.diagram.9.png │ │ └── network.md │ ├── operations_service.rst │ ├── ops_guide.rst │ ├── peer-chaincode-devmode.rst │ ├── peer_event_services.rst │ ├── peers │ │ ├── peers.diagram.1.png │ │ ├── peers.diagram.10.png │ │ ├── peers.diagram.11.png │ │ ├── peers.diagram.12.png │ │ ├── peers.diagram.2.png │ │ ├── peers.diagram.3.png │ │ ├── peers.diagram.4.png │ │ ├── peers.diagram.5.png │ │ ├── peers.diagram.6.png │ │ ├── peers.diagram.8.png │ │ ├── peers.diagram.9.png │ │ └── peers.md │ ├── pluggable_endorsement_and_validation.rst │ ├── policies.rst │ ├── prereqs.rst │ ├── private-data-arch.rst │ ├── private-data │ │ ├── PrivateDataConcept-1.png │ │ ├── PrivateDataConcept-2.png │ │ ├── PrivateDataConcept-3.png │ │ ├── PrivateDataConceptImages.pptx │ │ ├── SideDB-peer.png │ │ ├── SideDB.png │ │ └── private-data.md │ ├── private_data_tutorial.rst │ ├── questions.rst │ ├── readwrite.rst │ ├── releases.rst │ ├── requirements.txt │ ├── security_model.rst │ ├── smartcontract.rst │ ├── status.rst │ ├── submit_cr.rst │ ├── systemchaincode.rst │ ├── tutorial │ │ ├── commercial_paper.diagram.1.png │ │ ├── commercial_paper.diagram.10.png │ │ ├── commercial_paper.diagram.11.png │ │ ├── commercial_paper.diagram.12.png │ │ ├── commercial_paper.diagram.2.png │ │ ├── commercial_paper.diagram.3.png │ │ ├── commercial_paper.diagram.4.png │ │ ├── commercial_paper.diagram.5.png │ │ ├── commercial_paper.diagram.6.png │ │ ├── commercial_paper.diagram.7.png │ │ ├── commercial_paper.diagram.8.png │ │ ├── commercial_paper.md │ │ ├── diagrams.pptx │ │ ├── installxcode.md │ │ ├── write_first_app.diagram.1.png │ │ └── write_first_app.diagram.2.png │ ├── tutorials.rst │ ├── txflow.rst │ ├── understand_fabcar_network.rst │ ├── upgrade_to_newest_version.rst │ ├── upgrading_your_network_tutorial.rst │ ├── usecases.rst │ ├── videos.rst │ ├── whatis.md │ ├── whatsnew.rst │ └── write_first_app.rst └── wrappers │ ├── configtxgen_postscript.md │ ├── configtxgen_preamble.md │ ├── configtxlator_postscript.md │ ├── configtxlator_preamble.md │ ├── cryptogen_postscript.md │ ├── cryptogen_preamble.md │ ├── license_postscript.md │ ├── peer_chaincode_postscript.md │ ├── peer_chaincode_preamble.md │ ├── peer_channel_postscript.md │ ├── peer_channel_preamble.md │ ├── peer_logging_postscript.md │ ├── peer_logging_preamble.md │ ├── peer_node_postscript.md │ ├── peer_node_preamble.md │ └── peer_version_preamble.md ├── examples ├── chaincode │ └── go │ │ ├── enccc_example │ │ ├── README.md │ │ ├── enccc_example.go │ │ ├── enccc_test.go │ │ └── utils.go │ │ ├── eventsender │ │ └── eventsender.go │ │ ├── example01 │ │ ├── chaincode.go │ │ └── cmd │ │ │ └── main.go │ │ ├── example02 │ │ ├── chaincode.go │ │ ├── chaincode_test.go │ │ └── cmd │ │ │ └── main.go │ │ ├── example03 │ │ ├── chaincode.go │ │ ├── chaincode_test.go │ │ └── cmd │ │ │ └── main.go │ │ ├── example04 │ │ ├── chaincode.go │ │ ├── chaincode_test.go │ │ └── cmd │ │ │ └── main.go │ │ ├── example05 │ │ ├── chaincode.go │ │ ├── chaincode_test.go │ │ └── cmd │ │ │ └── main.go │ │ ├── invokereturnsvalue │ │ ├── invokereturnsvalue.go │ │ └── invokereturnsvalue_test.go │ │ ├── map │ │ └── map.go │ │ ├── marbles02 │ │ ├── META-INF │ │ │ └── statedb │ │ │ │ └── couchdb │ │ │ │ └── indexes │ │ │ │ └── indexOwner.json │ │ └── marbles_chaincode.go │ │ ├── passthru │ │ └── passthru.go │ │ └── sleeper │ │ └── sleeper.go ├── cluster │ ├── Makefile │ ├── compose │ │ ├── compose-up.sh.in │ │ ├── configure.sh.in │ │ └── docker-compose.yaml.in │ ├── config │ │ ├── configtx.yaml │ │ ├── core.yaml │ │ ├── cryptogen.yaml │ │ ├── fabric-ca-server-config.yaml │ │ ├── fabric-tlsca-server-config.yaml │ │ └── orderer.yaml │ └── usage.txt ├── configtxupdate │ ├── README.md │ ├── bootstrap_batchsize │ │ └── script.sh │ ├── common_scripts │ │ └── common.sh │ ├── reconfig_batchsize │ │ └── script.sh │ └── reconfig_membership │ │ └── script.sh ├── events │ └── eventsclient │ │ ├── README.md │ │ └── eventsclient.go └── plugins │ ├── bccsp │ └── plugin.go │ └── scc │ └── plugin.go ├── gossip ├── api │ ├── api_test.go │ ├── channel.go │ ├── crypto.go │ └── subchannel.go ├── comm │ ├── ack.go │ ├── ack_test.go │ ├── comm.go │ ├── comm_impl.go │ ├── comm_test.go │ ├── conn.go │ ├── crypto.go │ ├── crypto_test.go │ ├── demux.go │ ├── demux_test.go │ ├── mock │ │ ├── mock_comm.go │ │ └── mock_comm_test.go │ └── msg.go ├── common │ ├── cert.go │ ├── common.go │ └── common_test.go ├── discovery │ ├── discovery.go │ ├── discovery_impl.go │ └── discovery_test.go ├── election │ ├── adapter.go │ ├── adapter_test.go │ ├── election.go │ └── election_test.go ├── filter │ ├── filter.go │ └── filter_test.go ├── gossip │ ├── algo │ │ ├── pull.go │ │ └── pull_test.go │ ├── anchor_test.go │ ├── batcher.go │ ├── batcher_test.go │ ├── certstore.go │ ├── certstore_test.go │ ├── channel │ │ ├── channel.go │ │ └── channel_test.go │ ├── chanstate.go │ ├── gossip.go │ ├── gossip_impl.go │ ├── gossip_test.go │ ├── msgstore │ │ ├── msgs.go │ │ └── msgs_test.go │ ├── orgs_test.go │ └── pull │ │ ├── pullstore.go │ │ └── pullstore_test.go ├── identity │ ├── identity.go │ └── identity_test.go ├── integration │ ├── integration.go │ └── integration_test.go ├── mocks │ └── security_advisor.go ├── privdata │ ├── common │ │ └── common.go │ ├── coordinator.go │ ├── coordinator_test.go │ ├── dataretriever.go │ ├── dataretriever_test.go │ ├── distributor.go │ ├── distributor_test.go │ ├── mocks │ │ ├── collection_store.go │ │ ├── committer.go │ │ ├── config_history_retriever.go │ │ ├── data_store.go │ │ ├── missing_pvt_data_tracker.go │ │ ├── reconciliation_fetcher.go │ │ └── rw_set_scanner.go │ ├── pull.go │ ├── pull_test.go │ ├── reconcile.go │ ├── reconcile_test.go │ └── util.go ├── service │ ├── eventer.go │ ├── eventer_test.go │ ├── gossip_service.go │ ├── gossip_service_test.go │ ├── integration_test.go │ └── join_test.go ├── state │ ├── mocks │ │ ├── gossip.go │ │ └── gossip_test.go │ ├── payloads_buffer.go │ ├── payloads_buffer_test.go │ ├── state.go │ └── state_test.go └── util │ ├── logging.go │ ├── misc.go │ ├── misc_test.go │ ├── msgs.go │ ├── msgs_test.go │ ├── privdata.go │ ├── pubsub.go │ └── pubsub_test.go ├── gotools.mk ├── idemix ├── credential.go ├── credrequest.go ├── idemix.pb.go ├── idemix_test.go ├── issuerkey.go ├── nonrevocation-prover.go ├── nonrevocation-verifier.go ├── nymsignature.go ├── revocation_authority.go ├── signature.go ├── util.go └── weak-bb.go ├── images ├── buildenv │ └── Dockerfile.in ├── ccenv │ └── Dockerfile.in ├── orderer │ └── Dockerfile.in ├── peer │ └── Dockerfile.in ├── testenv │ ├── Dockerfile.alpine │ └── softhsm │ │ └── APKBUILD └── tools │ └── Dockerfile.in ├── integration ├── README.rst ├── chaincode │ ├── keylevelep │ │ ├── chaincode.go │ │ └── cmd │ │ │ └── main.go │ ├── marbles_private │ │ ├── chaincode.go │ │ └── cmd │ │ │ └── main.go │ └── simple │ │ ├── chaincode.go │ │ └── cmd │ │ └── main.go ├── discovery │ ├── discovery_suite_test.go │ ├── discovery_test.go │ └── testdata │ │ ├── collections_config1.json │ │ └── network.yaml ├── e2e │ ├── acl_test.go │ ├── cft_test.go │ ├── e2e_signal_test.go │ ├── e2e_suite_test.go │ ├── e2e_test.go │ └── health_test.go ├── helpers │ └── images.go ├── nwo │ ├── command.go │ ├── commands │ │ ├── configtxgen.go │ │ ├── cryptogen.go │ │ ├── discover.go │ │ └── peer.go │ ├── components.go │ ├── config.go │ ├── configblock.go │ ├── configtx_template.go │ ├── core_template.go │ ├── crypto_template.go │ ├── deploy.go │ ├── discover.go │ ├── fabricconfig │ │ ├── core.go │ │ └── orderer.go │ ├── network.go │ ├── network_test.go │ ├── nwo_suite_test.go │ ├── orderer_template.go │ ├── solo.yaml │ ├── standard_networks.go │ └── templates.go ├── pluggable │ ├── pluggable_suite_test.go │ ├── pluggable_test.go │ ├── plugin_activation.go │ └── testdata │ │ └── plugins │ │ ├── endorsement │ │ └── plugin.go │ │ └── validation │ │ └── plugin.go ├── pvtdata │ ├── pvtdata_suite_test.go │ ├── pvtdata_test.go │ └── testdata │ │ ├── collection_configs │ │ ├── collections_config1.json │ │ ├── collections_config2.json │ │ ├── collections_config3.json │ │ ├── collections_config4.json │ │ └── short_btl_config.json │ │ └── network.yaml ├── runner │ ├── couchdb.go │ ├── couchdb_test.go │ ├── defaults.go │ ├── kafka.go │ ├── kafka_test.go │ ├── runner_suite_test.go │ ├── zookeeper.go │ └── zookeeper_test.go ├── sbe │ ├── sbe_suite_test.go │ ├── sbe_test.go │ └── testdata │ │ └── collection_config.json └── token │ ├── token_suite_test.go │ └── token_test.go ├── msp ├── cache │ ├── cache.go │ ├── cache_test.go │ ├── second_chance.go │ └── second_chance_test.go ├── cert.go ├── cert_test.go ├── configbuilder.go ├── configbuilder_test.go ├── factory.go ├── factory_test.go ├── idemix_roles.go ├── idemixmsp.go ├── idemixmsp_test.go ├── identities.go ├── mgmt │ ├── deserializer.go │ ├── deserializer_test.go │ ├── mgmt.go │ ├── mgmt_test.go │ ├── peermsp_test.go │ ├── principal.go │ ├── principal_test.go │ └── testtools │ │ ├── config.go │ │ └── config_test.go ├── mocks │ └── mocks.go ├── msp.go ├── msp_test.go ├── mspimpl.go ├── mspimplsetup.go ├── mspimplsetup_test.go ├── mspimplvalidate.go ├── mspmgrimpl.go ├── mspwithintermediatecas_test.go ├── nodeous_test.go ├── ouconfig_test.go ├── revocation_test.go ├── testdata │ ├── badadmin │ │ ├── admincerts │ │ │ ├── cert-COP1.pem │ │ │ └── cert-COP2.pem │ │ ├── cacerts │ │ │ ├── cacert-COP.pem │ │ │ └── cacert.pem │ │ ├── config.yaml │ │ ├── keystore │ │ │ └── key-COP1.pem │ │ └── signcerts │ │ │ └── cert-COP1.pem │ ├── badconfigou │ │ ├── admincerts │ │ │ └── admincert.pem │ │ ├── cacerts │ │ │ └── cacert.pem │ │ ├── config.yaml │ │ ├── keystore │ │ │ └── key.pem │ │ └── signcerts │ │ │ └── peer.pem │ ├── badconfigoucert │ │ ├── admincerts │ │ │ └── admincert.pem │ │ ├── cacerts │ │ │ └── cacert.pem │ │ ├── config.yaml │ │ ├── keystore │ │ │ └── key.pem │ │ ├── signcerts │ │ │ └── peer.pem │ │ └── tlscacerts │ │ │ └── cert.pem │ ├── expiration │ │ ├── admincerts │ │ │ └── User1.pem │ │ ├── cacerts │ │ │ └── ca.pem │ │ ├── keystore │ │ │ └── 83c4189d96988eab469b1afa1dfbcb4463a1fff381d7dba9b9378b51a5ef9e77_sk │ │ └── signcerts │ │ │ └── cert.pem │ ├── expired │ │ ├── admincerts │ │ │ └── admincert-expired.pem │ │ ├── cacerts │ │ │ └── cacert.pem │ │ ├── keystore │ │ │ └── key-expired.pem │ │ └── signcerts │ │ │ └── peer-expired.pem │ ├── external │ │ ├── admincerts │ │ │ └── admin.pem │ │ ├── cacerts │ │ │ └── cacert.pem │ │ ├── config.yaml │ │ ├── intermediatecerts │ │ │ └── intermediatecert.pem │ │ ├── keystore │ │ │ └── key.pem │ │ └── signcerts │ │ │ └── cert.pem │ ├── idemix │ │ ├── MSP1OU1 │ │ │ ├── ca │ │ │ │ ├── IssuerPublicKey │ │ │ │ ├── IssuerSecretKey │ │ │ │ └── RevocationKey │ │ │ ├── msp │ │ │ │ ├── IssuerPublicKey │ │ │ │ └── RevocationPublicKey │ │ │ └── user │ │ │ │ └── SignerConfig │ │ ├── MSP1OU1Admin │ │ │ ├── ca │ │ │ │ ├── IssuerPublicKey │ │ │ │ ├── IssuerSecretKey │ │ │ │ └── RevocationKey │ │ │ ├── msp │ │ │ │ ├── IssuerPublicKey │ │ │ │ └── RevocationPublicKey │ │ │ └── user │ │ │ │ └── SignerConfig │ │ ├── MSP1OU2 │ │ │ ├── ca │ │ │ │ ├── IssuerPublicKey │ │ │ │ ├── IssuerSecretKey │ │ │ │ └── RevocationKey │ │ │ ├── msp │ │ │ │ ├── IssuerPublicKey │ │ │ │ └── RevocationPublicKey │ │ │ └── user │ │ │ │ └── SignerConfig │ │ ├── MSP1Verifier │ │ │ ├── ca │ │ │ │ ├── IssuerPublicKey │ │ │ │ ├── IssuerSecretKey │ │ │ │ └── RevocationKey │ │ │ └── msp │ │ │ │ ├── IssuerPublicKey │ │ │ │ └── RevocationPublicKey │ │ └── MSP2OU1 │ │ │ ├── ca │ │ │ ├── IssuerPublicKey │ │ │ ├── IssuerSecretKey │ │ │ └── RevocationKey │ │ │ ├── msp │ │ │ ├── IssuerPublicKey │ │ │ └── RevocationPublicKey │ │ │ └── user │ │ │ └── SignerConfig │ ├── intermediate │ │ ├── admincerts │ │ │ └── admin.pem │ │ ├── cacerts │ │ │ └── cacert.pem │ │ ├── intermediatecerts │ │ │ └── intermediatecert.pem │ │ ├── keystore │ │ │ └── key.pem │ │ └── signcerts │ │ │ └── signcert.pem │ ├── intermediate2 │ │ ├── admincerts │ │ │ └── admin.pem │ │ ├── cacerts │ │ │ └── cacert.pem │ │ ├── intermediatecerts │ │ │ └── intermediatecert.pem │ │ ├── keystore │ │ │ └── key.pem │ │ ├── signcerts │ │ │ └── signcert.pem │ │ └── users │ │ │ └── user2-cert.pem │ ├── mspid │ │ ├── admincerts │ │ │ └── peer0-cert.pem │ │ ├── cacerts │ │ │ └── ca.example.com-cert.pem │ │ ├── keystore │ │ │ └── 7c73fd300a90b41c79ace8ee5553e1f3ba12b141892d966617731380189d3f4e_sk │ │ ├── signcerts │ │ │ └── peer0-cert.pem │ │ └── tlscacerts │ │ │ └── ca.example.com-cert.pem │ ├── nodeous1 │ │ ├── admincerts │ │ │ └── admincert.pem │ │ ├── cacerts │ │ │ └── cacert.pem │ │ ├── config.yaml │ │ ├── keystore │ │ │ └── key.pem │ │ ├── signcerts │ │ │ └── peer.pem │ │ └── tlscacerts │ │ │ └── cert.pem │ ├── nodeous2 │ │ ├── admincerts │ │ │ └── peer0-cert.pem │ │ ├── cacerts │ │ │ └── ca.example.com-cert.pem │ │ ├── config.yaml │ │ ├── keystore │ │ │ ├── 21779908bb40b2996d730685a5df60c62f05e02356930cd74b0d6acc49a1eafc_sk │ │ │ └── f8c30e5fad3f1af5f080a87c23ce37e40e6d4ac30019e31ca2c6e7c6bffa26c8_sk │ │ ├── signcerts │ │ │ └── peer0-cert.pem │ │ └── tlscacerts │ │ │ └── ca.example.com-cert.pem │ ├── nodeous3 │ │ ├── admincerts │ │ │ └── peer0-cert.pem │ │ ├── cacerts │ │ │ └── ca.example.com-cert.pem │ │ ├── config.yaml │ │ ├── keystore │ │ │ ├── 212d57370dd1e4bacc414d0070121197d6c34b694dec33242bb3ffc4ef13e23b_sk │ │ │ └── d51e8e0ea19acbc3090a82bd0ae36db670a368512dbd1a20e58089113a20e24b_sk │ │ ├── signcerts │ │ │ └── peer0-cert.pem │ │ └── tlscacerts │ │ │ └── ca.example.com-cert.pem │ ├── nodeous4 │ │ ├── admincerts │ │ │ └── peer0-cert.pem │ │ ├── cacerts │ │ │ ├── ca.example.com-cert.pem │ │ │ └── external_ca.pem │ │ ├── config.yaml │ │ ├── keystore │ │ │ ├── 212d57370dd1e4bacc414d0070121197d6c34b694dec33242bb3ffc4ef13e23b_sk │ │ │ └── d51e8e0ea19acbc3090a82bd0ae36db670a368512dbd1a20e58089113a20e24b_sk │ │ ├── signcerts │ │ │ └── peer0-cert.pem │ │ └── tlscacerts │ │ │ └── ca.example.com-cert.pem │ ├── nodeous5 │ │ ├── admincerts │ │ │ └── peer0-cert.pem │ │ ├── cacerts │ │ │ └── ca.example.com-cert.pem │ │ ├── config.yaml │ │ ├── keystore │ │ │ ├── 012ba73f50e24826785f48d1e60dcb972cfc2c5df7c41cdc0ecbbd52b02ca248_sk │ │ │ └── 47e79b836df4b16212176f607b37d95f97ecfdcdc658b7e6eaeab251251a01aa_sk │ │ ├── signcerts │ │ │ └── peer0-cert.pem │ │ └── tlscacerts │ │ │ └── ca.example.com-cert.pem │ ├── nodeous6 │ │ ├── admincerts │ │ │ └── peer0-cert.pem │ │ ├── cacerts │ │ │ └── cacert.pem │ │ ├── config.yaml │ │ ├── keystore │ │ │ ├── 212d57370dd1e4bacc414d0070121197d6c34b694dec33242bb3ffc4ef13e23b_sk │ │ │ └── d51e8e0ea19acbc3090a82bd0ae36db670a368512dbd1a20e58089113a20e24b_sk │ │ ├── signcerts │ │ │ └── peer0-cert.pem │ │ └── tlscacerts │ │ │ └── ca.example.com-cert.pem │ ├── nodeous7 │ │ ├── admincerts │ │ │ └── peer0-cert.pem │ │ ├── cacerts │ │ │ └── cacert.pem │ │ ├── config.yaml │ │ ├── keystore │ │ │ ├── 212d57370dd1e4bacc414d0070121197d6c34b694dec33242bb3ffc4ef13e23b_sk │ │ │ └── d51e8e0ea19acbc3090a82bd0ae36db670a368512dbd1a20e58089113a20e24b_sk │ │ ├── signcerts │ │ │ └── peer0-cert.pem │ │ └── tlscacerts │ │ │ └── ca.example.com-cert.pem │ ├── nodeous8 │ │ ├── admincerts │ │ │ └── peer0-cert.pem │ │ ├── cacerts │ │ │ └── ca.example.com-cert.pem │ │ ├── config.yaml │ │ ├── keystore │ │ │ └── f3a673451e3bf0f74b4fd7b24f6dbfd8d795c2173d11d255b6a4f4ad3cd23046_sk │ │ ├── signcerts │ │ │ └── peer0-cert.pem │ │ └── tlscacerts │ │ │ └── ca.example.com-cert.pem │ ├── revocation │ │ ├── admincerts │ │ │ └── admin.pem │ │ ├── cacerts │ │ │ └── cacert.pem │ │ ├── crls │ │ │ └── crl.pem │ │ ├── keystore │ │ │ ├── key-admin.pem │ │ │ └── key-revoked.pem │ │ └── signcerts │ │ │ └── signcert-revoked.pem │ ├── revocation2 │ │ ├── admincerts │ │ │ └── admin.pem │ │ ├── cacerts │ │ │ └── cacert.pem │ │ ├── crls │ │ │ └── crl.pem │ │ ├── keystore │ │ │ ├── key-admin.pem │ │ │ └── key-revoked.pem │ │ └── signcerts │ │ │ └── signcert-revoked.pem │ ├── revokedica │ │ ├── admincerts │ │ │ └── admin.pem │ │ ├── cacerts │ │ │ └── cacert.pem │ │ ├── crls │ │ │ └── crl.pem │ │ ├── intermediatecerts │ │ │ └── intermidiatecert.pem │ │ ├── keystore │ │ │ └── key.pem │ │ └── signcerts │ │ │ └── signcert.pem │ └── tls │ │ ├── admincerts │ │ └── admin.pem │ │ ├── cacerts │ │ └── cacert.pem │ │ ├── config.yaml │ │ ├── intermediatecerts │ │ └── intermediatecert.pem │ │ ├── keystore │ │ └── key.pem │ │ ├── signcerts │ │ └── cert.pem │ │ ├── tlscacerts │ │ └── cacert.pem │ │ └── tlsintermediatecerts │ │ └── intermediatecert.pem └── tls_test.go ├── orderer ├── README.md ├── common │ ├── blockcutter │ │ ├── blockcutter.go │ │ ├── blockcutter_suite_test.go │ │ ├── blockcutter_test.go │ │ ├── metrics.go │ │ ├── metrics_test.go │ │ └── mock │ │ │ ├── config_fetcher.go │ │ │ ├── metrics_histogram.go │ │ │ ├── metrics_provider.go │ │ │ └── orderer_config.go │ ├── bootstrap │ │ ├── bootstrap.go │ │ └── file │ │ │ ├── bootstrap.go │ │ │ └── bootstrap_test.go │ ├── broadcast │ │ ├── broadcast.go │ │ ├── broadcast_suite_test.go │ │ ├── broadcast_test.go │ │ ├── metrics.go │ │ ├── metrics_test.go │ │ └── mock │ │ │ ├── ab_server.go │ │ │ ├── channel_support.go │ │ │ ├── channel_support_registrar.go │ │ │ ├── metrics_counter.go │ │ │ ├── metrics_histogram.go │ │ │ └── metrics_provider.go │ ├── cluster │ │ ├── comm.go │ │ ├── comm_test.go │ │ ├── connections.go │ │ ├── connections_test.go │ │ ├── deliver.go │ │ ├── deliver_test.go │ │ ├── mocks │ │ │ ├── block_verifier.go │ │ │ ├── chain_puller.go │ │ │ ├── channel_lister.go │ │ │ ├── cluster_client.go │ │ │ ├── communicator.go │ │ │ ├── dispatcher.go │ │ │ ├── handler.go │ │ │ ├── ledger_factory.go │ │ │ ├── ledger_writer.go │ │ │ ├── secure_dialer.go │ │ │ ├── submit_client.go │ │ │ └── submit_stream.go │ │ ├── replication.go │ │ ├── replication_test.go │ │ ├── rpc.go │ │ ├── rpc_test.go │ │ ├── service.go │ │ ├── service_test.go │ │ ├── testdata │ │ │ ├── block3.pb │ │ │ ├── ca.crt │ │ │ ├── mychannel.block │ │ │ ├── server.crt │ │ │ └── server.key │ │ ├── util.go │ │ └── util_test.go │ ├── localconfig │ │ ├── config.go │ │ └── config_test.go │ ├── metadata │ │ ├── metadata.go │ │ └── metadata_test.go │ ├── msgprocessor │ │ ├── expiration.go │ │ ├── expiration_test.go │ │ ├── filter.go │ │ ├── filter_test.go │ │ ├── msgprocessor.go │ │ ├── sigfilter.go │ │ ├── sigfilter_test.go │ │ ├── sizefilter.go │ │ ├── sizefilter_test.go │ │ ├── standardchannel.go │ │ ├── standardchannel_test.go │ │ ├── systemchannel.go │ │ ├── systemchannel_test.go │ │ ├── systemchannelfilter.go │ │ ├── systemchannelfilter_test.go │ │ └── testdata │ │ │ ├── badCert.pem │ │ │ ├── cert.pem │ │ │ └── expiredCert.pem │ ├── multichannel │ │ ├── blockwriter.go │ │ ├── blockwriter_test.go │ │ ├── chainsupport.go │ │ ├── chainsupport_test.go │ │ ├── registrar.go │ │ ├── registrar_test.go │ │ └── util_test.go │ └── server │ │ ├── docker-compose.yml │ │ ├── etcdraft_test.go │ │ ├── main.go │ │ ├── main_test.go │ │ ├── onboarding.go │ │ ├── onboarding_test.go │ │ ├── server.go │ │ ├── server_test.go │ │ ├── signals.go │ │ ├── signals_windows.go │ │ ├── testdata │ │ ├── configtx.yaml │ │ ├── genesis.block │ │ └── tls │ │ │ ├── ca.crt │ │ │ ├── server.crt │ │ │ └── server.key │ │ ├── util.go │ │ └── util_test.go ├── consensus │ ├── consensus.go │ ├── etcdraft │ │ ├── blockcreator.go │ │ ├── blockcreator_test.go │ │ ├── chain.go │ │ ├── chain_test.go │ │ ├── consenter.go │ │ ├── consenter_test.go │ │ ├── dispatcher.go │ │ ├── dispatcher_test.go │ │ ├── etcdraft_suite_test.go │ │ ├── initialization_test.go │ │ ├── mocks │ │ │ ├── chain_getter.go │ │ │ ├── configurator.go │ │ │ ├── message_receiver.go │ │ │ ├── mock_blockpuller.go │ │ │ ├── mock_rpc.go │ │ │ └── receiver_getter.go │ │ ├── storage.go │ │ ├── testdata │ │ │ ├── etcdraftgenesis.block │ │ │ └── mychannel.block │ │ ├── util.go │ │ └── util_test.go │ ├── kafka │ │ ├── chain.go │ │ ├── chain_test.go │ │ ├── channel.go │ │ ├── channel_test.go │ │ ├── config.go │ │ ├── config_test.go │ │ ├── consenter.go │ │ ├── consenter_test.go │ │ ├── kafka_suite_test.go │ │ ├── logger.go │ │ ├── logger_test.go │ │ ├── metrics.go │ │ ├── metrics_test.go │ │ ├── mock │ │ │ ├── metrics_gauge.go │ │ │ ├── metrics_histogram.go │ │ │ ├── metrics_meter.go │ │ │ ├── metrics_provider.go │ │ │ └── metrics_registry.go │ │ ├── partitioner.go │ │ ├── partitioner_test.go │ │ ├── retry.go │ │ └── retry_test.go │ ├── mocks │ │ └── mock_consenter_support.go │ └── solo │ │ ├── consensus.go │ │ └── consensus_test.go ├── main.go ├── mocks │ ├── common │ │ ├── blockcutter │ │ │ ├── blockcutter.go │ │ │ └── blockcutter_test.go │ │ └── multichannel │ │ │ ├── multichannel.go │ │ │ └── multichannel_test.go │ └── util │ │ ├── util.go │ │ └── util_test.go └── sample_clients │ ├── broadcast_config │ ├── client.go │ └── newchain.go │ ├── broadcast_msg │ └── client.go │ └── deliver_stdout │ └── client.go ├── peer ├── chaincode │ ├── api │ │ └── api.go │ ├── chaincode.go │ ├── common.go │ ├── common_test.go │ ├── flags_test.go │ ├── install.go │ ├── install_test.go │ ├── instantiate.go │ ├── instantiate_test.go │ ├── invoke.go │ ├── invoke_test.go │ ├── list.go │ ├── list_test.go │ ├── mock │ │ └── deliver.go │ ├── package.go │ ├── package_test.go │ ├── query.go │ ├── query_test.go │ ├── signpackage.go │ ├── signpackage_test.go │ ├── upgrade.go │ └── upgrade_test.go ├── channel │ ├── channel.go │ ├── channel_test.go │ ├── create.go │ ├── create_test.go │ ├── fetch.go │ ├── fetch_test.go │ ├── flags_test.go │ ├── getinfo.go │ ├── getinfo_test.go │ ├── join.go │ ├── join_test.go │ ├── list.go │ ├── list_test.go │ ├── signconfigtx.go │ ├── signconfigtx_test.go │ ├── update.go │ └── update_test.go ├── clilogging │ ├── common.go │ ├── getlevel.go │ ├── getlogspec.go │ ├── logging.go │ ├── logging_test.go │ ├── revertlevels.go │ ├── setlevel.go │ └── setlogspec.go ├── common │ ├── api │ │ └── api.go │ ├── broadcastclient.go │ ├── common.go │ ├── common_test.go │ ├── deliverclient.go │ ├── deliverclient_test.go │ ├── mock │ │ ├── deliverclient.go │ │ ├── deliverservice.go │ │ └── peerdeliverclient.go │ ├── mockclient.go │ ├── networkconfig.go │ ├── networkconfig_test.go │ ├── ordererclient.go │ ├── ordererclient_test.go │ ├── ordererenv.go │ ├── ordererenv_test.go │ ├── peerclient.go │ ├── peerclient_test.go │ ├── peerdeliverclient.go │ └── testdata │ │ ├── absolute.yaml │ │ ├── certs │ │ ├── bad.key │ │ ├── ca.crt │ │ ├── client.crt │ │ └── client.key │ │ ├── connectionprofile-bad.yaml │ │ ├── connectionprofile-uneven.yaml │ │ ├── connectionprofile.yaml │ │ ├── notset.yaml │ │ ├── relative.yaml │ │ └── test.yaml ├── gossip │ ├── mcs.go │ ├── mcs_test.go │ ├── mocks │ │ └── mocks.go │ ├── sa.go │ └── sa_test.go ├── main.go ├── main_test.go ├── mocks │ └── signer.go ├── node │ ├── node.go │ ├── signals.go │ ├── signals_windows.go │ ├── start.go │ ├── start_test.go │ ├── status.go │ └── status_test.go ├── testdata │ └── invalid_plugins │ │ └── invalidplugin.so └── version │ ├── version.go │ └── version_test.go ├── protos ├── .protoroot ├── common │ ├── block.go │ ├── block_test.go │ ├── collection.pb.go │ ├── collection.proto │ ├── common.go │ ├── common.pb.go │ ├── common.proto │ ├── common_test.go │ ├── configtx.go │ ├── configtx.pb.go │ ├── configtx.proto │ ├── configtx_test.go │ ├── configuration.go │ ├── configuration.pb.go │ ├── configuration.proto │ ├── configuration_test.go │ ├── ledger.pb.go │ ├── ledger.proto │ ├── ledger_test.go │ ├── policies.go │ ├── policies.pb.go │ ├── policies.proto │ ├── policies_test.go │ ├── signed_data.go │ └── signed_data_test.go ├── discovery │ ├── extensions.go │ ├── extensions_test.go │ ├── protocol.pb.go │ └── protocol.proto ├── gossip │ ├── compatibility_test.go │ ├── extensions.go │ ├── extensions_test.go │ ├── message.pb.go │ ├── message.proto │ └── message_test.go ├── idemix │ └── idemix.proto ├── ledger │ ├── queryresult │ │ ├── kv_query_result.pb.go │ │ └── kv_query_result.proto │ └── rwset │ │ ├── kvrwset │ │ ├── helper.go │ │ ├── kv_rwset.pb.go │ │ ├── kv_rwset.proto │ │ └── tests │ │ │ ├── .gitattributes │ │ │ ├── kv_rwset_test.go │ │ │ └── kvrwsetV1ProtoBytes │ │ ├── rwset.go │ │ ├── rwset.pb.go │ │ ├── rwset.proto │ │ ├── rwset_test.go │ │ └── tests │ │ ├── .gitattributes │ │ ├── rwsetV1ProtoBytes │ │ └── rwset_test.go ├── msp │ ├── identities.pb.go │ ├── identities.proto │ ├── msp_config.go │ ├── msp_config.pb.go │ ├── msp_config.proto │ ├── msp_principal.go │ ├── msp_principal.pb.go │ └── msp_principal.proto ├── orderer │ ├── ab.pb.go │ ├── ab.proto │ ├── cluster.pb.go │ ├── cluster.proto │ ├── configuration.go │ ├── configuration.pb.go │ ├── configuration.proto │ ├── etcdraft │ │ ├── configuration.go │ │ ├── configuration.pb.go │ │ ├── configuration.proto │ │ ├── configuration_test.go │ │ └── testdata │ │ │ ├── tls-client-1.pem │ │ │ ├── tls-client-2.pem │ │ │ ├── tls-client-3.pem │ │ │ ├── tls-server-1.pem │ │ │ ├── tls-server-2.pem │ │ │ └── tls-server-3.pem │ ├── kafka.pb.go │ └── kafka.proto ├── peer │ ├── admin.pb.go │ ├── admin.proto │ ├── chaincode.go │ ├── chaincode.pb.go │ ├── chaincode.proto │ ├── chaincode_event.pb.go │ ├── chaincode_event.proto │ ├── chaincode_shim.pb.go │ ├── chaincode_shim.proto │ ├── chaincodeunmarshall.go │ ├── configuration.go │ ├── configuration.pb.go │ ├── configuration.proto │ ├── events.pb.go │ ├── events.proto │ ├── lifecycle │ │ ├── lifecycle.pb.go │ │ └── lifecycle.proto │ ├── peer.pb.go │ ├── peer.proto │ ├── proposal.go │ ├── proposal.pb.go │ ├── proposal.proto │ ├── proposal_response.go │ ├── proposal_response.pb.go │ ├── proposal_response.proto │ ├── query.pb.go │ ├── query.proto │ ├── resources.pb.go │ ├── resources.proto │ ├── signed_cc_dep_spec.pb.go │ ├── signed_cc_dep_spec.proto │ ├── transaction.go │ ├── transaction.pb.go │ └── transaction.proto ├── testutils │ └── txtestutils.go ├── token │ ├── expectations.pb.go │ ├── expectations.proto │ ├── prover.pb.go │ ├── prover.proto │ ├── transaction.pb.go │ └── transaction.proto ├── transientstore │ ├── transientstore.pb.go │ └── transientstore.proto └── utils │ ├── blockutils.go │ ├── blockutils_test.go │ ├── chaincodeutils.go │ ├── commonutils.go │ ├── commonutils_test.go │ ├── proputils.go │ ├── proputils_test.go │ ├── txutils.go │ └── txutils_test.go ├── release └── templates │ └── get-docker-images.in ├── release_notes ├── v1.0.0-beta.md ├── v1.0.0-rc1.txt ├── v1.0.0.txt ├── v1.0.1.txt ├── v1.0.2.txt ├── v1.0.3.txt ├── v1.1.0-alpha.txt ├── v1.1.0-preview.txt ├── v1.1.0-rc1.txt ├── v1.2.0-rc1.txt ├── v1.3.0-rc1.txt └── v1.4.0.txt ├── sampleconfig ├── configtx.yaml ├── core.yaml ├── msp │ ├── admincerts │ │ └── admincert.pem │ ├── cacerts │ │ └── cacert.pem │ ├── config.yaml │ ├── keystore │ │ └── key.pem │ ├── signcerts │ │ └── peer.pem │ ├── tlscacerts │ │ └── tlsroot.pem │ └── tlsintermediatecerts │ │ └── tlsintermediate.pem └── orderer.yaml ├── scripts ├── bootstrap.sh ├── changelog.sh ├── check_deps.sh ├── check_license.sh ├── check_spelling.sh ├── check_trailingspaces.sh ├── compile_protos.sh ├── generateHelpDocs.sh ├── goListFiles.sh ├── golinter.sh ├── metrics_doc.sh ├── multiarch.sh ├── pull_build_artifacts.sh └── run-integration-tests.sh ├── settings.gradle ├── test-pyramid.png ├── testingInfo.rst ├── token ├── client │ ├── client.go │ ├── client_suite_test.go │ ├── client_test.go │ ├── config.go │ ├── deliver_client.go │ ├── deliver_client_test.go │ ├── mock │ │ ├── broadcast.go │ │ ├── deliver_client.go │ │ ├── deliver_filtered.go │ │ ├── fabric_tx_submitter.go │ │ ├── identity.go │ │ ├── orderer_client.go │ │ ├── prover.go │ │ ├── prover_client.go │ │ ├── signer_identity.go │ │ └── signing_identity.go │ ├── msp.go │ ├── orderer_client.go │ ├── orderer_client_test.go │ ├── prover.go │ ├── prover_test.go │ ├── tx_submitter.go │ └── tx_submitter_test.go ├── identity.go ├── identity │ ├── identity.go │ ├── identity_test.go │ └── mock │ │ ├── deserializer.go │ │ ├── deserializer_manager.go │ │ ├── identity.go │ │ ├── issuing_validator.go │ │ └── public_info.go ├── ledger │ ├── ledger.go │ └── mock │ │ ├── ledger_manager.go │ │ ├── ledger_reader.go │ │ ├── ledger_writer.go │ │ └── results_iterator.go ├── server │ ├── accesscontrol.go │ ├── accesscontrol_test.go │ ├── capability_checker.go │ ├── ledgermanager.go │ ├── ledgermanager_test.go │ ├── manager.go │ ├── manager_test.go │ ├── marshal.go │ ├── marshal_test.go │ ├── mock │ │ ├── access_control.go │ │ ├── acl_provider.go │ │ ├── capability_checker.go │ │ ├── issuer.go │ │ ├── marshaler.go │ │ ├── signer_identity.go │ │ ├── tms_manager.go │ │ └── transactor.go │ ├── msp.go │ ├── prover.go │ ├── prover_test.go │ ├── server_suite_test.go │ └── tms.go ├── tms │ ├── manager │ │ ├── manager.go │ │ ├── manager_suite_test.go │ │ ├── manager_test.go │ │ ├── policy.go │ │ └── policy_test.go │ ├── plain │ │ ├── compositekeys_test.go │ │ ├── issuer.go │ │ ├── issuer_test.go │ │ ├── ledger.go │ │ ├── ledger_test.go │ │ ├── manager.go │ │ ├── plain_suite_test.go │ │ ├── pool.go │ │ ├── pool_test.go │ │ ├── transactor.go │ │ ├── transactor_test.go │ │ ├── verifier.go │ │ └── verifier_test.go │ └── transactiondata.go └── transaction │ ├── marshalling.go │ ├── mock │ ├── tms_manager.go │ └── tms_tx_processor.go │ ├── processor.go │ ├── processor_test.go │ ├── tms.go │ └── transaction_suite_test.go ├── tox.ini └── unit-test ├── docker-compose.yml └── run.sh /.dockerignore: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright IBM Corp. All Rights Reserved. 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | # 6 | .build 7 | unit-test 8 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.sh text eol=lf 2 | *.go text eol=lf 3 | *.yaml text eol=lf 4 | *.yml text eol=lf 5 | *.md text eol=lf 6 | *.json text eol=lf 7 | *.proto text eol=lf 8 | *.py text eol=lf 9 | *.js text eol=lf 10 | *.txt text eol=lf 11 | LICENSE text eol=lf 12 | -------------------------------------------------------------------------------- /.gitreview: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | [gerrit] 3 | host=gerrit.hyperledger.org 4 | port=29418 5 | project=fabric 6 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | Code of Conduct Guidelines 2 | ========================== 3 | 4 | Please review the Hyperledger [Code of 5 | Conduct](https://wiki.hyperledger.org/community/hyperledger-project-code-of-conduct) 6 | before participating. It is important that we keep things civil. 7 | 8 | Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License. 9 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contributing 2 | 3 | We welcome contributions to the Hyperledger Fabric Project in many forms, and 4 | there's always plenty to do! 5 | 6 | Please visit the 7 | [contributors guide](http://hyperledger-fabric.readthedocs.io/en/latest/CONTRIBUTING.html) in the 8 | docs to learn how to make contributions to this exciting project. 9 | 10 | Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License. 11 | s 12 | -------------------------------------------------------------------------------- /bccsp/factory/opts_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM Corp.2017保留所有权利。 11 | 12 | 根据Apache许可证2.0版(以下简称“许可证”)获得许可; 13 | 除非符合许可证,否则您不能使用此文件。 14 | 您可以在以下网址获得许可证副本: 15 | 16 | http://www.apache.org/licenses/license-2.0 17 | 18 | 除非适用法律要求或书面同意,软件 19 | 根据许可证分发是按“原样”分发的, 20 | 无任何明示或暗示的保证或条件。 21 | 有关管理权限和 22 | 许可证限制。 23 | **/ 24 | 25 | package factory 26 | 27 | import ( 28 | "testing" 29 | 30 | "github.com/stretchr/testify/assert" 31 | ) 32 | 33 | func TestFactoryOptsFactoryName(t *testing.T) { 34 | assert.Equal(t, GetDefaultOpts().FactoryName(), "SW") 35 | } 36 | -------------------------------------------------------------------------------- /bccsp/factory/race_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | //+建立种族 10 | //+build go1.9,linux,cgo go1.10,达尔文,cgo 11 | //+建设!PPC64 12 | 13 | /* 14 | 版权所有IBM公司。保留所有权利。 15 | 16 | SPDX许可证标识符:Apache-2.0 17 | **/ 18 | 19 | package factory 20 | 21 | func init() { 22 | raceEnabled = true 23 | } 24 | -------------------------------------------------------------------------------- /bccsp/idemix/bridge/bridge_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | package bridge_test 16 | 17 | import ( 18 | "testing" 19 | 20 | "github.com/hyperledger/fabric-amcl/amcl" 21 | . "github.com/onsi/ginkgo" 22 | . "github.com/onsi/gomega" 23 | ) 24 | 25 | func TestPlain(t *testing.T) { 26 | RegisterFailHandler(Fail) 27 | RunSpecs(t, "Plain Suite") 28 | } 29 | 30 | //newrandanpanic是一个实用程序测试函数,调用时总是死机 31 | func NewRandPanic() *amcl.RAND { 32 | panic("new rand panic") 33 | } 34 | -------------------------------------------------------------------------------- /bccsp/idemix/bridge/rand.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | package bridge 16 | 17 | import ( 18 | "github.com/hyperledger/fabric-amcl/amcl" 19 | cryptolib "github.com/hyperledger/fabric/idemix" 20 | ) 21 | 22 | //newrandorpanic返回新的amcl prg或panic 23 | func NewRandOrPanic() *amcl.RAND { 24 | rng, err := cryptolib.GetRand() 25 | if err != nil { 26 | panic(err) 27 | } 28 | return rng 29 | } 30 | -------------------------------------------------------------------------------- /bccsp/idemix/idemix_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | */ 14 | 15 | package idemix_test 16 | 17 | import ( 18 | "testing" 19 | 20 | . "github.com/onsi/ginkgo" 21 | . "github.com/onsi/gomega" 22 | ) 23 | 24 | func TestPlain(t *testing.T) { 25 | RegisterFailHandler(Fail) 26 | RunSpecs(t, "Plain Suite") 27 | } 28 | -------------------------------------------------------------------------------- /bccsp/utils/errs.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM Corp.2016保留所有权利。 11 | 12 | 根据Apache许可证2.0版(以下简称“许可证”)获得许可; 13 | 除非符合许可证,否则您不能使用此文件。 14 | 您可以在以下网址获得许可证副本: 15 | 16 | http://www.apache.org/licenses/license-2.0 17 | 18 | 除非适用法律要求或书面同意,软件 19 | 根据许可证分发是按“原样”分发的, 20 | 无任何明示或暗示的保证或条件。 21 | 有关管理权限和 22 | 许可证限制。 23 | **/ 24 | 25 | 26 | package utils 27 | 28 | //errtostring将错误转换为字符串。如果错误为零,则返回字符串“” 29 | func ErrToString(err error) string { 30 | if err != nil { 31 | return err.Error() 32 | } 33 | 34 | return "" 35 | } 36 | -------------------------------------------------------------------------------- /bccsp/utils/slice.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM Corp.2016保留所有权利。 11 | 12 | 根据Apache许可证2.0版(以下简称“许可证”)获得许可; 13 | 除非符合许可证,否则您不能使用此文件。 14 | 您可以在以下网址获得许可证副本: 15 | 16 | http://www.apache.org/licenses/license-2.0 17 | 18 | 除非适用法律要求或书面同意,软件 19 | 根据许可证分发是按“原样”分发的, 20 | 无任何明示或暗示的保证或条件。 21 | 有关管理权限和 22 | 许可证限制。 23 | **/ 24 | 25 | 26 | package utils 27 | 28 | //克隆克隆已传递的切片 29 | func Clone(src []byte) []byte { 30 | clone := make([]byte, len(src)) 31 | copy(clone, src) 32 | 33 | return clone 34 | } 35 | -------------------------------------------------------------------------------- /bccsp/utils/x509.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 11 | 12 | 13 | 除非符合许可证,否则您不能使用此文件。 14 | 您可以在以下网址获得许可证副本: 15 | 16 | http://www.apache.org/licenses/license-2.0 17 | 18 | 除非适用法律要求或书面同意,软件 19 | 根据许可证分发是按“原样”分发的, 20 | 无任何明示或暗示的保证或条件。 21 | 有关管理权限和 22 | 许可证限制。 23 | **/ 24 | 25 | 26 | package utils 27 | 28 | import ( 29 | "crypto/x509" 30 | ) 31 | 32 | //der to x509证书将der转换为x509 33 | func DERToX509Certificate(asn1Data []byte) (*x509.Certificate, error) { 34 | return x509.ParseCertificate(asn1Data) 35 | } 36 | -------------------------------------------------------------------------------- /ci.properties: -------------------------------------------------------------------------------- 1 | GO_VER=1.11.1 2 | -------------------------------------------------------------------------------- /cmd/common/comm/testdata/client/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgJSd74X0TaPasM9Ey 3 | 4DS81fY7CdI1m7COKNyVSjvM/s6hRANCAAR2R3XOqJdFr3ZK0xv1U67jPtpmW+qD 4 | z3TnZacySrpuCP82txGI0NO5emLvy2RJkULpTU6mowFRmpzRbaJ/+0NH 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /cmd/common/comm/testdata/server/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgjF0UIONy0czJh2Ks 3 | VhTeQ3fgkBmpBMdDb9A2dJ5tUWahRANCAASTEG09s7ypUJKUn+lEHxwSLSfp32zQ 4 | sUxaQQC1BS5l00fRwcUrrAIaSgZy2GoQuNZBSAozgRhqsM/hiwkzCD3T 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /cmd/common/signer/testdata/signer/8150cb2d09628ccc89727611ebb736189f6482747eff9b8aaaa27e9a382d2e93_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgiMUviC3wiXZITKuC 3 | dZ3EOjolfC2Buep2zac1orHq/JmhRANCAAQcSjQ/I/Ngs9d/ARFwDH/PJM4bCCvc 4 | 3A6T2/8Cuz2mBQ96otBiwCJcbnV/bQ/B2LcKOhLe4g042x/OAeTLpW4W 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /cmd/common/signer/testdata/signer/broken_private_key: -------------------------------------------------------------------------------- 1 | broken 2 | -------------------------------------------------------------------------------- /cmd/common/signer/testdata/signer/empty_private_key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | -----END PRIVATE KEY----- 3 | -------------------------------------------------------------------------------- /cmd/common/testdata/not_a_yaml.yaml: -------------------------------------------------------------------------------- 1 | dgdgd 2 | dfgdf 3 | gdf 4 | gdfg 5 | dfgdfgdfgf dfgdfgdf -------------------------------------------------------------------------------- /cmd/common/testdata/valid_config/config.yaml: -------------------------------------------------------------------------------- 1 | version: 0 2 | tlsconfig: 3 | certpath: "" 4 | keypath: "" 5 | peercacertpath: "" 6 | timeout: 0s 7 | signerconfig: 8 | mspid: SampleOrg 9 | identitypath: cert.pem 10 | keypath: key.pem 11 | -------------------------------------------------------------------------------- /cmd/discover/main.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package main 17 | 18 | import ( 19 | "os" 20 | 21 | "github.com/hyperledger/fabric/bccsp/factory" 22 | "github.com/hyperledger/fabric/cmd/common" 23 | "github.com/hyperledger/fabric/discovery/cmd" 24 | ) 25 | 26 | func main() { 27 | factory.InitFactories(nil) 28 | cli := common.NewCLI("discover", "Command line client for fabric discovery service") 29 | discovery.AddCommands(cli) 30 | cli.Run(os.Args[1:]) 31 | } 32 | -------------------------------------------------------------------------------- /common/channelconfig/applicationorg_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package channelconfig 17 | 18 | import ( 19 | "testing" 20 | ) 21 | 22 | func TestApplicationOrgInterface(t *testing.T) { 23 | _ = ApplicationOrg(&ApplicationOrgConfig{}) 24 | } 25 | -------------------------------------------------------------------------------- /common/channelconfig/consortiums_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | package channelconfig 16 | 17 | import ( 18 | "testing" 19 | 20 | cb "github.com/hyperledger/fabric/protos/common" 21 | "github.com/stretchr/testify/assert" 22 | ) 23 | 24 | func TestConsortiums(t *testing.T) { 25 | _, err := NewConsortiumsConfig(&cb.ConfigGroup{}, nil) 26 | assert.NoError(t, err) 27 | } 28 | -------------------------------------------------------------------------------- /common/channelconfig/organization_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package channelconfig 17 | 18 | import ( 19 | "testing" 20 | ) 21 | 22 | func TestOrganization(t *testing.T) { 23 | _ = Org(&OrganizationConfig{}) 24 | } 25 | -------------------------------------------------------------------------------- /common/crypto/random_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM Corp.2017保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package crypto 17 | 18 | import ( 19 | "testing" 20 | 21 | "github.com/stretchr/testify/assert" 22 | ) 23 | 24 | func TestGetRandomBytes(t *testing.T) { 25 | _, err := GetRandomBytes(10) 26 | 27 | assert.NoError(t, err, "GetRandomBytes fails") 28 | } 29 | 30 | func TestGetRandomNonce(t *testing.T) { 31 | _, err := GetRandomNonce() 32 | 33 | assert.NoError(t, err, "GetRandomNonce fails") 34 | } 35 | -------------------------------------------------------------------------------- /common/crypto/testdata/badCert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCDCCAa6gAwIBAgIRANLH5Ue5a6tHuzCQtap1BP8wCgYIKoZIzj0EAwIwZzEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xEzARBgNVBAoTCmhybC5pYm0uaWwxFjAUBgNVBAMTDWNhLmhybC5p 5 | EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj 6 | bzEZMBcGA1UEAwwQVXNlcjFAaHJsLmlibS5pbDBZMBMGByqGSM49AgEGCCqGSM49 7 | AwEHA0IABE7fF65KsF0nxNgIBFVA2x/QU0LuAyuTsRaSWc/ycQAuLQfCti5bYp4W 8 | WaQUc5sBaKAmVbFQTm9RhmOhtIz7PL6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNV 9 | HRMBAf8EAjAAMCsGA1UdIwQkMCKAIMjiBsyFZlbO6pRxo7VgoqKhl78Ujd9sdWUk 10 | epB05fodMAoGCCqGSM49BAMCA0gAMEUCIQCiOzbaApF46NVobwh3wqHf8ID1zxja 11 | j23HPXR3FjjFZgIgXLujyDGETptNrELaytjG+dxO3Kzq/SM07K2zPUg4368= 12 | -----END CERTIFICATE----- 13 | -------------------------------------------------------------------------------- /common/deliver/interfaces_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package deliver_test 17 | 18 | import ( 19 | "github.com/hyperledger/fabric/common/ledger/blockledger" 20 | ) 21 | 22 | //go:生成仿冒者-o mock/block\u reader.go-fake name block reader。拦截器 23 | type blockledgerReader interface { 24 | blockledger.Reader 25 | } 26 | 27 | //go:生成仿冒者-o mock/block_iterator.go-fake name block iterator。拦截器 28 | type blockledgerIterator interface { 29 | blockledger.Iterator 30 | } 31 | -------------------------------------------------------------------------------- /common/flogging/httpadmin/httpadmin_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package httpadmin_test 17 | 18 | import ( 19 | "testing" 20 | 21 | . "github.com/onsi/ginkgo" 22 | . "github.com/onsi/gomega" 23 | ) 24 | 25 | func TestHttpadmin(t *testing.T) { 26 | RegisterFailHandler(Fail) 27 | RunSpecs(t, "Httpadmin Suite") 28 | } 29 | -------------------------------------------------------------------------------- /common/grpclogging/testpb/echo.proto: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright IBM Corp. All Rights Reserved. 3 | 4 | SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | syntax = "proto3"; 8 | 9 | option go_package = "github.com/hyperledger/fabric/common/grpclogging/testpb"; 10 | 11 | package testpb; 12 | 13 | message Message { 14 | string message = 1; 15 | int32 sequence = 2; 16 | } 17 | 18 | service EchoService { 19 | rpc Echo(Message) returns (Message); 20 | rpc EchoStream(stream Message) returns (stream Message); 21 | } 22 | -------------------------------------------------------------------------------- /common/grpcmetrics/testpb/echo.proto: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright IBM Corp. All Rights Reserved. 3 | 4 | SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | syntax = "proto3"; 8 | 9 | option go_package = "github.com/hyperledger/fabric/common/grpcmetrics/testpb"; 10 | 11 | package testpb; 12 | 13 | message Message { 14 | string message = 1; 15 | int32 sequence = 2; 16 | } 17 | 18 | service EchoService { 19 | rpc Echo(Message) returns (Message); 20 | rpc EchoStream(stream Message) returns (stream Message); 21 | } 22 | -------------------------------------------------------------------------------- /common/metadata/metadata.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有2016年伦敦证券交易所版权所有。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package metadata 17 | 18 | // 19 | var Version string = "latest" 20 | var CommitSHA string = "development build" 21 | var BaseVersion string = "0.4.14" 22 | var BaseDockerLabel string = "org.hyperledger.fabric" 23 | var DockerNamespace string = "hyperledger" 24 | var BaseDockerNamespace string = "hyperledger" 25 | -------------------------------------------------------------------------------- /common/metrics/cmd/gendoc/.gitignore: -------------------------------------------------------------------------------- 1 | #SPDX-License-Identifier: Apache-2.0 2 | 3 | gendoc 4 | -------------------------------------------------------------------------------- /common/metrics/disabled/disabled_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | */ 14 | 15 | 16 | package disabled_test 17 | 18 | import ( 19 | "testing" 20 | 21 | . "github.com/onsi/ginkgo" 22 | . "github.com/onsi/gomega" 23 | ) 24 | 25 | func TestDisabled(t *testing.T) { 26 | RegisterFailHandler(Fail) 27 | RunSpecs(t, "Disabled Suite") 28 | } 29 | -------------------------------------------------------------------------------- /common/metrics/gendoc/testdata/ignored.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package testdata 17 | 18 | import "github.com/hyperledger/fabric/common/metrics" 19 | 20 | //金多克:忽略 21 | 22 | //因为上面的gendoc:ignore语句,所以文档生成应该忽略这一点。 23 | 24 | var ( 25 | Ignored = metrics.CounterOpts{ 26 | Namespace: "ignored", 27 | Name: "ignored", 28 | } 29 | ) 30 | -------------------------------------------------------------------------------- /common/metrics/internal/namer/namer_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | 13 | **/ 14 | 15 | 16 | package namer_test 17 | 18 | import ( 19 | "testing" 20 | 21 | . "github.com/onsi/ginkgo" 22 | . "github.com/onsi/gomega" 23 | ) 24 | 25 | func TestNamer(t *testing.T) { 26 | RegisterFailHandler(Fail) 27 | RunSpecs(t, "Namer Suite") 28 | } 29 | -------------------------------------------------------------------------------- /common/metrics/metrics_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | */ 14 | 15 | 16 | package metrics_test 17 | 18 | import ( 19 | "testing" 20 | 21 | . "github.com/onsi/ginkgo" 22 | . "github.com/onsi/gomega" 23 | ) 24 | 25 | func TestMetrics(t *testing.T) { 26 | RegisterFailHandler(Fail) 27 | RunSpecs(t, "Metrics Suite") 28 | } 29 | 30 | // 31 | // 32 | // 33 | // 34 | -------------------------------------------------------------------------------- /common/metrics/prometheus/prometheus_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | */ 14 | 15 | 16 | package prometheus_test 17 | 18 | import ( 19 | "testing" 20 | 21 | . "github.com/onsi/ginkgo" 22 | . "github.com/onsi/gomega" 23 | ) 24 | 25 | func TestPrometheus(t *testing.T) { 26 | RegisterFailHandler(Fail) 27 | RunSpecs(t, "Prometheus Suite") 28 | } 29 | -------------------------------------------------------------------------------- /common/metrics/statsd/goruntime/goruntime_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | */ 14 | 15 | 16 | package goruntime_test 17 | 18 | import ( 19 | "testing" 20 | 21 | . "github.com/onsi/ginkgo" 22 | . "github.com/onsi/gomega" 23 | ) 24 | 25 | func TestRuntime(t *testing.T) { 26 | RegisterFailHandler(Fail) 27 | RunSpecs(t, "Runtime Suite") 28 | } 29 | -------------------------------------------------------------------------------- /common/metrics/statsd/statsd_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package statsd_test 17 | 18 | import ( 19 | "testing" 20 | 21 | . "github.com/onsi/ginkgo" 22 | . "github.com/onsi/gomega" 23 | ) 24 | 25 | func TestStatsd(t *testing.T) { 26 | RegisterFailHandler(Fail) 27 | RunSpecs(t, "Statsd Suite") 28 | } 29 | -------------------------------------------------------------------------------- /common/mocks/config/channel_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package config 17 | 18 | import ( 19 | "testing" 20 | 21 | "github.com/hyperledger/fabric/common/channelconfig" 22 | ) 23 | 24 | func TestChannelConfigInterface(t *testing.T) { 25 | _ = channelconfig.Channel(&Channel{}) 26 | } 27 | -------------------------------------------------------------------------------- /common/mocks/config/orderer_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package config 17 | 18 | import ( 19 | "testing" 20 | 21 | "github.com/hyperledger/fabric/common/channelconfig" 22 | ) 23 | 24 | func TestOrdererConfigInterface(t *testing.T) { 25 | _ = channelconfig.Orderer(&Orderer{}) 26 | } 27 | -------------------------------------------------------------------------------- /common/mocks/config/resources_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM Corp.2016保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | */ 14 | 15 | 16 | package config 17 | 18 | import ( 19 | "testing" 20 | 21 | "github.com/hyperledger/fabric/common/channelconfig" 22 | ) 23 | 24 | func TestConfigtxResourcesInterface(t *testing.T) { 25 | _ = channelconfig.Resources(&Resources{}) 26 | } 27 | -------------------------------------------------------------------------------- /common/mocks/configtx/configtx_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | */ 14 | 15 | 16 | package configtx 17 | 18 | import ( 19 | "testing" 20 | 21 | "github.com/hyperledger/fabric/common/configtx" 22 | ) 23 | 24 | func TestConfigtxValidatorInterface(t *testing.T) { 25 | _ = configtx.Validator(&Validator{}) 26 | } 27 | -------------------------------------------------------------------------------- /common/tools/cryptogen/msp/msp_internal_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package msp 17 | 18 | var ExportConfig = exportConfig 19 | -------------------------------------------------------------------------------- /common/util/net.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package util 17 | 18 | import ( 19 | "context" 20 | 21 | "google.golang.org/grpc/peer" 22 | ) 23 | 24 | func ExtractRemoteAddress(ctx context.Context) string { 25 | var remoteAddress string 26 | p, ok := peer.FromContext(ctx) 27 | if !ok { 28 | return "" 29 | } 30 | if address := p.Addr; address != nil { 31 | remoteAddress = address.String() 32 | } 33 | return remoteAddress 34 | } 35 | -------------------------------------------------------------------------------- /core/aclmgmt/aclmgmt.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package aclmgmt 17 | 18 | import ( 19 | "github.com/hyperledger/fabric/common/flogging" 20 | ) 21 | 22 | var aclLogger = flogging.MustGetLogger("aclmgmt") 23 | 24 | type ACLProvider interface { 25 | //checkacl使用 26 | //IDFIN。IDinfo是一个对象,如SignedProposal,其中 27 | //可以提取ID以根据策略进行测试 28 | CheckACL(resName string, channelID string, idinfo interface{}) error 29 | } 30 | -------------------------------------------------------------------------------- /core/cclifecycle/mocks/life_cycle_change_listener.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | //Code generated by mockery v1.0.0. 不要编辑。 10 | package mocks 11 | 12 | import chaincode "github.com/hyperledger/fabric/common/chaincode" 13 | import mock "github.com/stretchr/testify/mock" 14 | 15 | // 16 | type LifeCycleChangeListener struct { 17 | mock.Mock 18 | } 19 | 20 | //LifecycleChangeListener提供具有给定字段的模拟函数:channel、chaincodes 21 | func (_m *LifeCycleChangeListener) LifeCycleChangeListener(channel string, chaincodes chaincode.MetadataSet) { 22 | _m.Called(channel, chaincodes) 23 | } 24 | -------------------------------------------------------------------------------- /core/chaincode/persistence/testdata/bad-metadata.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/chaincode/persistence/testdata/bad-metadata.tar.gz -------------------------------------------------------------------------------- /core/chaincode/persistence/testdata/corrupted-header.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/chaincode/persistence/testdata/corrupted-header.tar.gz -------------------------------------------------------------------------------- /core/chaincode/persistence/testdata/corrupted-package.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/chaincode/persistence/testdata/corrupted-package.tar.gz -------------------------------------------------------------------------------- /core/chaincode/persistence/testdata/good-package.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/chaincode/persistence/testdata/good-package.tar.gz -------------------------------------------------------------------------------- /core/chaincode/persistence/testdata/missing-codepackage.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/chaincode/persistence/testdata/missing-codepackage.tar.gz -------------------------------------------------------------------------------- /core/chaincode/persistence/testdata/missing-metadata.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/chaincode/persistence/testdata/missing-metadata.tar.gz -------------------------------------------------------------------------------- /core/chaincode/persistence/testdata/non-regular-file.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/chaincode/persistence/testdata/non-regular-file.tar.gz -------------------------------------------------------------------------------- /core/chaincode/persistence/testdata/too-many-files.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/chaincode/persistence/testdata/too-many-files.tar.gz -------------------------------------------------------------------------------- /core/chaincode/platforms/car/testdata/org.hyperledger.chaincode.example02-0.1-SNAPSHOT.car: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/chaincode/platforms/car/testdata/org.hyperledger.chaincode.example02-0.1-SNAPSHOT.car -------------------------------------------------------------------------------- /core/chaincode/platforms/golang/testdata/src/chaincodes/AutoVendor/directdep/core.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | *版权所有Greg Haskins保留所有权利 11 | * 12 | *SPDX许可证标识符:Apache-2.0 13 | * 14 | *有关详细信息,请参阅github.com/hyperledger/fabric/test/chaincodes/autovendor/chaincode/main.go。 15 | **/ 16 | 17 | package directdep 18 | 19 | import ( 20 | "chaincodes/AutoVendor/indirectdep" 21 | ) 22 | 23 | func PointlessFunction() { 24 | //授权我们间接依赖 25 | indirectdep.PointlessFunction() 26 | } 27 | -------------------------------------------------------------------------------- /core/chaincode/platforms/golang/testdata/src/chaincodes/AutoVendor/indirectdep/core.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | *版权所有Greg Haskins保留所有权利 11 | * 12 | *SPDX许可证标识符:Apache-2.0 13 | * 14 | *有关详细信息,请参阅github.com/hyperledger/fabric/test/chaincodes/autovendor/chaincode/main.go。 15 | **/ 16 | 17 | package indirectdep 18 | 19 | import "fmt" 20 | 21 | func PointlessFunction() { 22 | fmt.Printf("Successfully invoked pointless function\n") 23 | } 24 | -------------------------------------------------------------------------------- /core/chaincode/platforms/golang/testdata/src/chaincodes/BadMetadataIgnoreHiddenFile/META-INF/.hiddenfile: -------------------------------------------------------------------------------- 1 | This test file has a hidden filename, it should be ignored during golang chaincode packaging tests. 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/golang/testdata/src/chaincodes/BadMetadataInvalidIndex/META-INF/statedb/couchdb/indexes/bad.json: -------------------------------------------------------------------------------- 1 | This test file is expected to contain a json formatted couchdb index, but does not. It should fail golang chaincode packaging tests. 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/golang/testdata/src/chaincodes/BadMetadataUnexpectedFolderContent/META-INF/unsupported_metadata_ocation.json: -------------------------------------------------------------------------------- 1 | This test file is located at an unexpected metadata location under META-INF. It should fail golang chaincode packaging tests. 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/java/testdata/gradle/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.github.johnrengelman.shadow' version '2.0.3' 3 | id 'java' 4 | } 5 | 6 | group 'org.hyperledger.fabric-chaincode-java' 7 | version '1.0-SNAPSHOT' 8 | 9 | sourceCompatibility = 1.8 10 | 11 | repositories { 12 | mavenLocal() 13 | mavenCentral() 14 | } 15 | 16 | dependencies { 17 | compile group: 'org.hyperledger.fabric-chaincode-java', name: 'fabric-chaincode-shim', version: '1.3.0-SNAPSHOT' 18 | testCompile group: 'junit', name: 'junit', version: '4.12' 19 | } 20 | 21 | shadowJar { 22 | baseName = 'chaincode' 23 | version = null 24 | classifier = null 25 | 26 | manifest { 27 | attributes 'Main-Class': 'example.ExampleCC' 28 | } 29 | } -------------------------------------------------------------------------------- /core/chaincode/platforms/java/testdata/gradle/pom.xml: -------------------------------------------------------------------------------- 1 | test maven build file -------------------------------------------------------------------------------- /core/chaincode/platforms/java/testdata/gradle/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'fabric-chaincode-example-gradle' -------------------------------------------------------------------------------- /core/chaincode/platforms/java/testdata/gradle/src/main/java/example/examplecc.class: -------------------------------------------------------------------------------- 1 | test class file -------------------------------------------------------------------------------- /core/chaincode/platforms/java/testdata/gradle/target/example/ExampleCC.class: -------------------------------------------------------------------------------- 1 | test class file in target folder -------------------------------------------------------------------------------- /core/chaincode/platforms/java/testdata/gradle/target/example/ExampleCC.java: -------------------------------------------------------------------------------- 1 | test java file in target folder -------------------------------------------------------------------------------- /core/chaincode/platforms/util/hashtestfiles1/a.txt: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/util/hashtestfiles1/a/a1.txt: -------------------------------------------------------------------------------- 1 | a1 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/util/hashtestfiles1/a/a2.txt: -------------------------------------------------------------------------------- 1 | a2 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/util/hashtestfiles1/b.txt: -------------------------------------------------------------------------------- 1 | b 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/util/hashtestfiles1/b/c.txt: -------------------------------------------------------------------------------- 1 | c 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/util/hashtestfiles1/b/c/c1.txt: -------------------------------------------------------------------------------- 1 | c1 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/util/hashtestfiles2/x.txt: -------------------------------------------------------------------------------- 1 | x 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/util/hashtestfiles2/x/z.txt: -------------------------------------------------------------------------------- 1 | z 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/util/hashtestfiles2/x/z/z1.txt: -------------------------------------------------------------------------------- 1 | z1 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/util/hashtestfiles2/y.txt: -------------------------------------------------------------------------------- 1 | y 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/util/hashtestfiles2/y/y1.txt: -------------------------------------------------------------------------------- 1 | y1 2 | -------------------------------------------------------------------------------- /core/chaincode/platforms/util/hashtestfiles2/y/y2.txt: -------------------------------------------------------------------------------- 1 | y2 2 | -------------------------------------------------------------------------------- /core/comm/config_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package comm 17 | 18 | import ( 19 | "testing" 20 | 21 | "github.com/stretchr/testify/assert" 22 | ) 23 | 24 | func TestConfig(t *testing.T) { 25 | t.Parallel() 26 | 27 | serverOptions := ServerKeepaliveOptions(nil) 28 | assert.NotNil(t, serverOptions) 29 | 30 | clientOptions := ClientKeepaliveOptions(nil) 31 | assert.NotNil(t, clientOptions) 32 | } 33 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-child1-client1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIJBozVe9EJv6DB7M2AGSu+ZDu2LqAxlPPTb/5+KPsw2CoAoGCCqGSM49 3 | AwEHoUQDQgAE/QL3hoUhq1GRKMImbgVL/UcuxRBry8FJHd8ECqQw+yyGSy2kHDjn 4 | HCwU/Tp8ydVQ/tF0aOyW21YKk2a+4ZqHnw== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-child1-client2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEILjb2qiEyJjGw288Ab8rUkez9u5mswhThQOYuHl7676voAoGCCqGSM49 3 | AwEHoUQDQgAEy7Ovrfz05ZfpJCoePUkToT8+cepoLpAWw4JZnGGWxa1usKZ0+XIy 4 | SifcBT+XDwQE2afuTnYrEfDt3bMjB9iaOQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-child1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEICE+hiFM1+dMGhAHoD7vSJve49PhakF91K/j1jDqiAxSoAoGCCqGSM49 3 | AwEHoUQDQgAEKouFmc+ZqdYq0q3GfFaYGEft4/Sr8nSbpwBY7LVM8tyjsKpouk/C 4 | /NOoQZoCG56xt8ShR7JUSRyOPrrZNJULVA== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-child1-server1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIO/cw3SmIcO8X7U/hY5TUaX8Ueay5kcOGI+YQglHalrNoAoGCCqGSM49 3 | AwEHoUQDQgAEesGNd7pbexjj3XhFX524m2g1JIqViiIEmtrutXJEkuMk2uBIt8pg 4 | DQA0tZrtGa2CSLFbA3bSRemKmNt9+WtMoA== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-child1-server2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEILcrnLMw3iSZlo0ggEQtzSIGEhR2ctJPu5IRQ1lYc50ZoAoGCCqGSM49 3 | AwEHoUQDQgAExvDBanuS7UbDId1uxGZg8gXJoM/oAmWlALlehFeIwJ8HgJtyMZT5 4 | BnpXflB/2OsPNYOcKId2pFU7F67eRX91vA== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-child2-client1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIKR2IrzSVU6ex+zRO3SvzPkx6XbxO9XmHC0yGvR6rNtRoAoGCCqGSM49 3 | AwEHoUQDQgAE8JHPuEfKQ0tUCi60d0NKjKuWq6ftGGfOcr7ySx2KWjUjdynrCt1F 4 | SQAZRRW2GPzm2rVa+NOFIY2t4m+3Uiad9g== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-child2-client2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIE7M2bia31j6vyT1/tdzsWCWXeoGBh1DGJXtDf9VlvPWoAoGCCqGSM49 3 | AwEHoUQDQgAEiCM9QOndq5kCYEoDXPzg7X0BEkRxqdNUljyry9yMrp5jGZomNDh7 4 | gan/86px0Fywly0b9VymeUDZMdmCpqgwng== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-child2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIDCQcN4pwQ70xDntA3y8JroGqoR1BySF5VM9kwIMtImvoAoGCCqGSM49 3 | AwEHoUQDQgAEOLDFzWG32T8b86FdpN9M+8FJzVgVDkgAjpYHI1ZMuN5HiJmHtOF+ 4 | yqgW+DdCq89AcCATIapWJfQfAxYt1YYhUA== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-child2-server1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIBY3frDJGPXYOVq1aYgsarUkW5Gnwnh9EjdKUo55wAfKoAoGCCqGSM49 3 | AwEHoUQDQgAERcGTn+HM6w9i2IzOYzCuAUocgYhsNfqMKfWrVWwl2VmmbrD05dsO 4 | hbGbUm8LKoVkm0xQy7iKGYhsju74dZV/Yw== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-child2-server2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIKfddaKjLtPaEUaXqK7UNvKntDEqUKWDFj+vLp6r2AQyoAoGCCqGSM49 3 | AwEHoUQDQgAEXHmhRwQoirXEXv2ZM61I4q6qzB2liXhn2E7KmDftitMUUDALm5Kh 4 | htzw1c7sBbqpFa9M1DjXYWZxh5KdKVjAtA== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-client1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEINVHep4/z6iPa151Ipp4MmCb1l/VKkY3vuMfUQf3LhQboAoGCCqGSM49 3 | AwEHoUQDQgAEcE6hZ7muszSi5wXIVKPdIuLYPTIxQxj+jekPRfFnJF/RJKM0Nj3T 4 | Bk9spwCHwu1t3REyobjaZcFQk0y32Pje5A== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-client2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIHyMVchnq8AejNfFrJ21w2xpeBFUZngtIXYppETD63htoAoGCCqGSM49 3 | AwEHoUQDQgAE9gBkbcasXNhSq7tl5xZFdhyjQgjZmdwkPaDRor6+o+71IY2IoEXy 4 | KGO81IFIPyp5ll3fIuOmCSfPE7jyKuYq/g== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEINWROTDvcM6Li142MO4d71das6/qKlkPBEaVWvVj+kB2oAoGCCqGSM49 3 | AwEHoUQDQgAEVOI+oAABPl+iRsCcGq81WbXap2L1r432T5gbzUNKYRvVsyFFYmdO 4 | 8ql8uDi4UxSY64eaeRFTuxdcsTG7M5K2yQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-server1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIAkkp8rbeZ7rFXOFai94Bhnnli2ziX4eJ2jDMX0urCAxoAoGCCqGSM49 3 | AwEHoUQDQgAEd0zitPjYjZnOMpL/Up1XFb+O0gLsr1Oe+O+ycZJ5UT3qRA2UzNoU 4 | aUDAwkOV4ZY94c1iWe6cAZcILARyyhWWDQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org1-server2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIDXcyUCV8EvKQZZzIZBkXehN/7lapE8iqkvTGI7Xy+GpoAoGCCqGSM49 3 | AwEHoUQDQgAEh4rNIwJfqstz4PYgjOCOB+2N7Ibs9j4Itqluq+up4SiWotDFUSMO 4 | tuj5nUZPSO5CMWduUDrMfKljgXa1Nh9dyQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-child1-client1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIHDbB8rcNWgpnvjw3rGb1vRjpz344/RGhM16L30q22h0oAoGCCqGSM49 3 | AwEHoUQDQgAE2unUgbEwZCAX1KEod3okX+hiCbhZSUKPQsWUdflJUeUNs+QgX3cK 4 | P3cJny9Cz/QwK6W7tHnjjTduTqS1/WYOdQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-child1-client2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEINs92HUGXl6MamBY5XSOUwkO+eNvwtt/YWWk+6V1iUmzoAoGCCqGSM49 3 | AwEHoUQDQgAEuBHPafPq0OgHhw1vR6pC1enlQ6JoY/1EDxI4fbYJKGTJ9C/1tacZ 4 | b7H0QZpfaZYF5CVx4+kJQLhT0PiP8z94nQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-child1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEINsFs+zWVWrvjmSwbAJ1xry93NOCnjm8hzV4vG/xSRnmoAoGCCqGSM49 3 | AwEHoUQDQgAElwjnf54pbbp8BqWNZfMoqRzg8A101sYcpx/hCu5IMAcYX+UAnh3n 4 | IzthY38J2f27sBWf/JplAxR/9CB2rgdGJg== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-child1-server1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIMYv+XGyXrooJQl5c3afeWp3oOz4wgK2vhj+5+mZQpXuoAoGCCqGSM49 3 | AwEHoUQDQgAEjA9jcgNnm3xn1LBgwtrJYlIVir/ZijyuiiBf5Q+UgVRV1/5PI1Ho 4 | DzJfOPZbIvof2Dth66xyN4iqzHdrG+qLrQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-child1-server2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIAwiG2fPNeYbhbRXSVKdYuHpcFGFvGFVHMs6wWrGL4FGoAoGCCqGSM49 3 | AwEHoUQDQgAE+A9ZDKH/C0rGcb+iRWnpuqFny0EZ67Z0SifnOoeBQW5c4QYcxLqM 4 | WG8Rg3YpG8uNa5OOuZpAfowgDUrUisVP7g== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-child2-client1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIIDbVu1RHsoAOZI302qdTunHbTvHeeA/7U9TOeKvsVdXoAoGCCqGSM49 3 | AwEHoUQDQgAE51qXXc+pm85TxTA4b6/cOq4hYHWqHQMcVDYfSs3VUehFrUhx6vU0 4 | hXQOR4/RD+z8mfjzhl965kQTd/LvGoMm3w== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-child2-client2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIHU767dhj0UVA9wYzUarAq1kyJhnNFo8C0BCfVk1wGeZoAoGCCqGSM49 3 | AwEHoUQDQgAE/aq3uqIwzf1N9nCtA6KXyJdBKY+7NZApuS1RQU9TVbcld0E5pfuv 4 | zCSP3XAccj9TmhgdAMpZVorJJEnaQpJQEg== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-child2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIBMR8FdTgqe7DdIjk5jMoPVAYfMHOGoaG61SlUnYPa7xoAoGCCqGSM49 3 | AwEHoUQDQgAEv9uf0HFbsWIX97AyUjsyDTUcjd5G95Rf8I39Ms+TUBU1cGEZCad3 4 | DVLWJ33jAyKdFgdDFg8IUtCVaumuuKb55w== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-child2-server1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIPLV9Mc8EWRPXOcR/znEP8ArJ9YidRD3iJhJU8KrlMH1oAoGCCqGSM49 3 | AwEHoUQDQgAEdl9JCEyvH/euk9lgxahR69pBhc7QOJNI8gzYA9cp5kUuv4PHsB7M 4 | XxP9JyHAOH+tKtz0M9px6R7OW2j1t0aV9A== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-child2-server2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIDkRdqR6KlHE591+uXrdwgpy2Q5js1y2ZmIwEemxxTTzoAoGCCqGSM49 3 | AwEHoUQDQgAE52UGklgTNeIxMzi2+EYPO6Nn5o6Dydk6jdMHFaXMk1PRSWKfYLyb 4 | hd76vmkr8PGGO3JYqYXdRmqQFsrdkl1dSQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-client1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIPdDp1kovQWJfqmgQZS9rf37rz1eqGAUA7dQNDVKGYRSoAoGCCqGSM49 3 | AwEHoUQDQgAE6mJeETYw819h3UmPUxaW7rDtPXKKsP2Gp5X5rK+0u5muwDPSOCkE 4 | fKiNi8xZ4e4WkSJAGU+RH6JcwJMoaY6ZtA== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-client2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEINB0/N4Wr4sVonDsUMSN3Sd+QocL0SqBBgxofQAfaV9loAoGCCqGSM49 3 | AwEHoUQDQgAEeIibUIxMR6YHufSMqpvqf1eVYXPoBmGbNj110tgJo1JIZnQ1FCmZ 4 | Wv75Xm7aWaoScGei3FNFPDbe8zC9nmjnOg== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEICPfzizCmGyTIDe67doDZQB3SbyY34AjAvC5OXAchuwqoAoGCCqGSM49 3 | AwEHoUQDQgAE5pwa9E3owGR7GHtxI7yaABwFFH45F/yK+HMlVyYKzpzsqN/Z9R+p 4 | ypX8pLuZREO1UuKMe1meREfXBdx7ttFDNg== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-server1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIIDmfSa1A3Eo6CARnAsi7VN4IAQG4/VHlv/IYjGr0B+QoAoGCCqGSM49 3 | AwEHoUQDQgAEeAf5bjlrt7TNLonFS6VJORMKYpNEqrnp1qFOmOPxI2usqPBSByGZ 4 | pf9lmDgKONOScUcik3s2kUYQMyT8CEK4pA== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/certs/Org2-server2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIJ+7RmXw+7s3675BKDhzXlqXSeUibOdW5fBafpccpu/loAoGCCqGSM49 3 | AwEHoUQDQgAEI6llfo4K71mICymm2euImZEwNWnEDDLxxNogPnfDoLqSCZeZlIPZ 4 | qktz2ZsZLVEVCBbkEwMJl08Axn5vhnCLGQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/dynamic_cert_update/localhost/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIByjCCAXCgAwIBAgIQQqYFM6okF534DLOXLZ17kDAKBggqhkjOPQQDAjBYMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzENMAsGA1UEChMET3JnMTENMAsGA1UEAxMET3JnMTAeFw0xODA4MjQx 5 | MjI4MzdaFw0yODA4MjExMjI4MzdaMBIxEDAOBgNVBAoTB0FjbWUgQ28wWTATBgcq 6 | hkjOPQIBBggqhkjOPQMBBwNCAAR7MhenFq9pBPcrLAFuN5bzunQxDVDvFexBdFNE 7 | bLX8N+bv9KNz7pii25DFbmdXwZGmyNK9cbG8aXmuvYuTYPGMo2IwYDAOBgNVHQ8B 8 | Af8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAPBgNV 9 | HSMECDAGgAQBAgMEMBoGA1UdEQQTMBGCCWxvY2FsaG9zdIcEfwAAATAKBggqhkjO 10 | PQQDAgNIADBFAiEA8YTUfdgoxmYBdXOGLFFZvetRTK6WyheR0q6H2/RynLACIEvm 11 | agXnShXJ2Eulixz1VWO650ceFFbKjPAwBTg+8k3Y 12 | -----END CERTIFICATE----- 13 | -------------------------------------------------------------------------------- /core/comm/testdata/dynamic_cert_update/localhost/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIDjlxlcvpDCTvylm8qZ+P6fS3lS0cLA3Zwrak0n0AaJBoAoGCCqGSM49 3 | AwEHoUQDQgAEezIXpxavaQT3KywBbjeW87p0MQ1Q7xXsQXRTRGy1/Dfm7/Sjc+6Y 4 | otuQxW5nV8GRpsjSvXGxvGl5rr2Lk2DxjA== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/dynamic_cert_update/notlocalhost/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIBxzCCAW6gAwIBAgIRAOUuxEmakkWMgxvyGt0J5MkwCgYIKoZIzj0EAwIwWDEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xDTALBgNVBAoTBE9yZzExDTALBgNVBAMTBE9yZzEwHhcNMTgwODI0 5 | MTIzMDUxWhcNMjgwODIxMTIzMDUxWjASMRAwDgYDVQQKEwdBY21lIENvMFkwEwYH 6 | KoZIzj0CAQYIKoZIzj0DAQcDQgAEishT7ve8nUzkCWBgJQ7AksWNSzJOuJ5ROmjt 7 | zeIzVpNnwrNCvoxEVvAcp4y6JiNy1WoHLG2EBIbST62GAc/emqNfMF0wDgYDVR0P 8 | AQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwDwYD 9 | VR0jBAgwBoAEAQIDBDAXBgNVHREEEDAOggxub3Rsb2NhbGhvc3QwCgYIKoZIzj0E 10 | AwIDRwAwRAIgD233Tr6lLlBLgretKA5TGr/VL4ftlwtD4a5w95FyiFACID7z9CrP 11 | q5+UgSM1KXrhRY/CSntG9Q9SVkBb7PlenQHi 12 | -----END CERTIFICATE----- 13 | 14 | -------------------------------------------------------------------------------- /core/comm/testdata/dynamic_cert_update/notlocalhost/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIP+PmKQn03BMTJ6MgQqKTPKKsoeiycMa2GJy/HWk4/AioAoGCCqGSM49 3 | AwEHoUQDQgAEishT7ve8nUzkCWBgJQ7AksWNSzJOuJ5ROmjtzeIzVpNnwrNCvoxE 4 | VvAcp4y6JiNy1WoHLG2EBIbST62GAc/emg== 5 | -----END EC PRIVATE KEY----- 6 | 7 | -------------------------------------------------------------------------------- /core/comm/testdata/grpc/generate.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | //+构建忽略 17 | 18 | //go:generate protoc--proto_path=$go path/src/github.com/hyperledger/fabric/core/comm/testdata/grpc--go_out=plugins=grpc:$go path/src test.proto 19 | 20 | package grpc 21 | -------------------------------------------------------------------------------- /core/comm/testdata/grpc/test.proto: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright IBM Corp. All Rights Reserved. 3 | 4 | SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | syntax = "proto3"; 8 | 9 | option go_package = "github.com/hyperledger/fabric/core/comm/testdata/grpc"; 10 | 11 | message Empty {} 12 | 13 | message Echo { 14 | bytes payload = 1; 15 | } 16 | 17 | service TestService { 18 | rpc EmptyCall(Empty) returns (Empty); 19 | } 20 | 21 | service EmptyService { 22 | rpc EmptyCall(Empty) returns (Empty); 23 | rpc EmptyStream(stream Empty) returns (stream Empty); 24 | } 25 | 26 | service EchoService { 27 | rpc EchoCall(Echo) returns (Echo); 28 | } 29 | -------------------------------------------------------------------------------- /core/comm/testdata/impersonation/orgA/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIAkkp8rbeZ7rFXOFai94Bhnnli2ziX4eJ2jDMX0urCAxoAoGCCqGSM49 3 | AwEHoUQDQgAEd0zitPjYjZnOMpL/Up1XFb+O0gLsr1Oe+O+ycZJ5UT3qRA2UzNoU 4 | aUDAwkOV4ZY94c1iWe6cAZcILARyyhWWDQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/impersonation/orgB/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIIDmfSa1A3Eo6CARnAsi7VN4IAQG4/VHlv/IYjGr0B+QoAoGCCqGSM49 3 | AwEHoUQDQgAEeAf5bjlrt7TNLonFS6VJORMKYpNEqrnp1qFOmOPxI2usqPBSByGZ 4 | pf9lmDgKONOScUcik3s2kUYQMyT8CEK4pA== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/comm/testdata/prime256v1-openssl-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PARAMETERS----- 2 | BggqhkjOPQMBBw== 3 | -----END EC PARAMETERS----- 4 | -----BEGIN EC PRIVATE KEY----- 5 | MHcCAQEEIM2rUTflEQ11m5g5yEm2Cer2yI+ziccl1NbSRVh3GUR0oAoGCCqGSM49 6 | AwEHoUQDQgAEu2FEZVSr30Afey6dwcypeg5P+BuYx5JSYdG0/KJIBjWKnzYo7FEm 7 | gMir7GbNh4pqA8KFrJZkPuxMgnEJBZTv+w== 8 | -----END EC PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /core/container/util/testdata/BadMetadataInvalidIndex/META-INF/statedb/couchdb/indexes/bad.json: -------------------------------------------------------------------------------- 1 | This test file is expected to contain a json formatted couchdb index, but does not. It should fail golang chaincode packaging tests. 2 | -------------------------------------------------------------------------------- /core/container/util/testdata/BadMetadataUnexpectedFolderContent/META-INF/unsupported_metadata_location.json: -------------------------------------------------------------------------------- 1 | This test file is located at an unexpected metadata location under META-INF. It should fail golang chaincode packaging tests. 2 | -------------------------------------------------------------------------------- /core/container/util/testdata/BadMetadataUnexpectedFolderContent/main.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package main 17 | -------------------------------------------------------------------------------- /core/container/util/testdata/sourcefiles/META-INF/.hiddenfile: -------------------------------------------------------------------------------- 1 | # this is a hidden file 2 | -------------------------------------------------------------------------------- /core/container/util/testdata/sourcefiles/META-INF/statedb/couchdb/indexes/indexOwner.json: -------------------------------------------------------------------------------- 1 | {"index":{"fields":["docType","owner"]},"ddoc":"indexOwnerDoc", "name":"indexOwner","type":"json"} 2 | -------------------------------------------------------------------------------- /core/container/util/testdata/sourcefiles/artifact.xml: -------------------------------------------------------------------------------- 1 | 6 | true 7 | -------------------------------------------------------------------------------- /core/container/util/testdata/sourcefiles/src/Hello.class: -------------------------------------------------------------------------------- 1 | # This is a file that should not be included in java packages 2 | -------------------------------------------------------------------------------- /core/container/util/testdata/sourcefiles/src/Hello.java: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright IBM Corp. All Rights Reserved. 3 | 4 | SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | public class Hello { 8 | public static void main(String []args) { 9 | System.out.println("Hello"); 10 | System.exit(0); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /core/container/util/testdata/sourcefiles/src/main.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package main 17 | -------------------------------------------------------------------------------- /core/deliverservice/testdata/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg4fKabn/wDrH9CNFt 3 | p41HuWqRZEalrLk0mwkVt42dCWahRANCAASyPS7GHgSfNsvB8X5d8WT291Z1AG+I 4 | e5OpkUtI4Cmqq4lTUz+ba1f22EftkP8AsvO3NV6EBPsTNnUgqwORk4Lu 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/handlers/decoration/decorator/decorator_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package decorator 17 | 18 | import ( 19 | "testing" 20 | 21 | "github.com/hyperledger/fabric/protos/peer" 22 | "github.com/stretchr/testify/assert" 23 | ) 24 | 25 | func TestDecorator(t *testing.T) { 26 | dec := NewDecorator() 27 | in := &peer.ChaincodeInput{ 28 | Args: [][]byte{{1, 2, 3}}, 29 | } 30 | out := dec.Decorate(nil, in) 31 | assert.Equal(t, in, out) 32 | } 33 | -------------------------------------------------------------------------------- /core/handlers/decoration/plugin/decorator_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM Corp,SecureKey Technologies Inc.保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package main 17 | 18 | import ( 19 | "testing" 20 | 21 | "github.com/hyperledger/fabric/protos/peer" 22 | "github.com/stretchr/testify/assert" 23 | ) 24 | 25 | func TestDecorator(t *testing.T) { 26 | dec := NewDecorator() 27 | in := &peer.ChaincodeInput{ 28 | Args: [][]byte{{1, 2, 3}}, 29 | } 30 | out := dec.Decorate(nil, in) 31 | assert.Equal(t, in, out) 32 | } 33 | -------------------------------------------------------------------------------- /core/handlers/library/race_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | //+建立种族 10 | //+build go1.9,linux,cgo go1.10,达尔文,cgo 11 | //+建设!PPC64 12 | 13 | /* 14 | 版权所有IBM公司。保留所有权利。 15 | 16 | SPDX许可证标识符:Apache-2.0 17 | **/ 18 | 19 | package library 20 | 21 | func init() { 22 | raceEnabled = true 23 | } 24 | -------------------------------------------------------------------------------- /core/ledger/customtx/test_export.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package customtx 17 | 18 | //initializetestenv初始化用于测试的自定义Tx处理器 19 | func InitializeTestEnv(processors Processors) { 20 | initialize(processors) 21 | } 22 | -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/.gitignore: -------------------------------------------------------------------------------- 1 | #SPDX-License-Identifier: Apache-2.0 2 | 3 | # level db snapshot contains '.log' files 4 | !**/*.log -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/chains/chains/ledger1/blockfile_000000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/chains/chains/ledger1/blockfile_000000 -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/chains/chains/ledger2/blockfile_000000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/chains/chains/ledger2/blockfile_000000 -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/chains/index/000001.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/chains/index/000001.log -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/chains/index/CURRENT: -------------------------------------------------------------------------------- 1 | MANIFEST-000000 2 | -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/chains/index/MANIFEST-000000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/chains/index/MANIFEST-000000 -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/historyLeveldb/000001.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/historyLeveldb/000001.log -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/historyLeveldb/CURRENT: -------------------------------------------------------------------------------- 1 | MANIFEST-000000 2 | -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/historyLeveldb/MANIFEST-000000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/historyLeveldb/MANIFEST-000000 -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/ledgerProvider/000001.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/ledgerProvider/000001.log -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/ledgerProvider/CURRENT: -------------------------------------------------------------------------------- 1 | MANIFEST-000000 2 | -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/ledgerProvider/MANIFEST-000000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/ledgerProvider/MANIFEST-000000 -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/pvtdataStore/000001.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/pvtdataStore/000001.log -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/pvtdataStore/CURRENT: -------------------------------------------------------------------------------- 1 | MANIFEST-000000 2 | -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/pvtdataStore/MANIFEST-000000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/pvtdataStore/MANIFEST-000000 -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/stateLeveldb/000001.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/stateLeveldb/000001.log -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/stateLeveldb/CURRENT: -------------------------------------------------------------------------------- 1 | MANIFEST-000000 2 | -------------------------------------------------------------------------------- /core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/stateLeveldb/MANIFEST-000000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/kvledger/tests/testdata/v11/sample_ledgers/ledgersData/stateLeveldb/MANIFEST-000000 -------------------------------------------------------------------------------- /core/ledger/kvledger/txmgmt/pvtstatepurgemgmt/pvtdata_key.proto: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright IBM Corp. All Rights Reserved. 3 | 4 | SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | syntax = "proto3"; 8 | 9 | option go_package = "github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/pvtstatepurgemgmt"; 10 | 11 | package pvtstatepurgemgmt; 12 | 13 | message PvtdataKeys { 14 | map map = 1; 15 | } 16 | 17 | message Collections { 18 | map map = 1; 19 | } 20 | 21 | message KeysAndHashes { 22 | repeated KeyAndHash list = 1; 23 | } 24 | 25 | message KeyAndHash { 26 | string key = 1; 27 | bytes hash = 2; 28 | } 29 | 30 | 31 | -------------------------------------------------------------------------------- /core/ledger/kvledger/txmgmt/statedb/statecouchdb/msgs/msgs.proto: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright IBM Corp. All Rights Reserved. 3 | 4 | SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | syntax = "proto3"; 8 | 9 | option go_package = "github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/statedb/statecouchdb/msgs"; 10 | 11 | package msgs; 12 | 13 | message VersionFieldProto { 14 | bytes version_bytes = 1; 15 | bytes metadata = 2; 16 | } -------------------------------------------------------------------------------- /core/ledger/kvledger/txmgmt/statedb/stateleveldb/msgs/storage.proto: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright IBM Corp. All Rights Reserved. 3 | 4 | SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | syntax = "proto3"; 8 | 9 | option go_package = "github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/statedb/stateleveldb/msgs"; 10 | 11 | package msgs; 12 | 13 | message VersionedValueProto { 14 | bytes version_bytes = 1; 15 | bytes value = 2; 16 | bytes metadata = 3; 17 | } -------------------------------------------------------------------------------- /core/ledger/pvtdatastorage/testdata/v11_v12/ledgersData/pvtdataStore/000002.ldb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/pvtdatastorage/testdata/v11_v12/ledgersData/pvtdataStore/000002.ldb -------------------------------------------------------------------------------- /core/ledger/pvtdatastorage/testdata/v11_v12/ledgersData/pvtdataStore/000005.ldb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/pvtdatastorage/testdata/v11_v12/ledgersData/pvtdataStore/000005.ldb -------------------------------------------------------------------------------- /core/ledger/pvtdatastorage/testdata/v11_v12/ledgersData/pvtdataStore/CURRENT: -------------------------------------------------------------------------------- 1 | MANIFEST-000065 2 | -------------------------------------------------------------------------------- /core/ledger/pvtdatastorage/testdata/v11_v12/ledgersData/pvtdataStore/LOCK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/pvtdatastorage/testdata/v11_v12/ledgersData/pvtdataStore/LOCK -------------------------------------------------------------------------------- /core/ledger/pvtdatastorage/testdata/v11_v12/ledgersData/pvtdataStore/MANIFEST-000065: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/core/ledger/pvtdatastorage/testdata/v11_v12/ledgersData/pvtdataStore/MANIFEST-000065 -------------------------------------------------------------------------------- /core/middleware/middleware_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package middleware_test 17 | 18 | import ( 19 | "net/http" 20 | 21 | . "github.com/onsi/ginkgo" 22 | . "github.com/onsi/gomega" 23 | 24 | "testing" 25 | ) 26 | 27 | func TestMiddleware(t *testing.T) { 28 | RegisterFailHandler(Fail) 29 | RunSpecs(t, "Middleware Suite") 30 | } 31 | 32 | //go:生成伪造者-o fakes/http_handler.go--fake name http handler。亨德勒 33 | 34 | type httpHandler interface { 35 | http.Handler 36 | } 37 | -------------------------------------------------------------------------------- /core/peer/testdata/Org1-server1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEICfXQtVmdQAlp/l9umWJqCXNTDurmciDNmGHPpxHwUK/oAoGCCqGSM49 3 | AwEHoUQDQgAECb7YJmFuaycD4cpDKdcrPt9Vm+/CW/8N02Dcx2DuUhw/bPRvTv94 4 | BnnRyF0k1yM0B39ACP+aYYbh05t6jihMoQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/peer/testdata/Org2-child1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEILECltESx3k5sQRtCt5rQEAo9cvTDyPxjv2UT092SY2NoAoGCCqGSM49 3 | AwEHoUQDQgAEUwSfP6NbaRz8LosWA4EcHK8wK7tHFiSYROilhwGtLwQhuJ5dM440 4 | UqIPogLlHGOGf4CaB6JenSkh5PYeY66rRA== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/peer/testdata/Org2-child1-server1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIPOWGbAnyV/ubULozdRQKt+kMPrz5l3LVxz80uYpufjQoAoGCCqGSM49 3 | AwEHoUQDQgAEmlsF+xDEaYFUOCWrK+RprJIgqkj9VWQNC44jkklY1LAkEe91rr8f 4 | i80ce8S3HEst8PWwCTod9rUy6rful7VzZQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/peer/testdata/Org2-server1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIHpb9jJemQ/0ODY4gM1fN+42SQ3+fAoU5vbiWFbFZ4i7oAoGCCqGSM49 3 | AwEHoUQDQgAE/upgMhgdFQWhgkojByygEkt/6vIVGwWF5o6NdZoAzCJJBsMqkb0l 4 | CORLDG+l0UuFJR/F7dTbAPvZuFY9Slpeaw== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/peer/testdata/Org3-server1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIGTkwJcw9zftKoRk4Qo/74MFO3a+3Wu/E2s58uVDeudgoAoGCCqGSM49 3 | AwEHoUQDQgAEX1hweplf/CRwhjHBTvPKiCLCozo+Ed83UrqlXXn9+g2D0LK35v0Q 4 | pQpNEjBBGjnIE0Yng7FRQZoJVFbQNW4ZcQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /core/peer/testdata/generate.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM Corp.2017保留所有权利。 11 | 12 | 根据Apache许可证2.0版(以下简称“许可证”)获得许可; 13 | 除非符合许可证,否则您不能使用此文件。 14 | 您可以在以下网址获得许可证副本: 15 | 16 | http://www.apache.org/licenses/license-2.0 17 | 18 | 除非适用法律要求或书面同意,软件 19 | 根据许可证分发是按“原样”分发的, 20 | 无任何明示或暗示的保证或条件。 21 | 有关管理权限和 22 | 许可证限制。 23 | **/ 24 | 25 | 26 | //+构建忽略 27 | 28 | //go:generate-command gencerts go运行$gopath/src/github.com/hyperledger/fabric/core/comm/testdata/certs/generate.go 29 | //go:生成gencerts-orgs 3-子orgs 1-服务器1-客户端0 30 | 31 | package testdata 32 | -------------------------------------------------------------------------------- /core/scc/race_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | //+建立种族 10 | //+构建插件已启用,CGO 11 | //+构建达尔文,go1.10 linux,go1.10 linux,go1.9,!PPC64 12 | 13 | /* 14 | 版权所有IBM公司。保留所有权利。 15 | 16 | SPDX许可证标识符:Apache-2.0 17 | **/ 18 | 19 | package scc 20 | 21 | func init() { 22 | raceEnabled = true 23 | } 24 | -------------------------------------------------------------------------------- /core/scc/register.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | //+建设!已启用插头!达尔文!GO1.10 Linux!go1.9 linux,ppc64le,!GO1.10 10 | 11 | /* 12 | 版权所有IBM公司。保留所有权利。 13 | 14 | SPDX许可证标识符:Apache-2.0 15 | **/ 16 | 17 | 18 | package scc 19 | 20 | //CreatePluginSyscs创建编译到结构中的所有系统链代码 21 | func CreatePluginSysCCs(p *Provider) []SelfDescribingSysCC { 22 | return nil 23 | } 24 | -------------------------------------------------------------------------------- /core/scc/register_pluginsenabled.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | //+构建插件已启用,CGO 10 | //+构建达尔文,go1.10 linux,go1.10 linux,go1.9,!PPC64 11 | 12 | /* 13 | 版权所有IBM公司。保留所有权利。 14 | 15 | SPDX许可证标识符:Apache-2.0 16 | **/ 17 | 18 | 19 | package scc 20 | 21 | //createpluginssccs创建所有由plugin加载的系统链码。 22 | func CreatePluginSysCCs(p *Provider) []SelfDescribingSysCC { 23 | var sdscs []SelfDescribingSysCC 24 | for _, pscc := range loadSysCCs(p) { 25 | sdscs = append(sdscs, &SysCCWrapper{SCC: pscc}) 26 | } 27 | return sdscs 28 | } 29 | -------------------------------------------------------------------------------- /devenv/golang_buildcmd.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright IBM Corp. All Rights Reserved. 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | 8 | set -e 9 | for arch in 8 6; do 10 | for cmd in a c g l; do 11 | go tool dist install -v cmd/$arch$cmd 12 | done 13 | done 14 | exit 0 15 | -------------------------------------------------------------------------------- /devenv/golang_buildpkg.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright IBM Corp. All Rights Reserved. 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | 8 | if [ -z "$1" ]; then 9 | echo 'GOOS is not specified' 1>&2 10 | exit 2 11 | else 12 | export GOOS=$1 13 | if [ "$GOOS" = "windows" ]; then 14 | export CGO_ENABLED=0 15 | fi 16 | fi 17 | shift 18 | if [ -n "$1" ]; then 19 | export GOARCH=$1 20 | fi 21 | cd $GOROOT/src 22 | go tool dist install -v pkg/runtime 23 | go install -v -a std 24 | -------------------------------------------------------------------------------- /devenv/images/openchain-dev-env-deployment-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/devenv/images/openchain-dev-env-deployment-diagram.png -------------------------------------------------------------------------------- /discovery/client/testdata/client/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgJSd74X0TaPasM9Ey 3 | 4DS81fY7CdI1m7COKNyVSjvM/s6hRANCAAR2R3XOqJdFr3ZK0xv1U67jPtpmW+qD 4 | z3TnZacySrpuCP82txGI0NO5emLvy2RJkULpTU6mowFRmpzRbaJ/+0NH 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /discovery/client/testdata/server/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgjF0UIONy0czJh2Ks 3 | VhTeQ3fgkBmpBMdDb9A2dJ5tUWahRANCAASTEG09s7ypUJKUn+lEHxwSLSfp32zQ 4 | sUxaQQC1BS5l00fRwcUrrAIaSgZy2GoQuNZBSAozgRhqsM/hiwkzCD3T 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /discovery/cmd/testdata/8150cb2d09628ccc89727611ebb736189f6482747eff9b8aaaa27e9a382d2e93_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgiMUviC3wiXZITKuC 3 | dZ3EOjolfC2Buep2zac1orHq/JmhRANCAAQcSjQ/I/Ngs9d/ARFwDH/PJM4bCCvc 4 | 3A6T2/8Cuz2mBQ96otBiwCJcbnV/bQ/B2LcKOhLe4g042x/OAeTLpW4W 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | _build/ 2 | -------------------------------------------------------------------------------- /docs/custom_theme/searchbox.html: -------------------------------------------------------------------------------- 1 | 6 |
7 |
8 | 9 |
10 |
11 | -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | python-markdown-math==0.2 3 | 4 | alabaster==0.7.8 5 | Babel==2.3.4 6 | docutils==0.12 7 | imagesize==0.7.1 8 | Jinja2==2.8 9 | MarkupSafe==0.23 10 | Pygments==2.1.3 11 | pytz==2016.4 12 | six==1.10.0 13 | snowballstemmer==1.2.1 14 | Sphinx==1.7.2 15 | sphinx-rtd-theme==0.2.5b2 16 | recommonmark==0.4.0 17 | -------------------------------------------------------------------------------- /docs/source/_static/images/github_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/_static/images/github_button.png -------------------------------------------------------------------------------- /docs/source/_static/images/rocketchat_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/_static/images/rocketchat_button.png -------------------------------------------------------------------------------- /docs/source/_static/images/stackoverflow_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/_static/images/stackoverflow_button.png -------------------------------------------------------------------------------- /docs/source/_static/images/youtube_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/_static/images/youtube_button.png -------------------------------------------------------------------------------- /docs/source/architecture.rst: -------------------------------------------------------------------------------- 1 | Architecture Reference 2 | ====================== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | arch-deep-dive 8 | txflow 9 | Hyperledger Fabric CA's User Guide 10 | fabric-sdks 11 | discovery-overview 12 | channels 13 | capability_requirements 14 | couchdb_as_state_database 15 | peer_event_services 16 | private-data-arch 17 | readwrite 18 | gossip 19 | -------------------------------------------------------------------------------- /docs/source/command_ref.rst: -------------------------------------------------------------------------------- 1 | Commands Reference 2 | ================== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | commands/peercommand.md 8 | commands/peerchaincode.md 9 | commands/peerchannel.md 10 | commands/peerversion.md 11 | commands/peerlogging.md 12 | commands/peernode.md 13 | commands/configtxgen.md 14 | commands/configtxlator.md 15 | commands/cryptogen.md 16 | discovery-cli.md 17 | commands/fabric-ca-commands 18 | -------------------------------------------------------------------------------- /docs/source/dev-setup/headers.txt: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright [COPYRIGHT OWNER] All Rights Reserved. 3 | 4 | SPDX-License-Identifier: Apache-2.0 5 | */ 6 | -------------------------------------------------------------------------------- /docs/source/developapps/apis.md: -------------------------------------------------------------------------------- 1 | # APIs 2 | -------------------------------------------------------------------------------- /docs/source/developapps/designelements.rst: -------------------------------------------------------------------------------- 1 | Application design elements 2 | =========================== 3 | 4 | This section elaborates the key features for client application and smart 5 | contract development found in Hyperledger Fabric. A solid understanding of 6 | the features will help you design and implement efficient and effective 7 | solutions. 8 | 9 | .. toctree:: 10 | :maxdepth: 1 11 | 12 | namespace.md 13 | chaincodenamespace.md 14 | transactioncontext.md 15 | transactionhandler.md 16 | endorsementpolicies.md 17 | connectionprofile.md 18 | connectionoptions.md 19 | wallet.md 20 | gateway.md 21 | -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.1.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.10.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.11.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.12.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.13.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.2.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.25.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.3.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.30.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.35.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.4.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.5.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.50.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.51.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.6.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.7.png -------------------------------------------------------------------------------- /docs/source/developapps/develop.diagram.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/develop.diagram.8.png -------------------------------------------------------------------------------- /docs/source/developapps/diagrams.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/developapps/diagrams.pptx -------------------------------------------------------------------------------- /docs/source/developapps/namespace.md: -------------------------------------------------------------------------------- 1 | # Contract namespaces 2 | 3 | 5 | -------------------------------------------------------------------------------- /docs/source/developapps/transactioncontext.md: -------------------------------------------------------------------------------- 1 | # Transaction context 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /docs/source/diagrams/diagrams.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/diagrams/diagrams.pptx -------------------------------------------------------------------------------- /docs/source/fabric-sdks.rst: -------------------------------------------------------------------------------- 1 | Hyperledger Fabric SDKs 2 | ======================= 3 | 4 | Hyperledger Fabric intends to offer a number of SDKs for a wide variety of 5 | programming languages. The first two delivered are the Node.js and Java 6 | SDKs. We hope to provide Python, REST and Go SDKs in a subsequent release. 7 | 8 | * `Hyperledger Fabric Node SDK documentation `__. 9 | * `Hyperledger Fabric Java SDK documentation `__. 10 | 11 | .. Licensed under Creative Commons Attribution 4.0 International License 12 | https://creativecommons.org/licenses/by/4.0/ 13 | -------------------------------------------------------------------------------- /docs/source/glossary/diagrams.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/glossary/diagrams.pptx -------------------------------------------------------------------------------- /docs/source/glossary/glossary.block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/glossary/glossary.block.png -------------------------------------------------------------------------------- /docs/source/glossary/glossary.blockchain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/glossary/glossary.blockchain.png -------------------------------------------------------------------------------- /docs/source/glossary/glossary.channel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/glossary/glossary.channel.png -------------------------------------------------------------------------------- /docs/source/glossary/glossary.ledger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/glossary/glossary.ledger.png -------------------------------------------------------------------------------- /docs/source/glossary/glossary.msp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/glossary/glossary.msp.png -------------------------------------------------------------------------------- /docs/source/glossary/glossary.orderer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/glossary/glossary.orderer.png -------------------------------------------------------------------------------- /docs/source/glossary/glossary.orderingservice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/glossary/glossary.orderingservice.png -------------------------------------------------------------------------------- /docs/source/glossary/glossary.organization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/glossary/glossary.organization.png -------------------------------------------------------------------------------- /docs/source/glossary/glossary.peer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/glossary/glossary.peer.png -------------------------------------------------------------------------------- /docs/source/glossary/glossary.transaction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/glossary/glossary.transaction.png -------------------------------------------------------------------------------- /docs/source/glossary/glossary.worldstate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/glossary/glossary.worldstate.png -------------------------------------------------------------------------------- /docs/source/identity/identity.diagram.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/identity/identity.diagram.1.png -------------------------------------------------------------------------------- /docs/source/identity/identity.diagram.10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/identity/identity.diagram.10.png -------------------------------------------------------------------------------- /docs/source/identity/identity.diagram.11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/identity/identity.diagram.11.png -------------------------------------------------------------------------------- /docs/source/identity/identity.diagram.12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/identity/identity.diagram.12.png -------------------------------------------------------------------------------- /docs/source/identity/identity.diagram.6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/identity/identity.diagram.6.png -------------------------------------------------------------------------------- /docs/source/identity/identity.diagram.7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/identity/identity.diagram.7.png -------------------------------------------------------------------------------- /docs/source/identity/identity.diagram.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/identity/identity.diagram.8.png -------------------------------------------------------------------------------- /docs/source/identity/identity.diagram.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/identity/identity.diagram.9.png -------------------------------------------------------------------------------- /docs/source/images/AddSSH1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/AddSSH1.png -------------------------------------------------------------------------------- /docs/source/images/AddSSH2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/AddSSH2.png -------------------------------------------------------------------------------- /docs/source/images/AppConceptsOverview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/AppConceptsOverview.png -------------------------------------------------------------------------------- /docs/source/images/GitCloneCmd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/GitCloneCmd.png -------------------------------------------------------------------------------- /docs/source/images/Jira.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/Jira.png -------------------------------------------------------------------------------- /docs/source/images/Jira1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/Jira1.png -------------------------------------------------------------------------------- /docs/source/images/Jira2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/Jira2.png -------------------------------------------------------------------------------- /docs/source/images/Jira3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/Jira3.png -------------------------------------------------------------------------------- /docs/source/images/Jira4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/Jira4.png -------------------------------------------------------------------------------- /docs/source/images/NewGerritUI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/NewGerritUI.png -------------------------------------------------------------------------------- /docs/source/images/QueryingtheLedger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/QueryingtheLedger.png -------------------------------------------------------------------------------- /docs/source/images/RunningtheSample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/RunningtheSample.png -------------------------------------------------------------------------------- /docs/source/images/SSHKeys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/SSHKeys.png -------------------------------------------------------------------------------- /docs/source/images/Settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/Settings.png -------------------------------------------------------------------------------- /docs/source/images/SideDB-org1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/SideDB-org1.png -------------------------------------------------------------------------------- /docs/source/images/SideDB-org2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/SideDB-org2.png -------------------------------------------------------------------------------- /docs/source/images/SideDB-peer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/SideDB-peer.png -------------------------------------------------------------------------------- /docs/source/images/SideDB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/SideDB.png -------------------------------------------------------------------------------- /docs/source/images/SideDBTutorialImages.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/SideDBTutorialImages.pptx -------------------------------------------------------------------------------- /docs/source/images/Smart_Contract.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/Smart_Contract.png -------------------------------------------------------------------------------- /docs/source/images/UpdatingtheLedger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/UpdatingtheLedger.png -------------------------------------------------------------------------------- /docs/source/images/attributes_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/attributes_flow.png -------------------------------------------------------------------------------- /docs/source/images/basic_network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/basic_network.png -------------------------------------------------------------------------------- /docs/source/images/blocks-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/blocks-3.png -------------------------------------------------------------------------------- /docs/source/images/chaincode_swimlane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/chaincode_swimlane.png -------------------------------------------------------------------------------- /docs/source/images/consensus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/consensus.png -------------------------------------------------------------------------------- /docs/source/images/couchdb_tutorial_pkg_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/couchdb_tutorial_pkg_example.png -------------------------------------------------------------------------------- /docs/source/images/current_network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/current_network.png -------------------------------------------------------------------------------- /docs/source/images/flow-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/flow-4.png -------------------------------------------------------------------------------- /docs/source/images/future_net.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/future_net.png -------------------------------------------------------------------------------- /docs/source/images/hyperledger_fabric_logo_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/hyperledger_fabric_logo_color.png -------------------------------------------------------------------------------- /docs/source/images/idemix-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/idemix-overview.png -------------------------------------------------------------------------------- /docs/source/images/idemix-three-steps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/idemix-three-steps.png -------------------------------------------------------------------------------- /docs/source/images/idmx-audit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/idmx-audit.png -------------------------------------------------------------------------------- /docs/source/images/idmx-contribution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/idmx-contribution.png -------------------------------------------------------------------------------- /docs/source/images/idmx-revocation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/idmx-revocation.png -------------------------------------------------------------------------------- /docs/source/images/idmx-steps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/idmx-steps.png -------------------------------------------------------------------------------- /docs/source/images/idmx-vs-x509.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/idmx-vs-x509.png -------------------------------------------------------------------------------- /docs/source/images/lf-sandbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/lf-sandbox.png -------------------------------------------------------------------------------- /docs/source/images/standalone-app-developer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/standalone-app-developer.png -------------------------------------------------------------------------------- /docs/source/images/step0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/step0.png -------------------------------------------------------------------------------- /docs/source/images/step1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/step1.png -------------------------------------------------------------------------------- /docs/source/images/step2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/step2.png -------------------------------------------------------------------------------- /docs/source/images/step3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/step3.png -------------------------------------------------------------------------------- /docs/source/images/step4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/step4.png -------------------------------------------------------------------------------- /docs/source/images/step5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/step5.png -------------------------------------------------------------------------------- /docs/source/images/step6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/step6.png -------------------------------------------------------------------------------- /docs/source/images/what.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/what.png -------------------------------------------------------------------------------- /docs/source/images/world_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/images/world_view.png -------------------------------------------------------------------------------- /docs/source/key_concepts.rst: -------------------------------------------------------------------------------- 1 | Key Concepts 2 | ============ 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | blockchain 8 | functionalities 9 | fabric_model 10 | network/network.md 11 | identity/identity.md 12 | membership/membership.md 13 | peers/peers.md 14 | private-data/private-data.md 15 | ledger/ledger.md 16 | usecases 17 | -------------------------------------------------------------------------------- /docs/source/ledger/ledger.diagram.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/ledger/ledger.diagram.1.png -------------------------------------------------------------------------------- /docs/source/ledger/ledger.diagram.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/ledger/ledger.diagram.2.png -------------------------------------------------------------------------------- /docs/source/ledger/ledger.diagram.3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/ledger/ledger.diagram.3.png -------------------------------------------------------------------------------- /docs/source/ledger/ledger.diagram.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/ledger/ledger.diagram.4.png -------------------------------------------------------------------------------- /docs/source/ledger/ledger.diagram.5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/ledger/ledger.diagram.5.png -------------------------------------------------------------------------------- /docs/source/ledger/ledger.diagram.6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/ledger/ledger.diagram.6.png -------------------------------------------------------------------------------- /docs/source/mdtorst.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright IBM Corp. All Rights Reserved. 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | 8 | FILES=*.md 9 | for f in $FILES 10 | do 11 | # extension="${f##*.}" 12 | filename="${f%.*}" 13 | echo "Converting $f to $filename.rst" 14 | `pandoc $f -t rst -o $filename.rst` 15 | # uncomment this line to delete the source file. 16 | # rm $f 17 | done 18 | -------------------------------------------------------------------------------- /docs/source/membership/membership.diagram.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/membership/membership.diagram.2.png -------------------------------------------------------------------------------- /docs/source/membership/membership.diagram.3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/membership/membership.diagram.3.png -------------------------------------------------------------------------------- /docs/source/membership/membership.diagram.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/membership/membership.diagram.4.png -------------------------------------------------------------------------------- /docs/source/membership/membership.diagram.5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/membership/membership.diagram.5.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.1.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.10.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.11.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.12.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.14.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.15.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.2.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.2.1.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.2.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.3.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.4.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.5.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.6.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.7.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.8.png -------------------------------------------------------------------------------- /docs/source/network/network.diagram.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/network/network.diagram.9.png -------------------------------------------------------------------------------- /docs/source/ops_guide.rst: -------------------------------------------------------------------------------- 1 | Operations Guides 2 | ================= 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | upgrade_to_newest_version 8 | config_update 9 | msp 10 | configtx 11 | endorsement-policies 12 | pluggable_endorsement_and_validation 13 | access_control.md 14 | idemix 15 | idemixgen 16 | operations_service 17 | metrics_reference 18 | error-handling 19 | logging-control 20 | enable_tls 21 | kafka 22 | -------------------------------------------------------------------------------- /docs/source/peers/peers.diagram.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/peers/peers.diagram.1.png -------------------------------------------------------------------------------- /docs/source/peers/peers.diagram.10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/peers/peers.diagram.10.png -------------------------------------------------------------------------------- /docs/source/peers/peers.diagram.11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/peers/peers.diagram.11.png -------------------------------------------------------------------------------- /docs/source/peers/peers.diagram.12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/peers/peers.diagram.12.png -------------------------------------------------------------------------------- /docs/source/peers/peers.diagram.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/peers/peers.diagram.2.png -------------------------------------------------------------------------------- /docs/source/peers/peers.diagram.3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/peers/peers.diagram.3.png -------------------------------------------------------------------------------- /docs/source/peers/peers.diagram.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/peers/peers.diagram.4.png -------------------------------------------------------------------------------- /docs/source/peers/peers.diagram.5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/peers/peers.diagram.5.png -------------------------------------------------------------------------------- /docs/source/peers/peers.diagram.6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/peers/peers.diagram.6.png -------------------------------------------------------------------------------- /docs/source/peers/peers.diagram.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/peers/peers.diagram.8.png -------------------------------------------------------------------------------- /docs/source/peers/peers.diagram.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/peers/peers.diagram.9.png -------------------------------------------------------------------------------- /docs/source/private-data/PrivateDataConcept-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/private-data/PrivateDataConcept-1.png -------------------------------------------------------------------------------- /docs/source/private-data/PrivateDataConcept-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/private-data/PrivateDataConcept-2.png -------------------------------------------------------------------------------- /docs/source/private-data/PrivateDataConcept-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/private-data/PrivateDataConcept-3.png -------------------------------------------------------------------------------- /docs/source/private-data/PrivateDataConceptImages.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/private-data/PrivateDataConceptImages.pptx -------------------------------------------------------------------------------- /docs/source/private-data/SideDB-peer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/private-data/SideDB-peer.png -------------------------------------------------------------------------------- /docs/source/private-data/SideDB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/private-data/SideDB.png -------------------------------------------------------------------------------- /docs/source/releases.rst: -------------------------------------------------------------------------------- 1 | Releases 2 | ======== 3 | 4 | Hyperledger Fabric releases are documented on the `Fabric github page `__. 5 | 6 | .. Licensed under Creative Commons Attribution 4.0 International License 7 | https://creativecommons.org/licenses/by/4.0/ 8 | -------------------------------------------------------------------------------- /docs/source/requirements.txt: -------------------------------------------------------------------------------- 1 | python-markdown-math==0.2 2 | -------------------------------------------------------------------------------- /docs/source/smartcontract.rst: -------------------------------------------------------------------------------- 1 | Chaincode 2 | ========= 3 | 4 | [WIP] 5 | 6 | The widely-used term, smart contract, is referred to as "chaincode" in 7 | Hyperledger Fabric. 8 | 9 | Self-executing logic that encodes the rules for specific types of 10 | network transactions. Chaincode (currently written in Go) is 11 | installed and instantiated onto a channel's peers by an appropriately 12 | authorized member. End users then invoke chaincode through a client-side 13 | application that interfaces with a network peer. Chaincode runs network 14 | transactions, which if validated, are appended to the shared ledger and 15 | modify world state. 16 | 17 | .. Licensed under Creative Commons Attribution 4.0 International License 18 | https://creativecommons.org/licenses/by/4.0/ 19 | 20 | -------------------------------------------------------------------------------- /docs/source/status.rst: -------------------------------------------------------------------------------- 1 | Status 2 | ================= 3 | 4 | Hyperledger Fabric is in the *Active* state. For more information on the history of this project see our `wiki page `__. Information on what *Active* entails can be found in 5 | the Hyperledger `Project Lifecycle document `__. 6 | 7 | .. Licensed under Creative Commons Attribution 4.0 International License 8 | https://creativecommons.org/licenses/by/4.0/ 9 | -------------------------------------------------------------------------------- /docs/source/tutorial/commercial_paper.diagram.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/commercial_paper.diagram.1.png -------------------------------------------------------------------------------- /docs/source/tutorial/commercial_paper.diagram.10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/commercial_paper.diagram.10.png -------------------------------------------------------------------------------- /docs/source/tutorial/commercial_paper.diagram.11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/commercial_paper.diagram.11.png -------------------------------------------------------------------------------- /docs/source/tutorial/commercial_paper.diagram.12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/commercial_paper.diagram.12.png -------------------------------------------------------------------------------- /docs/source/tutorial/commercial_paper.diagram.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/commercial_paper.diagram.2.png -------------------------------------------------------------------------------- /docs/source/tutorial/commercial_paper.diagram.3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/commercial_paper.diagram.3.png -------------------------------------------------------------------------------- /docs/source/tutorial/commercial_paper.diagram.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/commercial_paper.diagram.4.png -------------------------------------------------------------------------------- /docs/source/tutorial/commercial_paper.diagram.5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/commercial_paper.diagram.5.png -------------------------------------------------------------------------------- /docs/source/tutorial/commercial_paper.diagram.6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/commercial_paper.diagram.6.png -------------------------------------------------------------------------------- /docs/source/tutorial/commercial_paper.diagram.7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/commercial_paper.diagram.7.png -------------------------------------------------------------------------------- /docs/source/tutorial/commercial_paper.diagram.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/commercial_paper.diagram.8.png -------------------------------------------------------------------------------- /docs/source/tutorial/diagrams.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/diagrams.pptx -------------------------------------------------------------------------------- /docs/source/tutorial/write_first_app.diagram.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/write_first_app.diagram.1.png -------------------------------------------------------------------------------- /docs/source/tutorial/write_first_app.diagram.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/docs/source/tutorial/write_first_app.diagram.2.png -------------------------------------------------------------------------------- /docs/source/usecases.rst: -------------------------------------------------------------------------------- 1 | Use Cases 2 | ========= 3 | 4 | The Hyperledger Requirements WG is documenting a number of blockchain use 5 | cases and maintaining an inventory 6 | `here `__. 7 | 8 | .. Licensed under Creative Commons Attribution 4.0 International License 9 | https://creativecommons.org/licenses/by/4.0/ 10 | 11 | -------------------------------------------------------------------------------- /docs/source/videos.rst: -------------------------------------------------------------------------------- 1 | Videos 2 | ====== 3 | 4 | Refer to the Hyperledger Fabric channel on YouTube 5 | 6 | .. raw:: html 7 | 8 | 9 |

10 | 11 | This collection contains developers demonstrating various v1 features and 12 | components such as: ledger, channels, gossip, SDK, chaincode, MSP, and 13 | more... 14 | 15 | .. Licensed under Creative Commons Attribution 4.0 International License 16 | https://creativecommons.org/licenses/by/4.0/ 17 | -------------------------------------------------------------------------------- /docs/wrappers/configtxgen_preamble.md: -------------------------------------------------------------------------------- 1 | # configtxgen 2 | 3 | The `configtxgen` command allows users to create and inspect channel config 4 | related artifacts. The content of the generated artifacts is dictated by the 5 | contents of `configtx.yaml`. 6 | 7 | ## Syntax 8 | 9 | The `configtxgen` tool has no sub-commands, but supports flags which can be set 10 | to accomplish a number of tasks. 11 | -------------------------------------------------------------------------------- /docs/wrappers/configtxlator_preamble.md: -------------------------------------------------------------------------------- 1 | # configtxlator 2 | 3 | The `configtxlator` command allows users to translate between protobuf and JSON 4 | versions of fabric data structures and create config updates. The command may 5 | either start a REST server to expose its functions over HTTP or may be utilized 6 | directly as a command line tool. 7 | 8 | ## Syntax 9 | 10 | The `configtxlator` tool has five sub-commands, as follows: 11 | 12 | * start 13 | * proto_encode 14 | * proto_decode 15 | * compute_update 16 | * version 17 | -------------------------------------------------------------------------------- /docs/wrappers/cryptogen_postscript.md: -------------------------------------------------------------------------------- 1 | ## Usage 2 | 3 | Here's an example using the different available flags on the ``cryptogen extend`` 4 | command. 5 | 6 | ``` 7 | cryptogen extend --input="crypto-config" --config=config.yaml 8 | 9 | org3.example.com 10 | ``` 11 | 12 | Where config.yaml adds a new peer organization called ``org3.example.com`` 13 | 14 | Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License. 15 | -------------------------------------------------------------------------------- /docs/wrappers/cryptogen_preamble.md: -------------------------------------------------------------------------------- 1 | # cryptogen 2 | 3 | `cryptogen` is an utility for generating Hyperledger Fabric key material. 4 | It is provided as a means of preconfiguring a network for testing purposes. 5 | It would normally not be used in the operation of a production network. 6 | 7 | ## Syntax 8 | 9 | The ``cryptogen`` command has five subcommands, as follows: 10 | 11 | * help 12 | * generate 13 | * showtemplate 14 | * extend 15 | * version 16 | -------------------------------------------------------------------------------- /docs/wrappers/license_postscript.md: -------------------------------------------------------------------------------- 1 | 2 | Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License. 3 | -------------------------------------------------------------------------------- /docs/wrappers/peer_channel_preamble.md: -------------------------------------------------------------------------------- 1 | # peer channel 2 | 3 | The `peer channel` command allows administrators to perform channel related 4 | operations on a peer, such as joining a channel or listing the channels to which 5 | a peer is joined. 6 | 7 | ## Syntax 8 | 9 | The `peer channel` command has the following subcommands: 10 | 11 | * create 12 | * fetch 13 | * getinfo 14 | * join 15 | * list 16 | * signconfigtx 17 | * update 18 | -------------------------------------------------------------------------------- /docs/wrappers/peer_logging_preamble.md: -------------------------------------------------------------------------------- 1 | # peer logging 2 | 3 | The `peer logging` subcommand allows administrators to dynamically view and 4 | configure the log levels of a peer. 5 | 6 | ## Syntax 7 | 8 | The `peer logging` command has the following subcommands: 9 | 10 | * getlogspec 11 | * setlogspec 12 | 13 | and the following deprecated subcommands, which will be removed 14 | in a future release: 15 | 16 | * getlevel 17 | * setlevel 18 | * revertlevels 19 | 20 | The different subcommand options (`getlogspec`, `setlogspec`, `getlevel`, `setlevel`, 21 | and `revertlevels`) relate to the different logging operations that are relevant 22 | to a peer. 23 | 24 | Each peer logging subcommand is described together with its options in its own 25 | section in this topic. 26 | -------------------------------------------------------------------------------- /docs/wrappers/peer_node_preamble.md: -------------------------------------------------------------------------------- 1 | # peer node 2 | 3 | The `peer node` command allows an administrator to start a peer node or check 4 | the status of a peer node. 5 | 6 | ## Syntax 7 | 8 | The `peer node` command has the following subcommands: 9 | 10 | * start 11 | * status 12 | -------------------------------------------------------------------------------- /docs/wrappers/peer_version_preamble.md: -------------------------------------------------------------------------------- 1 | # peer version 2 | 3 | The `peer version` command displays the version information of the peer. It 4 | displays version, Commit SHA, Go version, OS/architecture, and chaincode 5 | information. For example: 6 | 7 | ``` 8 | peer: 9 | Version: 1.4.0 10 | Commit SHA: 0efc897 11 | Go version: go1.11.1 12 | OS/Arch: linux/amd64 13 | Chaincode: 14 | Base Image Version: 0.4.14 15 | Base Docker Namespace: hyperledger 16 | Base Docker Label: org.hyperledger.fabric 17 | Docker Namespace: hyperledger 18 | ``` 19 | 20 | ## Syntax 21 | -------------------------------------------------------------------------------- /examples/chaincode/go/example01/cmd/main.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package main 17 | 18 | import ( 19 | "fmt" 20 | 21 | "github.com/hyperledger/fabric/core/chaincode/shim" 22 | "github.com/hyperledger/fabric/examples/chaincode/go/example01" 23 | ) 24 | 25 | func main() { 26 | err := shim.Start(new(example01.SimpleChaincode)) 27 | if err != nil { 28 | fmt.Printf("Error starting Simple chaincode: %s", err) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /examples/chaincode/go/example02/cmd/main.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package main 17 | 18 | import ( 19 | "fmt" 20 | 21 | "github.com/hyperledger/fabric/core/chaincode/shim" 22 | "github.com/hyperledger/fabric/examples/chaincode/go/example02" 23 | ) 24 | 25 | func main() { 26 | err := shim.Start(new(example02.SimpleChaincode)) 27 | if err != nil { 28 | fmt.Printf("Error starting Simple chaincode: %s", err) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /examples/chaincode/go/example03/cmd/main.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package main 17 | 18 | import ( 19 | "fmt" 20 | 21 | "github.com/hyperledger/fabric/core/chaincode/shim" 22 | "github.com/hyperledger/fabric/examples/chaincode/go/example03" 23 | ) 24 | 25 | func main() { 26 | err := shim.Start(new(example03.SimpleChaincode)) 27 | if err != nil { 28 | fmt.Printf("Error starting chaincode: %s", err) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /examples/chaincode/go/example04/cmd/main.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package main 17 | 18 | import ( 19 | "fmt" 20 | 21 | "github.com/hyperledger/fabric/core/chaincode/shim" 22 | "github.com/hyperledger/fabric/examples/chaincode/go/example04" 23 | ) 24 | 25 | func main() { 26 | err := shim.Start(new(example04.SimpleChaincode)) 27 | if err != nil { 28 | fmt.Printf("Error starting Simple chaincode: %s", err) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /examples/chaincode/go/example05/cmd/main.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package main 17 | 18 | import ( 19 | "fmt" 20 | 21 | "github.com/hyperledger/fabric/core/chaincode/shim" 22 | "github.com/hyperledger/fabric/examples/chaincode/go/example05" 23 | ) 24 | 25 | func main() { 26 | err := shim.Start(new(example05.SimpleChaincode)) 27 | if err != nil { 28 | fmt.Printf("Error starting Simple chaincode: %s", err) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /examples/chaincode/go/marbles02/META-INF/statedb/couchdb/indexes/indexOwner.json: -------------------------------------------------------------------------------- 1 | {"index":{"fields":["docType","owner"]},"ddoc":"indexOwnerDoc", "name":"indexOwner","type":"json"} 2 | -------------------------------------------------------------------------------- /examples/cluster/compose/configure.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright Greg Haskins All Rights Reserved. 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | 8 | 9 | set -x 10 | set -e 11 | 12 | CHANNEL_NAME=$1 13 | CHANNEL_TXNS=$2 14 | PEERS=$3 15 | TLS_ENABLED=$4 16 | 17 | CA_CRT=cryptogen/ordererOrganizations/orderer.net/tlsca/tlsca.orderer.net-cert.pem 18 | 19 | if [ "$TLS_ENABLED" == "true" ]; then 20 | CREATE_OPTS="--tls --cafile $CA_CRT" 21 | fi 22 | 23 | for TXN in $CHANNEL_TXNS; do 24 | peer channel create -o orderer:7050 \ 25 | -c $CHANNEL_NAME \ 26 | -f $TXN \ 27 | $CREATE_OPTS 28 | done 29 | 30 | for PEER in $PEERS; do 31 | CORE_PEER_ADDRESS=$PEER:7051 peer channel join -b $CHANNEL_NAME.block 32 | done 33 | -------------------------------------------------------------------------------- /examples/cluster/config/cryptogen.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | 6 | OrdererOrgs: 7 | - Name: Orderer 8 | Domain: orderer.net 9 | CA: 10 | Country: US 11 | Province: California 12 | Locality: San Francisco 13 | Specs: 14 | - Hostname: orderer 15 | 16 | PeerOrgs: 17 | - Name: Org1 18 | Domain: org1.net 19 | CA: 20 | Country: US 21 | Province: California 22 | Locality: San Francisco 23 | Template: 24 | Count: 4 25 | Start: 1 26 | Users: 27 | Count: 1 28 | -------------------------------------------------------------------------------- /gossip/comm/demux_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package comm 17 | 18 | import "testing" 19 | 20 | func TestChannelDeMultiplexer_Close(t *testing.T) { 21 | demux := NewChannelDemultiplexer() 22 | demux.Close() 23 | demux.DeMultiplex("msg") 24 | } 25 | -------------------------------------------------------------------------------- /gossip/common/cert.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package common 17 | 18 | import ( 19 | "sync/atomic" 20 | ) 21 | 22 | //TLSCertificates聚合服务器和客户端TLS证书 23 | type TLSCertificates struct { 24 | TLSServerCert atomic.Value //*对等端的tls.certificate server证书 25 | TLSClientCert atomic.Value //*对等端的tls.certificate客户端证书 26 | } 27 | -------------------------------------------------------------------------------- /images/buildenv/Dockerfile.in: -------------------------------------------------------------------------------- 1 | # Copyright Greg Haskins All Rights Reserved 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | FROM _BASE_NS_/fabric-baseimage:_BASE_TAG_ 6 | COPY payload/protoc-gen-go /usr/local/bin/ 7 | ADD payload/gotools.tar.bz2 /usr/local/bin/ 8 | 9 | # override GOCACHE=off from fabric-baseimage 10 | ENV GOCACHE "/tmp" 11 | -------------------------------------------------------------------------------- /images/ccenv/Dockerfile.in: -------------------------------------------------------------------------------- 1 | # Copyright Greg Haskins All Rights Reserved 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | FROM _BASE_NS_/fabric-baseimage:_BASE_TAG_ 6 | COPY payload/chaintool payload/protoc-gen-go /usr/local/bin/ 7 | ADD payload/goshim.tar.bz2 $GOPATH/src/ 8 | RUN mkdir -p /chaincode/input /chaincode/output 9 | -------------------------------------------------------------------------------- /images/orderer/Dockerfile.in: -------------------------------------------------------------------------------- 1 | # Copyright Greg Haskins All Rights Reserved 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | FROM _BASE_NS_/fabric-baseos:_BASE_TAG_ 6 | ENV FABRIC_CFG_PATH /etc/hyperledger/fabric 7 | RUN mkdir -p /var/hyperledger/production $FABRIC_CFG_PATH 8 | COPY payload/orderer /usr/local/bin 9 | ADD payload/sampleconfig.tar.bz2 $FABRIC_CFG_PATH/ 10 | EXPOSE 7050 11 | CMD ["orderer"] 12 | -------------------------------------------------------------------------------- /images/peer/Dockerfile.in: -------------------------------------------------------------------------------- 1 | # Copyright Greg Haskins All Rights Reserved 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | FROM _BASE_NS_/fabric-baseos:_BASE_TAG_ 6 | ENV FABRIC_CFG_PATH /etc/hyperledger/fabric 7 | RUN mkdir -p /var/hyperledger/production $FABRIC_CFG_PATH 8 | COPY payload/peer /usr/local/bin 9 | ADD payload/sampleconfig.tar.bz2 $FABRIC_CFG_PATH 10 | CMD ["peer","node","start"] 11 | -------------------------------------------------------------------------------- /integration/chaincode/keylevelep/cmd/main.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package main 17 | 18 | import ( 19 | "fmt" 20 | "os" 21 | 22 | "github.com/hyperledger/fabric/core/chaincode/shim" 23 | "github.com/hyperledger/fabric/integration/chaincode/keylevelep" 24 | ) 25 | 26 | func main() { 27 | err := shim.Start(&keylevelep.EndorsementCC{}) 28 | if err != nil { 29 | fmt.Fprintf(os.Stderr, "Exiting SBE chaincode: %s", err) 30 | os.Exit(2) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /integration/chaincode/marbles_private/cmd/main.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package main 17 | 18 | import ( 19 | "fmt" 20 | "os" 21 | 22 | "github.com/hyperledger/fabric/core/chaincode/shim" 23 | "github.com/hyperledger/fabric/integration/chaincode/marbles_private" 24 | ) 25 | 26 | func main() { 27 | err := shim.Start(&marbles_private.MarblesPrivateChaincode{}) 28 | if err != nil { 29 | fmt.Fprintf(os.Stderr, "Exiting Simple chaincode: %s", err) 30 | os.Exit(2) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /integration/chaincode/simple/cmd/main.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package main 17 | 18 | import ( 19 | "fmt" 20 | "os" 21 | 22 | "github.com/hyperledger/fabric/core/chaincode/shim" 23 | "github.com/hyperledger/fabric/integration/chaincode/simple" 24 | ) 25 | 26 | func main() { 27 | err := shim.Start(&simple.SimpleChaincode{}) 28 | if err != nil { 29 | fmt.Fprintf(os.Stderr, "Exiting Simple chaincode: %s", err) 30 | os.Exit(2) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /integration/discovery/testdata/collections_config1.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "collectionMarbles", 4 | "policy": "OR('Org1MSP.member', 'Org2MSP.member')", 5 | "requiredPeerCount": 1, 6 | "maxPeerCount": 2, 7 | "blockToLive":1000000 8 | } 9 | ] 10 | -------------------------------------------------------------------------------- /integration/nwo/commands/cryptogen.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package commands 17 | 18 | type Generate struct { 19 | Config string 20 | Output string 21 | } 22 | 23 | func (c Generate) SessionName() string { 24 | return "cryptogen-generate" 25 | } 26 | 27 | func (c Generate) Args() []string { 28 | return []string{ 29 | "generate", 30 | "--config", c.Config, 31 | "--output", c.Output, 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /integration/pvtdata/testdata/collection_configs/collections_config1.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "collectionMarbles", 4 | "policy": "OR('Org1MSP.member', 'Org2MSP.member')", 5 | "requiredPeerCount": 1, 6 | "maxPeerCount": 2, 7 | "blockToLive":1000000, 8 | "memberOnlyRead": false 9 | }, 10 | { 11 | "name": "collectionMarblePrivateDetails", 12 | "policy": "OR('Org2MSP.member', 'Org3MSP.member')", 13 | "requiredPeerCount": 1, 14 | "maxPeerCount": 2, 15 | "blockToLive":1000000, 16 | "memberOnlyRead": false 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /integration/pvtdata/testdata/collection_configs/collections_config2.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "collectionMarbles", 4 | "policy": "OR('Org1MSP.member', 'Org2MSP.member', 'Org3MSP.member')", 5 | "requiredPeerCount": 1, 6 | "maxPeerCount": 2, 7 | "blockToLive":1000000, 8 | "memberOnlyRead": false 9 | }, 10 | { 11 | "name": "collectionMarblePrivateDetails", 12 | "policy": "OR('Org2MSP.member', 'Org3MSP.member')", 13 | "requiredPeerCount": 1, 14 | "maxPeerCount": 2, 15 | "blockToLive":1000000, 16 | "memberOnlyRead": false 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /integration/pvtdata/testdata/collection_configs/collections_config3.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "collectionMarbles", 4 | "policy": "OR('Org1MSP.member', 'Org2MSP.member')", 5 | "requiredPeerCount": 1, 6 | "maxPeerCount": 2, 7 | "blockToLive":1000000 8 | }, 9 | { 10 | "name": "collectionMarblePrivateDetails", 11 | "policy": "OR('Org1MSP.member', 'Org2MSP.member')", 12 | "requiredPeerCount": 1, 13 | "maxPeerCount": 2, 14 | "blockToLive":1000000 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /integration/pvtdata/testdata/collection_configs/collections_config4.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "collectionMarbles", 4 | "policy": "OR('Org1MSP.member', 'Org2MSP.member')", 5 | "requiredPeerCount": 1, 6 | "maxPeerCount": 2, 7 | "blockToLive":1000000, 8 | "memberOnlyRead": true 9 | }, 10 | { 11 | "name": "collectionMarblePrivateDetails", 12 | "policy": "OR('Org2MSP.member', 'Org3MSP.member')", 13 | "requiredPeerCount": 1, 14 | "maxPeerCount": 2, 15 | "blockToLive":1000000, 16 | "memberOnlyRead": true 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /integration/pvtdata/testdata/collection_configs/short_btl_config.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "collectionMarbles", 4 | "policy": "OR('Org1MSP.member', 'Org2MSP.member')", 5 | "requiredPeerCount": 0, 6 | "maxPeerCount": 2, 7 | "blockToLive":1000000 8 | }, 9 | { 10 | "name": "collectionMarblePrivateDetails", 11 | "policy": "OR('Org2MSP.member', 'Org3MSP.member')", 12 | "requiredPeerCount": 1, 13 | "maxPeerCount": 2, 14 | "blockToLive":3 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /integration/runner/defaults.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package runner 17 | 18 | import ( 19 | "time" 20 | 21 | "github.com/hyperledger/fabric/integration/helpers" 22 | ) 23 | 24 | const DefaultStartTimeout = 30 * time.Second 25 | 26 | //defaultnamer是默认的命名函数。 27 | var DefaultNamer NameFunc = helpers.UniqueName 28 | 29 | //namefunc用于生成容器名称。 30 | type NameFunc func() string 31 | -------------------------------------------------------------------------------- /integration/sbe/testdata/collection_config.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "col", 4 | "policy": "OR('Org1MSP.peer', 'Org2MSP.peer')", 5 | "requiredPeerCount": 2, 6 | "maxPeerCount": 2, 7 | "blockToLive":1000000 8 | } 9 | ] 10 | -------------------------------------------------------------------------------- /msp/testdata/badadmin/cacerts/cacert-COP.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIBrTCCAVKgAwIBAgIJAK8/QQKPJc5dMAoGCCqGSM49BAMCMCkxDDAKBgNVBAoM 3 | A0NPUDEMMAoGA1UECwwDQ09QMQswCQYDVQQDDAJDQTAeFw0xNzA2MjAwOTA5NDBa 4 | Fw0zNzA2MTUwOTA5NDBaMCkxDDAKBgNVBAoMA0NPUDEMMAoGA1UECwwDQ09QMQsw 5 | CQYDVQQDDAJDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLVK0PcjQjZ/pUsW 6 | Y7NHYJSHaPrc7qY/NK9xfLZogZi1axlOz55k6xQH2LIUILffmzXMm3h391Bim3b9 7 | rPdsvjqjYzBhMB0GA1UdDgQWBBQF5TG4S2XkK6XVtSUW63ppNTN2dTAfBgNVHSME 8 | GDAWgBQF5TG4S2XkK6XVtSUW63ppNTN2dTAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud 9 | DwEB/wQEAwIBhjAKBggqhkjOPQQDAgNJADBGAiEAwhPOEE7bfSlDd0WglM1dNHTY 10 | hU2p/Lx0mgPha/5HW0UCIQCp6q+qL/OEP+mUms6C9nnMSu2eVDZQQ2MJgRNBVHjC 11 | cw== 12 | -----END CERTIFICATE----- 13 | -------------------------------------------------------------------------------- /msp/testdata/badadmin/cacerts/cacert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIBrTCCAVKgAwIBAgIJAK8/QQKPJc5dMAoGCCqGSM49BAMCMCkxDDAKBgNVBAoM 3 | A0NPUDEMMAoGA1UECwwDQ09QMQswCQYDVQQDDAJDQTAeFw0xNzA2MjAwOTA5NDBa 4 | Fw0zNzA2MTUwOTA5NDBaMCkxDDAKBgNVBAoMA0NPUDEMMAoGA1UECwwDQ09QMQsw 5 | CQYDVQQDDAJDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLVK0PcjQjZ/pUsW 6 | Y7NHYJSHaPrc7qY/NK9xfLZogZi1axlOz55k6xQH2LIUILffmzXMm3h391Bim3b9 7 | rPdsvjqjYzBhMB0GA1UdDgQWBBQF5TG4S2XkK6XVtSUW63ppNTN2dTAfBgNVHSME 8 | GDAWgBQF5TG4S2XkK6XVtSUW63ppNTN2dTAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud 9 | DwEB/wQEAwIBhjAKBggqhkjOPQQDAgNJADBGAiEAwhPOEE7bfSlDd0WglM1dNHTY 10 | hU2p/Lx0mgPha/5HW0UCIQCp6q+qL/OEP+mUms6C9nnMSu2eVDZQQ2MJgRNBVHjC 11 | cw== 12 | -----END CERTIFICATE----- 13 | -------------------------------------------------------------------------------- /msp/testdata/badadmin/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | 6 | OrganizationalUnitIdentifiers: 7 | - Certificate: "cacerts/cacert.pem" 8 | OrganizationalUnitIdentifier: "COP1" 9 | -------------------------------------------------------------------------------- /msp/testdata/badadmin/keystore/key-COP1.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIAGR4/FR6CVRgwG4gqim4CKKd5NH+CbDSQdd9YD5zqVJoAoGCCqGSM49 3 | AwEHoUQDQgAEdo7+VaZWVMdsaVhxHEqIzd+rhpi6ZdIo9rN4ZVgeF8TX2bbSkk6C 4 | IdKpJPjR1jYpjvOxKVtF1UruKxvzpFbPQw== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/badconfigou/cacerts/cacert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIBrTCCAVKgAwIBAgIJAK8/QQKPJc5dMAoGCCqGSM49BAMCMCkxDDAKBgNVBAoM 3 | A0NPUDEMMAoGA1UECwwDQ09QMQswCQYDVQQDDAJDQTAeFw0xNzA2MjAwOTA5NDBa 4 | Fw0zNzA2MTUwOTA5NDBaMCkxDDAKBgNVBAoMA0NPUDEMMAoGA1UECwwDQ09QMQsw 5 | CQYDVQQDDAJDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLVK0PcjQjZ/pUsW 6 | Y7NHYJSHaPrc7qY/NK9xfLZogZi1axlOz55k6xQH2LIUILffmzXMm3h391Bim3b9 7 | rPdsvjqjYzBhMB0GA1UdDgQWBBQF5TG4S2XkK6XVtSUW63ppNTN2dTAfBgNVHSME 8 | GDAWgBQF5TG4S2XkK6XVtSUW63ppNTN2dTAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud 9 | DwEB/wQEAwIBhjAKBggqhkjOPQQDAgNJADBGAiEAwhPOEE7bfSlDd0WglM1dNHTY 10 | hU2p/Lx0mgPha/5HW0UCIQCp6q+qL/OEP+mUms6C9nnMSu2eVDZQQ2MJgRNBVHjC 11 | cw== 12 | -----END CERTIFICATE----- 13 | -------------------------------------------------------------------------------- /msp/testdata/badconfigou/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | 6 | OrganizationalUnitIdentifiers: 7 | - Certificate: "cacerts/cacert.pem" 8 | OrganizationalUnitIdentifier: "COP1" 9 | -------------------------------------------------------------------------------- /msp/testdata/badconfigou/keystore/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIAu4YO8nk0V76CpJLoAZlqXhUE3dpDnQgOkkKkhcUu4FoAoGCCqGSM49 3 | AwEHoUQDQgAED1djgCwdEwB+sKm2zCbTUFTd6PNkg4IzzVsgpJXIHIILgI1FQf4K 4 | mLbwjeG93ToqWqjHl6/XBIY2nL9JNZ8kcg== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/badconfigoucert/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | 6 | OrganizationalUnitIdentifiers: 7 | - Certificate: "signcerts/peer.pem" 8 | OrganizationalUnitIdentifier: "COP" -------------------------------------------------------------------------------- /msp/testdata/badconfigoucert/keystore/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXa3mln4anewXtqrM 3 | hMw6mfZhslkRa/j9P790ToKjlsihRANCAARnxLhXvU4EmnIwhVl3Bh0VcByQi2um 4 | 9KsJ/QdCDjRZb1dKg447voj5SZ8SSZOUglc/v8DJFFJFTfygjwi+27gz 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/expiration/keystore/83c4189d96988eab469b1afa1dfbcb4463a1fff381d7dba9b9378b51a5ef9e77_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXxOy/nD/twU+d4DL 3 | veUvrzae6jsrmT4vBnZR0cHkjKehRANCAARO3xeuSrBdJ8TYCARVQNsf0FNC7gMr 4 | k7EWklnP8nEALi0HwrYuW2KeFlmkFHObAWigJlWxUE5vUYZjobSM+zy+ 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/expired/keystore/key-expired.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgGgZG6oswVqgm9X+t 3 | XqkRmdozFoJlWIXL0h8FzWcVAAWhRANCAARkSsbJejBqzRIMo+/HNblQ4EdJah77 4 | n4wUv4ZTGzqpBfX/qI9R369qAEGDII+ocInj8c100cpPjW6KoFYHHLLb 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/external/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright London Stock Exchange Group All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | OrganizationalUnitIdentifiers: 6 | - Certificate: "intermediatecerts/intermediatecert.pem" 7 | OrganizationalUnitIdentifier: "Hyperledger Testing" 8 | -------------------------------------------------------------------------------- /msp/testdata/external/keystore/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIHACRdTlDyxk3FDWv2ysl6OnwX5KEKS7TiCOUOGkgq70oAoGCCqGSM49 3 | AwEHoUQDQgAEo3MuMHJxWMv4JPi4UXaQ4WU1YJVdiuzOJ3l6mJ/+KXQYCoLV2Fxl 4 | VuEuf4Qa6t5+gn0wGEflQc8ZOpEs0gq1kA== 5 | -----END EC PRIVATE KEY----- -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU1/ca/IssuerPublicKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1OU1/ca/IssuerPublicKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU1/ca/IssuerSecretKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1OU1/ca/IssuerSecretKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU1/ca/RevocationKey: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGkAgEBBDCDLOqcM8tliQ1ugel+S1W+6iotv3eNmbLa+MZPuyZNVVum3fhXFsrp 3 | sA223vnx+AigBwYFK4EEACKhZANiAATvpQTnSffVMHfgTe0QeL2/JotcQkinEXpS 4 | vV5YpEilns/KLnl8eD3eczaQrCCVtfostEiXSfMwuGC/AmkiVWH5EQzrdw2P0PTz 5 | Q5o3wd60tEbsemPuKlHdDhWNnTHbZkI= 6 | -----END PRIVATE KEY----- 7 | -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU1/msp/IssuerPublicKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1OU1/msp/IssuerPublicKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU1/msp/RevocationPublicKey: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE76UE50n31TB34E3tEHi9vyaLXEJIpxF6 3 | Ur1eWKRIpZ7Pyi55fHg93nM2kKwglbX6LLRIl0nzMLhgvwJpIlVh+REM63cNj9D0 4 | 80OaN8HetLRG7Hpj7ipR3Q4VjZ0x22ZC 5 | -----END PUBLIC KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU1/user/SignerConfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1OU1/user/SignerConfig -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU1Admin/ca/IssuerPublicKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1OU1Admin/ca/IssuerPublicKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU1Admin/ca/IssuerSecretKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1OU1Admin/ca/IssuerSecretKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU1Admin/ca/RevocationKey: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGkAgEBBDCDLOqcM8tliQ1ugel+S1W+6iotv3eNmbLa+MZPuyZNVVum3fhXFsrp 3 | sA223vnx+AigBwYFK4EEACKhZANiAATvpQTnSffVMHfgTe0QeL2/JotcQkinEXpS 4 | vV5YpEilns/KLnl8eD3eczaQrCCVtfostEiXSfMwuGC/AmkiVWH5EQzrdw2P0PTz 5 | Q5o3wd60tEbsemPuKlHdDhWNnTHbZkI= 6 | -----END PRIVATE KEY----- 7 | -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU1Admin/msp/IssuerPublicKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1OU1Admin/msp/IssuerPublicKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU1Admin/msp/RevocationPublicKey: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE76UE50n31TB34E3tEHi9vyaLXEJIpxF6 3 | Ur1eWKRIpZ7Pyi55fHg93nM2kKwglbX6LLRIl0nzMLhgvwJpIlVh+REM63cNj9D0 4 | 80OaN8HetLRG7Hpj7ipR3Q4VjZ0x22ZC 5 | -----END PUBLIC KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU1Admin/user/SignerConfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1OU1Admin/user/SignerConfig -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU2/ca/IssuerPublicKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1OU2/ca/IssuerPublicKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU2/ca/IssuerSecretKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1OU2/ca/IssuerSecretKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU2/ca/RevocationKey: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGkAgEBBDCDLOqcM8tliQ1ugel+S1W+6iotv3eNmbLa+MZPuyZNVVum3fhXFsrp 3 | sA223vnx+AigBwYFK4EEACKhZANiAATvpQTnSffVMHfgTe0QeL2/JotcQkinEXpS 4 | vV5YpEilns/KLnl8eD3eczaQrCCVtfostEiXSfMwuGC/AmkiVWH5EQzrdw2P0PTz 5 | Q5o3wd60tEbsemPuKlHdDhWNnTHbZkI= 6 | -----END PRIVATE KEY----- 7 | -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU2/msp/IssuerPublicKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1OU2/msp/IssuerPublicKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU2/msp/RevocationPublicKey: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE76UE50n31TB34E3tEHi9vyaLXEJIpxF6 3 | Ur1eWKRIpZ7Pyi55fHg93nM2kKwglbX6LLRIl0nzMLhgvwJpIlVh+REM63cNj9D0 4 | 80OaN8HetLRG7Hpj7ipR3Q4VjZ0x22ZC 5 | -----END PUBLIC KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1OU2/user/SignerConfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1OU2/user/SignerConfig -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1Verifier/ca/IssuerPublicKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1Verifier/ca/IssuerPublicKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1Verifier/ca/IssuerSecretKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1Verifier/ca/IssuerSecretKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1Verifier/ca/RevocationKey: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGkAgEBBDCDLOqcM8tliQ1ugel+S1W+6iotv3eNmbLa+MZPuyZNVVum3fhXFsrp 3 | sA223vnx+AigBwYFK4EEACKhZANiAATvpQTnSffVMHfgTe0QeL2/JotcQkinEXpS 4 | vV5YpEilns/KLnl8eD3eczaQrCCVtfostEiXSfMwuGC/AmkiVWH5EQzrdw2P0PTz 5 | Q5o3wd60tEbsemPuKlHdDhWNnTHbZkI= 6 | -----END PRIVATE KEY----- 7 | -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1Verifier/msp/IssuerPublicKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP1Verifier/msp/IssuerPublicKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP1Verifier/msp/RevocationPublicKey: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE76UE50n31TB34E3tEHi9vyaLXEJIpxF6 3 | Ur1eWKRIpZ7Pyi55fHg93nM2kKwglbX6LLRIl0nzMLhgvwJpIlVh+REM63cNj9D0 4 | 80OaN8HetLRG7Hpj7ipR3Q4VjZ0x22ZC 5 | -----END PUBLIC KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP2OU1/ca/IssuerPublicKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP2OU1/ca/IssuerPublicKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP2OU1/ca/IssuerSecretKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP2OU1/ca/IssuerSecretKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP2OU1/ca/RevocationKey: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGkAgEBBDACDZ/H28Lz9ZkRt9DPS0S2St6myYr0yOXUBh6jXnL6Xd6KtxG9Gvbx 3 | izkRk9WPY0qgBwYFK4EEACKhZANiAAShz6e2n4kjEI/AmkIciyGlVXlrcupnNjSN 4 | 3wgtr7WvvtmhmrMSxNRNa+wAuaHKcLwUlRvf/S6xswzdFaWkSOv7b0XQrlpTPZkb 5 | Y7l14ajp4H3Le6dw4D8Wj6PLgDA6EXc= 6 | -----END PRIVATE KEY----- 7 | -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP2OU1/msp/IssuerPublicKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP2OU1/msp/IssuerPublicKey -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP2OU1/msp/RevocationPublicKey: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEoc+ntp+JIxCPwJpCHIshpVV5a3LqZzY0 3 | jd8ILa+1r77ZoZqzEsTUTWvsALmhynC8FJUb3/0usbMM3RWlpEjr+29F0K5aUz2Z 4 | G2O5deGo6eB9y3uncOA/Fo+jy4AwOhF3 5 | -----END PUBLIC KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/idemix/MSP2OU1/user/SignerConfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/msp/testdata/idemix/MSP2OU1/user/SignerConfig -------------------------------------------------------------------------------- /msp/testdata/intermediate/keystore/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTNlF7jY6jBKQGLqs 3 | AgllL7utSIRxZdxy4fexQaNX7JKhRANCAAT3WqE6zy7kgdDbN4Ecv+1ITEjFnOpJ 4 | 52oi5lrBfXhFt+F12qLqSuYs0EqJL0VvbtKZMkdXAkgQB26ifAAvqtTn 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/intermediate2/keystore/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTNlF7jY6jBKQGLqs 3 | AgllL7utSIRxZdxy4fexQaNX7JKhRANCAAT3WqE6zy7kgdDbN4Ecv+1ITEjFnOpJ 4 | 52oi5lrBfXhFt+F12qLqSuYs0EqJL0VvbtKZMkdXAkgQB26ifAAvqtTn 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/mspid/keystore/7c73fd300a90b41c79ace8ee5553e1f3ba12b141892d966617731380189d3f4e_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgyA3kupzpQJ5OKG2+ 3 | dVb3d01tHlqO0rlDcrkxXa3a5ZqhRANCAAT87AUnSCAdBqypilp9DfJjH8VrNrNQ 4 | +ivsb071Sd8FI985zQcY/pNo9raT7iVBMbetbCm6T9xhff3KxGoaV10W 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous1/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | 6 | OrganizationalUnitIdentifiers: 7 | - Certificate: "cacerts/cacert.pem" 8 | OrganizationalUnitIdentifier: "COP" 9 | 10 | NodeOUs: 11 | Enable: true 12 | ClientOUIdentifier: 13 | OrganizationalUnitIdentifier: "OU_client" 14 | PeerOUIdentifier: 15 | OrganizationalUnitIdentifier: "OU_peer" 16 | -------------------------------------------------------------------------------- /msp/testdata/nodeous1/keystore/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXa3mln4anewXtqrM 3 | hMw6mfZhslkRa/j9P790ToKjlsihRANCAARnxLhXvU4EmnIwhVl3Bh0VcByQi2um 4 | 9KsJ/QdCDjRZb1dKg447voj5SZ8SSZOUglc/v8DJFFJFTfygjwi+27gz 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous2/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | NodeOUs: 6 | Enable: true 7 | ClientOUIdentifier: 8 | OrganizationalUnitIdentifier: "OU_client" 9 | PeerOUIdentifier: 10 | OrganizationalUnitIdentifier: "OU_peer" 11 | -------------------------------------------------------------------------------- /msp/testdata/nodeous2/keystore/21779908bb40b2996d730685a5df60c62f05e02356930cd74b0d6acc49a1eafc_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQguOFy8l0P+bo6kZ8u 3 | Ifg/ZZVqQ7PBuMDluuWvQKbp9/ChRANCAAS3PGmLJ4CMAXKEEnegPCgyJCtttQ1x 4 | L+dQHS5uF4lqSPVEhvUPBymrCQZJw70osW7HkoO5tu/xH9JIqaQp61dA 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous2/keystore/f8c30e5fad3f1af5f080a87c23ce37e40e6d4ac30019e31ca2c6e7c6bffa26c8_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgiuQrD8AWn0d30+Wy 3 | iX5OTi7NEDyV6mxRuRh283G9+DChRANCAATRSQdoQmIHhrT3Fo0yJ3qNCNbjzoyx 4 | mRFg02q8My+MRYRjCTtgiyv3Ps3uDdgyPyFvjuDnWJFlGMmReRkGmXJK 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous3/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | NodeOUs: 6 | Enable: true 7 | ClientOUIdentifier: 8 | OrganizationalUnitIdentifier: "OU_client" 9 | PeerOUIdentifier: 10 | OrganizationalUnitIdentifier: "OU_peer" 11 | -------------------------------------------------------------------------------- /msp/testdata/nodeous3/keystore/212d57370dd1e4bacc414d0070121197d6c34b694dec33242bb3ffc4ef13e23b_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQguubk0m2KiJacIUKi 3 | V+5eflZU0yZsobTeSZM4S8rMp+GhRANCAASMnS0d3NjE/xlShCyWG163UZpkvJde 4 | elNV4r8F0EdDfXMqFePMsvPE56Jaa8o6dga5xIxVUx+Z+lYDMo1gwvPC 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous3/keystore/d51e8e0ea19acbc3090a82bd0ae36db670a368512dbd1a20e58089113a20e24b_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeb9wr9oJ7G9j0CJ7 3 | 0FEYJfJ2Fm/ZRQTjapi9bRH1Z66hRANCAASJvfkAT/mLwdCRkE0Ppg2yJk3dhZ6L 4 | NWNcWlYvC1HfoAa0gyGYiX0J82JspUE24/FK8zMPq9+h6ZnPHJ6zMxCd 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous4/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | NodeOUs: 6 | Enable: true 7 | ClientOUIdentifier: 8 | Certificate: "cacerts/external_ca.pem" 9 | OrganizationalUnitIdentifier: "OU_client" 10 | PeerOUIdentifier: 11 | Certificate: "cacerts/cacert.pem" 12 | OrganizationalUnitIdentifier: "OU_peer" 13 | -------------------------------------------------------------------------------- /msp/testdata/nodeous4/keystore/212d57370dd1e4bacc414d0070121197d6c34b694dec33242bb3ffc4ef13e23b_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQguubk0m2KiJacIUKi 3 | V+5eflZU0yZsobTeSZM4S8rMp+GhRANCAASMnS0d3NjE/xlShCyWG163UZpkvJde 4 | elNV4r8F0EdDfXMqFePMsvPE56Jaa8o6dga5xIxVUx+Z+lYDMo1gwvPC 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous4/keystore/d51e8e0ea19acbc3090a82bd0ae36db670a368512dbd1a20e58089113a20e24b_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeb9wr9oJ7G9j0CJ7 3 | 0FEYJfJ2Fm/ZRQTjapi9bRH1Z66hRANCAASJvfkAT/mLwdCRkE0Ppg2yJk3dhZ6L 4 | NWNcWlYvC1HfoAa0gyGYiX0J82JspUE24/FK8zMPq9+h6ZnPHJ6zMxCd 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous5/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | NodeOUs: 6 | Enable: true 7 | ClientOUIdentifier: 8 | OrganizationalUnitIdentifier: "OU_client" 9 | PeerOUIdentifier: 10 | OrganizationalUnitIdentifier: "OU_peer" 11 | -------------------------------------------------------------------------------- /msp/testdata/nodeous5/keystore/012ba73f50e24826785f48d1e60dcb972cfc2c5df7c41cdc0ecbbd52b02ca248_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgtB2spI0XSZlUFpFr 3 | oKarKXD+XrE8qYatbwivuiEbznuhRANCAARQ0e5cIZjSKwVNq2ua/hFezvYgsqBY 4 | eRHKo+ooUEaI9Gni/7m9NHfy5BP/8jizmpAw0B2DP9U2oOSskHnEH6oz 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous5/keystore/47e79b836df4b16212176f607b37d95f97ecfdcdc658b7e6eaeab251251a01aa_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg7Sbw+MrH0R4iw1Ly 3 | omN3QyKoj30iWP0mssxCvVe9mdChRANCAASgkPNAlBuRv9/LHbwExyFAXc3KT2DF 4 | c1aRgawkqctuhj1NIiFUdoPtjpBR3as67Dh3Z9yY6chTs6LFz2DOSU6+ 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous6/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | OrganizationalUnitIdentifiers: 6 | - Certificate: "cacerts/cacert.pem" 7 | OrganizationalUnitIdentifier: "OU_client" 8 | - Certificate: "cacerts/cacert.pem" 9 | OrganizationalUnitIdentifier: "OU_peer" 10 | 11 | NodeOUs: 12 | Enable: true 13 | ClientOUIdentifier: 14 | OrganizationalUnitIdentifier: "OU_client" 15 | PeerOUIdentifier: 16 | OrganizationalUnitIdentifier: "OU_peer" 17 | -------------------------------------------------------------------------------- /msp/testdata/nodeous6/keystore/212d57370dd1e4bacc414d0070121197d6c34b694dec33242bb3ffc4ef13e23b_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQguubk0m2KiJacIUKi 3 | V+5eflZU0yZsobTeSZM4S8rMp+GhRANCAASMnS0d3NjE/xlShCyWG163UZpkvJde 4 | elNV4r8F0EdDfXMqFePMsvPE56Jaa8o6dga5xIxVUx+Z+lYDMo1gwvPC 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous6/keystore/d51e8e0ea19acbc3090a82bd0ae36db670a368512dbd1a20e58089113a20e24b_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeb9wr9oJ7G9j0CJ7 3 | 0FEYJfJ2Fm/ZRQTjapi9bRH1Z66hRANCAASJvfkAT/mLwdCRkE0Ppg2yJk3dhZ6L 4 | NWNcWlYvC1HfoAa0gyGYiX0J82JspUE24/FK8zMPq9+h6ZnPHJ6zMxCd 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous7/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | OrganizationalUnitIdentifiers: 6 | - Certificate: "cacerts/cacert.pem" 7 | OrganizationalUnitIdentifier: "OU_common" 8 | 9 | NodeOUs: 10 | Enable: true 11 | ClientOUIdentifier: 12 | OrganizationalUnitIdentifier: "OU_client" 13 | PeerOUIdentifier: 14 | OrganizationalUnitIdentifier: "OU_peer" 15 | -------------------------------------------------------------------------------- /msp/testdata/nodeous7/keystore/212d57370dd1e4bacc414d0070121197d6c34b694dec33242bb3ffc4ef13e23b_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQguubk0m2KiJacIUKi 3 | V+5eflZU0yZsobTeSZM4S8rMp+GhRANCAASMnS0d3NjE/xlShCyWG163UZpkvJde 4 | elNV4r8F0EdDfXMqFePMsvPE56Jaa8o6dga5xIxVUx+Z+lYDMo1gwvPC 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous7/keystore/d51e8e0ea19acbc3090a82bd0ae36db670a368512dbd1a20e58089113a20e24b_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeb9wr9oJ7G9j0CJ7 3 | 0FEYJfJ2Fm/ZRQTjapi9bRH1Z66hRANCAASJvfkAT/mLwdCRkE0Ppg2yJk3dhZ6L 4 | NWNcWlYvC1HfoAa0gyGYiX0J82JspUE24/FK8zMPq9+h6ZnPHJ6zMxCd 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/nodeous8/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | NodeOUs: 6 | Enable: true 7 | ClientOUIdentifier: 8 | Certificate: "cacerts/external_ca.pem" 9 | OrganizationalUnitIdentifier: "OU_client" 10 | PeerOUIdentifier: 11 | Certificate: "cacerts/cacert.pem" 12 | OrganizationalUnitIdentifier: "OU_peer" 13 | -------------------------------------------------------------------------------- /msp/testdata/nodeous8/keystore/f3a673451e3bf0f74b4fd7b24f6dbfd8d795c2173d11d255b6a4f4ad3cd23046_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg/8r4HVXlpB+CUmYY 3 | UlNb7OcNrQQ/1LAbA3iTA4rCDEmhRANCAARYlXb/h8Qc4jUhOSKAlq0CfCiweYkX 4 | FBuPRYYapzTN1yy7Wje0Rlt/ufSFufqMlX1f8+0iOSpkaLSj9YJml0Hi 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/revocation/crls/crl.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN X509 CRL----- 2 | MIIBNTCB3AIBATAKBggqhkjOPQQDAjBXMQswCQYDVQQGEwJVUzETMBEGA1UECBMK 3 | Q2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEOMAwGA1UEChMFcm9v 4 | dDIxCzAJBgNVBAMTAmNhFw0xNzEyMjExNzExNTRaFw0yNzEyMTkxNzExNTRaMCMw 5 | IQIQaiOerd7fYdLv3WOe3G7maRcNMTcxMjIxMTcxMTU0WqAvMC0wKwYDVR0jBCQw 6 | IoAgXQu9qpyvtmox2hOtTuxMDMUyYKoJu3r8ftlgn2TH8TowCgYIKoZIzj0EAwID 7 | SAAwRQIhAOZOMOJps28IhWbg4HBibE2ft5S4pChxVT9AXFOVE0WCAiB/NFueHuNi 8 | h+VjDOTEo7xzWdCWfGLDcDBfiofROn+1AQ== 9 | -----END X509 CRL----- 10 | -------------------------------------------------------------------------------- /msp/testdata/revocation/keystore/key-admin.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg+EhTHkULTfQ6JEeN 3 | ZeI+e955YBpE7tkJera94TMc8j+hRANCAASZLwRAf9F56KOna4rJAAa6XxQJat3y 4 | lrdw/XO+snCn4YLyHGczP87rX4A/r9Hx6TV7ZP/5rpjtSz8RDFXL6UN1 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/revocation/keystore/key-revoked.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgEExeh2BgtWDBiFzX 3 | FtvW/6BldCVvU5RhAHSZj8VX4e+hRANCAATkCUK/7PBlDVY6IyYVdLIJaHjz5Bx3 4 | mTMwySYwUsDYU0zD0btx0EBAKjTMDiLqkC5dllaxrU4gzHxr5hy99+zj 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/revocation2/crls/crl.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN X509 CRL----- 2 | MIIBYzCCAQgCAQEwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxEzARBgNVBAgT 3 | CkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xHzAdBgNVBAoTFklu 4 | dGVybmV0IFdpZGdldHMsIEluYy4xDDAKBgNVBAsTA1dXVzEUMBIGA1UEAxMLZXhh 5 | bXBsZS5jb20XDTE3MDEyMzIwNTYyMFoXDTE3MDEyNjIwNTYyMFowJzAlAhQERXCx 6 | LHROap1vM3CV40EHOghPTBcNMTcwMTIzMjA0NzMxWqAvMC0wHwYDVR0jBBgwFoAU 7 | F2dCPaqegj/ExR2fW8OZ0bWcSBAwCgYDVR0UBAMCAQgwCgYIKoZIzj0EAwIDSQAw 8 | RgIhAOTTpQYkAO+gwVe1LQOcNMD5fzFViOwBUraMrk6dRMlmAiEA8z2dpXKGwHrj 9 | FRBbKkDnSpaVcZgjns+mLdHV2JkF0gk= 10 | -----END X509 CRL----- 11 | -------------------------------------------------------------------------------- /msp/testdata/revocation2/keystore/key-admin.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg+EhTHkULTfQ6JEeN 3 | ZeI+e955YBpE7tkJera94TMc8j+hRANCAASZLwRAf9F56KOna4rJAAa6XxQJat3y 4 | lrdw/XO+snCn4YLyHGczP87rX4A/r9Hx6TV7ZP/5rpjtSz8RDFXL6UN1 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/revocation2/keystore/key-revoked.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgEExeh2BgtWDBiFzX 3 | FtvW/6BldCVvU5RhAHSZj8VX4e+hRANCAATkCUK/7PBlDVY6IyYVdLIJaHjz5Bx3 4 | mTMwySYwUsDYU0zD0btx0EBAKjTMDiLqkC5dllaxrU4gzHxr5hy99+zj 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/revokedica/crls/crl.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN X509 CRL----- 2 | MIIBMzCB2gIBATAKBggqhkjOPQQDAjBVMQswCQYDVQQGEwJVUzETMBEGA1UECBMK 3 | Q2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEMMAoGA1UEChMDb3Jn 4 | MQswCQYDVQQDEwJjYRcNMTcwNTExMDc0NjA3WhcNMjcwNTA5MDc0NjA3WjAjMCEC 5 | EEzQohO1frOTEWQE+9Ws8nsXDTE3MDUxMTA3NDYwN1qgLzAtMCsGA1UdIwQkMCKA 6 | ILOKM0SqRHTIKzbZMATaI82czZcZ4GkiMqnsbrmdNVPZMAoGCCqGSM49BAMCA0gA 7 | MEUCIQCz/DcyUVInAUW3D/+618a/UovNdXT7guOhjMCx8nGufAIgbtoVSX6VnMc/ 8 | 7ZQ6p4XhR0XMZxxD0oIKNSuqtGsEkEo= 9 | -----END X509 CRL----- 10 | -------------------------------------------------------------------------------- /msp/testdata/revokedica/keystore/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgYV78DPlUOeRDAsOl 3 | VfZMheUFtsloDxt2jMQ2pEKHG9GhRANCAASeSmDdDmjMnbl8NbeVNO6Vdvb7EgK2 4 | uG5RUBz8vsdizGP5FcZGkA21BgLkgjj9MHHqlL1xJBMS+VItLhnDSuLe 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /msp/testdata/tls/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright London Stock Exchange Group All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | OrganizationalUnitIdentifiers: 6 | - Certificate: "intermediatecerts/intermediatecert.pem" 7 | OrganizationalUnitIdentifier: "Hyperledger Testing" 8 | -------------------------------------------------------------------------------- /msp/testdata/tls/keystore/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIHACRdTlDyxk3FDWv2ysl6OnwX5KEKS7TiCOUOGkgq70oAoGCCqGSM49 3 | AwEHoUQDQgAEo3MuMHJxWMv4JPi4UXaQ4WU1YJVdiuzOJ3l6mJ/+KXQYCoLV2Fxl 4 | VuEuf4Qa6t5+gn0wGEflQc8ZOpEs0gq1kA== 5 | -----END EC PRIVATE KEY----- -------------------------------------------------------------------------------- /orderer/common/cluster/testdata/block3.pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/orderer/common/cluster/testdata/block3.pb -------------------------------------------------------------------------------- /orderer/common/cluster/testdata/mychannel.block: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/orderer/common/cluster/testdata/mychannel.block -------------------------------------------------------------------------------- /orderer/common/cluster/testdata/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgP0K7Hf7I6XoXLHif 3 | lSTYSUjqLUiYN5jBvJ4F0W52+XmhRANCAATRG9wa4psc4NGylfnc2NRs+9RkY+1F 4 | pz+b0sV66mthHKa1LqSvjJbvh36t7pttIbdHa7gEUp9LcoSPrzutu8Ea 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /orderer/common/server/signals.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | //+建设!窗户 10 | 11 | /* 12 | 版权所有IBM公司。保留所有权利。 13 | 14 | SPDX许可证标识符:Apache-2.0 15 | **/ 16 | 17 | 18 | package server 19 | 20 | import ( 21 | "os" 22 | "syscall" 23 | 24 | "github.com/hyperledger/fabric/common/diag" 25 | ) 26 | 27 | func addPlatformSignals(sigs map[os.Signal]func()) map[os.Signal]func() { 28 | sigs[syscall.SIGUSR1] = func() { diag.LogGoRoutines(logger.Named("diag")) } 29 | return sigs 30 | } 31 | -------------------------------------------------------------------------------- /orderer/common/server/signals_windows.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | //+构建窗口 10 | 11 | /* 12 | 版权所有IBM公司。保留所有权利。 13 | 14 | SPDX许可证标识符:Apache-2.0 15 | **/ 16 | 17 | 18 | package server 19 | 20 | import ( 21 | "os" 22 | ) 23 | 24 | func addPlatformSignals(sigs map[os.Signal]func()) map[os.Signal]func() { 25 | return sigs 26 | } 27 | -------------------------------------------------------------------------------- /orderer/common/server/testdata/genesis.block: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/orderer/common/server/testdata/genesis.block -------------------------------------------------------------------------------- /orderer/common/server/testdata/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgHg2V/8BCgZCwQIOd 3 | bWv+gLI1APkdEqzAoGjI/1OTC1WhRANCAASS2UdIW3vhoska9TkcYLRIgwXAsyln 4 | oAxZGVt15dP3W5OcutD0hSIktH2/bF6BMyDlVzdCIRBOgHkmfMJRBhGF 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /orderer/consensus/etcdraft/etcdraft_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | package etcdraft_test 16 | 17 | import ( 18 | "testing" 19 | 20 | . "github.com/onsi/ginkgo" 21 | . "github.com/onsi/gomega" 22 | ) 23 | 24 | var testingInstance *testing.T 25 | 26 | func TestEtcdraft(t *testing.T) { 27 | testingInstance = t 28 | RegisterFailHandler(Fail) 29 | RunSpecs(t, "Etcdraft Suite") 30 | } 31 | -------------------------------------------------------------------------------- /orderer/consensus/etcdraft/mocks/configurator.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | //Code generated by mockery v1.0.0. 不要编辑。 10 | 11 | package mocks 12 | 13 | import cluster "github.com/hyperledger/fabric/orderer/common/cluster" 14 | 15 | import mock "github.com/stretchr/testify/mock" 16 | 17 | //配置器是为配置器类型自动生成的模拟类型 18 | type Configurator struct { 19 | mock.Mock 20 | } 21 | 22 | //configure提供了一个具有给定字段的模拟函数:channel、newnodes 23 | func (_m *Configurator) Configure(channel string, newNodes []cluster.RemoteNode) { 24 | _m.Called(channel, newNodes) 25 | } 26 | -------------------------------------------------------------------------------- /orderer/consensus/etcdraft/testdata/etcdraftgenesis.block: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/orderer/consensus/etcdraft/testdata/etcdraftgenesis.block -------------------------------------------------------------------------------- /orderer/consensus/etcdraft/testdata/mychannel.block: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/orderer/consensus/etcdraft/testdata/mychannel.block -------------------------------------------------------------------------------- /orderer/main.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM Corp.2017保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | //package main是订购方二进制文件的入口点 17 | //并且只调用server.main()函数。没有其他 18 | //此包中应包含函数。 19 | package main 20 | 21 | import "github.com/hyperledger/fabric/orderer/common/server" 22 | 23 | func main() { 24 | server.Main() 25 | } 26 | -------------------------------------------------------------------------------- /peer/chaincode/api/api.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package api 17 | 18 | import ( 19 | pcommon "github.com/hyperledger/fabric/protos/common" 20 | pb "github.com/hyperledger/fabric/protos/peer" 21 | ) 22 | 23 | //go:生成伪造者-o../mock/deliver.go-伪造名称deliver。递送 24 | 25 | //Deliver定义用于传递块的接口 26 | type Deliver interface { 27 | Send(*pcommon.Envelope) error 28 | Recv() (*pb.DeliverResponse, error) 29 | CloseSend() error 30 | } 31 | -------------------------------------------------------------------------------- /peer/common/testdata/absolute.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | peer: 6 | BCCSP: 7 | Default: SW 8 | SW: 9 | Hash: SHA2 10 | Security: 256 11 | FileKeyStore: 12 | # absolute path 13 | KeyStore: /msp/keystore 14 | -------------------------------------------------------------------------------- /peer/common/testdata/certs/bad.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgg6BAaCpwlmg/hEP4 3 | QjUeWEu3crkxMvjq4vYh3LaDREuhRANCAAR+FujNKcGQW/CEpMU6Yp45ye2cbOwJ 4 | -----END PRIVATE KEY----- 5 | -------------------------------------------------------------------------------- /peer/common/testdata/certs/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgg6BAaCpwlmg/hEP4 3 | QjUeWEu3crkxMvjq4vYh3LaDREuhRANCAAR+FujNKcGQW/CEpMU6Yp45ye2cbOwJ 4 | iB8Ddv41SGYNoaKALIaCxdRj0tLo9CEMhtlnhi3SbTcms1IsRRN+O5UY 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /peer/common/testdata/notset.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | peer: 6 | BCCSP: 7 | Default: SW 8 | SW: 9 | Hash: SHA2 10 | Security: 256 11 | FileKeyStore: 12 | # not set 13 | KeyStore: 14 | -------------------------------------------------------------------------------- /peer/common/testdata/relative.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | peer: 6 | BCCSP: 7 | Default: SW 8 | SW: 9 | Hash: SHA2 10 | Security: 256 11 | FileKeyStore: 12 | # relative path 13 | KeyStore: msp/keystore 14 | -------------------------------------------------------------------------------- /peer/common/testdata/test.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | peer: 6 | tls: 7 | rootcert: 8 | file: "certs/ca.crt" 9 | clientKey: 10 | file: "certs/client.key" 11 | clientCert: 12 | file: "certs/client.crt" 13 | client: 14 | connTimeout: 1s 15 | 16 | orderer: 17 | tls: 18 | rootcert: 19 | file: "certs/ca.crt" 20 | clientKey: 21 | file: "certs/client.key" 22 | clientCert: 23 | file: "certs/client.crt" 24 | client: 25 | connTimeout: 1s 26 | -------------------------------------------------------------------------------- /peer/node/signals.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | //+建设!窗户 10 | 11 | /* 12 | 版权所有IBM公司。保留所有权利。 13 | 14 | SPDX许可证标识符:Apache-2.0 15 | **/ 16 | 17 | 18 | package node 19 | 20 | import ( 21 | "os" 22 | "syscall" 23 | 24 | "github.com/hyperledger/fabric/common/diag" 25 | ) 26 | 27 | func addPlatformSignals(sigs map[os.Signal]func()) map[os.Signal]func() { 28 | sigs[syscall.SIGUSR1] = func() { diag.LogGoRoutines(logger.Named("diag")) } 29 | return sigs 30 | } 31 | -------------------------------------------------------------------------------- /peer/node/signals_windows.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | //+构建窗口 10 | 11 | /* 12 | 版权所有IBM公司。保留所有权利。 13 | 14 | SPDX许可证标识符:Apache-2.0 15 | **/ 16 | 17 | 18 | package node 19 | 20 | import ( 21 | "os" 22 | ) 23 | 24 | func addPlatformSignals(sigs map[os.Signal]func()) map[os.Signal]func() { 25 | return sigs 26 | } 27 | -------------------------------------------------------------------------------- /protos/.protoroot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/protos/.protoroot -------------------------------------------------------------------------------- /protos/ledger/rwset/kvrwset/tests/.gitattributes: -------------------------------------------------------------------------------- 1 | # Define binary file attributes. 2 | kvrwsetV1ProtoBytes binary 3 | -------------------------------------------------------------------------------- /protos/ledger/rwset/kvrwset/tests/kvrwsetV1ProtoBytes: -------------------------------------------------------------------------------- 1 | 2 | 3 | key1$ 4 | k0k9" 5 | 6 | 7 | k1 8 | 9 | 10 | k2" 11 | k00k90*Hash-1Hash-2 12 | key2value2 -------------------------------------------------------------------------------- /protos/ledger/rwset/tests/.gitattributes: -------------------------------------------------------------------------------- 1 | # Define binary file attributes. 2 | rwsetV1ProtoBytes binary 3 | -------------------------------------------------------------------------------- /protos/ledger/rwset/tests/rwsetV1ProtoBytes: -------------------------------------------------------------------------------- 1 |  2 | ns-1 3 | ns-1-rwset 4 | ns-2 5 | ns-2-rwset -------------------------------------------------------------------------------- /sampleconfig/msp/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright IBM Corp. All Rights Reserved. 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | 6 | OrganizationalUnitIdentifiers: 7 | - Certificate: "cacerts/cacert.pem" 8 | OrganizationalUnitIdentifier: "COP" 9 | 10 | NodeOUs: 11 | Enable: false 12 | ClientOUIdentifier: 13 | # if Certificate is empty, then the certifier identifier will not be enforced 14 | Certificate: "cacerts/cacert.pem" 15 | OrganizationalUnitIdentifier: "OU_client" 16 | PeerOUIdentifier: 17 | Certificate: "cacerts/cacert.pem" 18 | OrganizationalUnitIdentifier: "OU_peer" 19 | -------------------------------------------------------------------------------- /sampleconfig/msp/keystore/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXa3mln4anewXtqrM 3 | hMw6mfZhslkRa/j9P790ToKjlsihRANCAARnxLhXvU4EmnIwhVl3Bh0VcByQi2um 4 | 9KsJ/QdCDjRZb1dKg447voj5SZ8SSZOUglc/v8DJFFJFTfygjwi+27gz 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /scripts/changelog.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright IBM Corp. All Rights Reserved. 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | 8 | 9 | echo "## $2\n$(date)" >> CHANGELOG.new 10 | echo "" >> CHANGELOG.new 11 | git log $1..HEAD --oneline | grep -v Merge | sed -e "s/\[\(FAB-[0-9]*\)\]/\[\1\](https:\/\/jira.hyperledger.org\/browse\/\1\)/" -e "s/ \(FAB-[0-9]*\)/ \[\1\](https:\/\/jira.hyperledger.org\/browse\/\1\)/" -e "s/\([0-9|a-z]*\)/* \[\1\](https:\/\/github.com\/hyperledger\/fabric\/commit\/\1)/" >> CHANGELOG.new 12 | echo "" >> CHANGELOG.new 13 | cat CHANGELOG.md >> CHANGELOG.new 14 | mv -f CHANGELOG.new CHANGELOG.md 15 | -------------------------------------------------------------------------------- /scripts/check_deps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | # Copyright IBM Corp All Rights Reserved. 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | 7 | dep version 8 | dep check 9 | -------------------------------------------------------------------------------- /scripts/check_trailingspaces.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright Hitachi, Ltd. All Rights Reserved. 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | COMMIT_FILES=`git diff --name-only --diff-filter=ACMRTUXB HEAD | grep -Ev '(^|/)vendor/'` 6 | 7 | echo "Checking trailing spaces ..." 8 | for filename in `echo $COMMIT_FILES`; do 9 | if [[ `file $filename` == *"ASCII text"* ]]; 10 | then 11 | if [ ! -z "`egrep -l " +$" $filename`" ]; 12 | then 13 | FOUND_TRAILING='yes' 14 | echo "Error: Trailing spaces found in file:$filename, lines:" 15 | egrep -n " +$" $filename 16 | fi 17 | fi 18 | done 19 | 20 | if [ ! -z ${FOUND_TRAILING+x} ]; 21 | then 22 | echo "Please omit trailing spaces and make again." 23 | exit 1 24 | fi 25 | -------------------------------------------------------------------------------- /scripts/goListFiles.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright Greg Haskins All Rights Reserved. 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | 8 | 9 | find_golang_src() { 10 | find $1 -name "*.go" -or -name "*.h" -or -name "*.c" -or -name "*.s" 11 | } 12 | 13 | list_deps() { 14 | target=$1 15 | 16 | deps=`go list -f '{{ join .Deps "\n" }}' $target` 17 | 18 | find_golang_src $GOPATH/src/$target 19 | 20 | for dep in $deps; 21 | do 22 | importpath=$GOPATH/src/$dep 23 | if [ -d $importpath ]; 24 | then 25 | find_golang_src $importpath 26 | fi 27 | done 28 | } 29 | 30 | list_deps $1 | sort | uniq 31 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ":core:chaincode:shim:java" 2 | include ":examples:chaincode:java:Example" 3 | include ":examples:chaincode:java:MapExample" 4 | include ":examples:chaincode:java:LinkExample" 5 | include ":examples:chaincode:java:SimpleSample" 6 | include ":examples:chaincode:java:RangeExample" 7 | include ":examples:chaincode:java:TableExample" 8 | -------------------------------------------------------------------------------- /test-pyramid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yinchengtsinghua/Fabric-Chinese/523a819b7bfd800b55e5261287900aad863a8122/test-pyramid.png -------------------------------------------------------------------------------- /token/client/msp.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | package client 16 | 17 | //go:生成伪造者-o mock/signer_identity.go-fake name signer identity。签名身份 18 | 19 | type Signer interface { 20 | //sign对给定的有效负载进行签名并返回签名 21 | Sign([]byte) ([]byte, error) 22 | } 23 | 24 | //SignerIdentity对消息进行签名并将其公共标识序列化为字节 25 | type SignerIdentity interface { 26 | Signer 27 | 28 | //serialize返回用于验证的此标识的字节表示形式 29 | //此SignerIdentity签名的邮件 30 | Serialize() ([]byte, error) 31 | } 32 | -------------------------------------------------------------------------------- /token/server/msp.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | package server 16 | 17 | //go:生成伪造者-o mock/signer_identity.go-fake name signer identity。签名身份 18 | 19 | type Signer interface { 20 | //sign对给定的有效负载进行签名并返回签名 21 | Sign([]byte) ([]byte, error) 22 | } 23 | 24 | //SignerIdentity对消息进行签名并将其公共标识序列化为字节 25 | type SignerIdentity interface { 26 | Signer 27 | 28 | //serialize返回用于验证的此标识的字节表示形式 29 | //此SignerIdentity签名的邮件 30 | Serialize() ([]byte, error) 31 | } 32 | -------------------------------------------------------------------------------- /token/tms/manager/manager_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package manager_test 17 | 18 | import ( 19 | "testing" 20 | 21 | . "github.com/onsi/ginkgo" 22 | . "github.com/onsi/gomega" 23 | ) 24 | 25 | func TestTransaction(t *testing.T) { 26 | RegisterFailHandler(Fail) 27 | RunSpecs(t, "Manager Suite") 28 | } 29 | -------------------------------------------------------------------------------- /token/tms/plain/plain_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package plain_test 17 | 18 | import ( 19 | "testing" 20 | 21 | . "github.com/onsi/ginkgo" 22 | . "github.com/onsi/gomega" 23 | ) 24 | 25 | func TestPlain(t *testing.T) { 26 | RegisterFailHandler(Fail) 27 | RunSpecs(t, "Plain Suite") 28 | } 29 | -------------------------------------------------------------------------------- /token/tms/transactiondata.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM Corp.2017保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package tms 17 | 18 | import "github.com/hyperledger/fabric/protos/token" 19 | 20 | //TransactionData结构包含令牌事务和结构事务ID。 21 | //令牌事务由验证方对等方创建,但仅创建事务ID 22 | //稍后由客户机执行(使用令牌事务和nonce)。在验证和提交时 23 | //提交对等机需要时间、令牌事务和事务ID。 24 | //将它们存储在一个结构中有助于处理它们。 25 | type TransactionData struct { 26 | Tx *token.TokenTransaction 27 | //结构事务ID 28 | TxID string 29 | } 30 | -------------------------------------------------------------------------------- /token/transaction/transaction_suite_test.go: -------------------------------------------------------------------------------- 1 | 2 | //此源码被清华学神尹成大魔王专业翻译分析并修改 3 | //尹成QQ77025077 4 | //尹成微信18510341407 5 | //尹成所在QQ群721929980 6 | //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 | //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 | //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 | /* 10 | 版权所有IBM公司。保留所有权利。 11 | 12 | SPDX许可证标识符:Apache-2.0 13 | **/ 14 | 15 | 16 | package transaction_test 17 | 18 | import ( 19 | "testing" 20 | 21 | . "github.com/onsi/ginkgo" 22 | . "github.com/onsi/gomega" 23 | ) 24 | 25 | func TestTransaction(t *testing.T) { 26 | RegisterFailHandler(Fail) 27 | RunSpecs(t, "Transaction Suite") 28 | } 29 | -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | minversion = 1.6 3 | envlist = 4 | docs, 5 | docs-linkcheck 6 | skipsdist=true 7 | 8 | [testenv:docs] 9 | deps = -rdocs/requirements.txt 10 | commands = 11 | sphinx-build -b html -n -d {envtmpdir}/doctrees ./docs/source {toxinidir}/docs/_build/html 12 | echo "Generated docs available in {toxinidir}/docs/_build/html" 13 | whitelist_externals = echo 14 | 15 | [testenv:docs-linkcheck] 16 | deps = -rdocs/requirements.txt 17 | commands = 18 | sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs/source {toxinidir}/docs/_build/linkcheck 19 | --------------------------------------------------------------------------------