├── .gitignore
├── 0.secure.blockchain.ibm.com.cert
├── README.md
├── ServiceCredentials.json
├── config.json
├── helloblockchain.js
├── package.json
├── servicecreds.png
├── src
└── chaincode
│ ├── chaincode_example.go
│ └── vendor
│ └── github.com
│ └── hyperledger
│ └── fabric
│ ├── consensus
│ ├── consensus.go
│ ├── controller
│ │ └── controller.go
│ ├── executor
│ │ ├── executor.go
│ │ └── executor_test.go
│ ├── helper
│ │ ├── engine.go
│ │ ├── engine_test.go
│ │ ├── handler.go
│ │ ├── handler_test.go
│ │ ├── helper.go
│ │ ├── helper_test.go
│ │ └── persist
│ │ │ ├── persist.go
│ │ │ └── persist_test.go
│ ├── noops
│ │ ├── config.yaml
│ │ ├── configutil.go
│ │ ├── noops.go
│ │ └── txq.go
│ ├── pbft
│ │ ├── batch.go
│ │ ├── batch_test.go
│ │ ├── broadcast.go
│ │ ├── broadcast_test.go
│ │ ├── config.yaml
│ │ ├── deduplicator.go
│ │ ├── external.go
│ │ ├── fuzz_test.go
│ │ ├── messages.pb.go
│ │ ├── messages.proto
│ │ ├── mock_consumer_test.go
│ │ ├── mock_ledger_test.go
│ │ ├── mock_network_test.go
│ │ ├── mock_utilities_test.go
│ │ ├── pbft-core.go
│ │ ├── pbft-core_mock_test.go
│ │ ├── pbft-core_test.go
│ │ ├── pbft-persist.go
│ │ ├── pbft.go
│ │ ├── persist-forward.go
│ │ ├── requeststore.go
│ │ ├── requeststore_test.go
│ │ ├── sign.go
│ │ ├── util.go
│ │ └── viewchange.go
│ └── util
│ │ ├── events
│ │ ├── events.go
│ │ └── events_test.go
│ │ ├── messagefan.go
│ │ └── messagefan_test.go
│ ├── core
│ ├── admin.go
│ ├── admin_test.go
│ ├── chaincode
│ │ ├── chaincode_support.go
│ │ ├── chaincodetest.yaml
│ │ ├── config.go
│ │ ├── exectransaction.go
│ │ ├── exectransaction_test.go
│ │ ├── handler.go
│ │ ├── platforms
│ │ │ ├── car
│ │ │ │ ├── hash.go
│ │ │ │ ├── package.go
│ │ │ │ ├── platform.go
│ │ │ │ └── test
│ │ │ │ │ ├── car_test.go
│ │ │ │ │ └── org.hyperledger.chaincode.example02-0.1-SNAPSHOT.car
│ │ │ ├── golang
│ │ │ │ ├── hash.go
│ │ │ │ ├── hash_test.go
│ │ │ │ ├── hashtestfiles
│ │ │ │ │ ├── a.txt
│ │ │ │ │ ├── a
│ │ │ │ │ │ ├── a1.txt
│ │ │ │ │ │ └── a2.txt
│ │ │ │ │ ├── b.txt
│ │ │ │ │ └── b
│ │ │ │ │ │ ├── c.txt
│ │ │ │ │ │ └── c
│ │ │ │ │ │ └── c1.txt
│ │ │ │ ├── package.go
│ │ │ │ └── platform.go
│ │ │ ├── java
│ │ │ │ ├── hash.go
│ │ │ │ ├── hash_test.go
│ │ │ │ ├── package.go
│ │ │ │ ├── platform.go
│ │ │ │ └── test
│ │ │ │ │ └── java_test.go
│ │ │ └── platforms.go
│ │ ├── shim
│ │ │ ├── chaincode.go
│ │ │ ├── crypto
│ │ │ │ ├── attr
│ │ │ │ │ ├── attr_support.go
│ │ │ │ │ ├── attr_support_test.go
│ │ │ │ │ └── test_resources
│ │ │ │ │ │ ├── prek0.dump
│ │ │ │ │ │ ├── tcert.dump
│ │ │ │ │ │ ├── tcert_bad.dump
│ │ │ │ │ │ └── tcert_clear.dump
│ │ │ │ ├── crypto.go
│ │ │ │ └── ecdsa
│ │ │ │ │ ├── ecdsa.go
│ │ │ │ │ ├── ecdsa_test.go
│ │ │ │ │ ├── hash.go
│ │ │ │ │ └── x509.go
│ │ │ ├── handler.go
│ │ │ ├── inprocstream.go
│ │ │ ├── interfaces.go
│ │ │ ├── java
│ │ │ │ ├── build.gradle
│ │ │ │ ├── javabuild.sh
│ │ │ │ └── src
│ │ │ │ │ └── main
│ │ │ │ │ └── java
│ │ │ │ │ ├── commons-logging.properties
│ │ │ │ │ └── org
│ │ │ │ │ └── hyperledger
│ │ │ │ │ └── java
│ │ │ │ │ ├── fsm
│ │ │ │ │ ├── CBDesc.java
│ │ │ │ │ ├── Callback.java
│ │ │ │ │ ├── CallbackKey.java
│ │ │ │ │ ├── CallbackType.java
│ │ │ │ │ ├── Event.java
│ │ │ │ │ ├── EventDesc.java
│ │ │ │ │ ├── EventKey.java
│ │ │ │ │ ├── FSM.java
│ │ │ │ │ ├── Transitioner.java
│ │ │ │ │ └── exceptions
│ │ │ │ │ │ ├── AsyncException.java
│ │ │ │ │ │ ├── CancelledException.java
│ │ │ │ │ │ ├── InTrasistionException.java
│ │ │ │ │ │ ├── InvalidEventException.java
│ │ │ │ │ │ ├── NoTransitionException.java
│ │ │ │ │ │ ├── NotInTransitionException.java
│ │ │ │ │ │ └── UnknownEventException.java
│ │ │ │ │ ├── helper
│ │ │ │ │ └── Channel.java
│ │ │ │ │ └── shim
│ │ │ │ │ ├── ChaincodeBase.java
│ │ │ │ │ ├── ChaincodeStub.java
│ │ │ │ │ ├── Handler.java
│ │ │ │ │ └── NextStateInfo.java
│ │ │ ├── mockstub.go
│ │ │ ├── mockstub_test.go
│ │ │ ├── shim_test.go
│ │ │ ├── table.pb.go
│ │ │ └── table.proto
│ │ └── testdata
│ │ │ ├── server1.key
│ │ │ └── server1.pem
│ ├── comm
│ │ ├── config.go
│ │ ├── connection.go
│ │ └── connection_test.go
│ ├── config.go
│ ├── config
│ │ └── config.go
│ ├── container
│ │ ├── ccintf
│ │ │ └── ccintf.go
│ │ ├── config.go
│ │ ├── controller.go
│ │ ├── controller_test.go
│ │ ├── dockercontroller
│ │ │ ├── dockercontroller.go
│ │ │ └── dockercontroller_test.go
│ │ ├── inproccontroller
│ │ │ ├── inproccontroller.go
│ │ │ └── inprocstream.go
│ │ ├── util
│ │ │ ├── dockerutil.go
│ │ │ ├── dockerutil_test.go
│ │ │ └── writer.go
│ │ ├── vm.go
│ │ └── vm_test.go
│ ├── crypto
│ │ ├── attributes
│ │ │ ├── attributes.go
│ │ │ ├── attributes_test.go
│ │ │ ├── proto
│ │ │ │ ├── attributes.pb.go
│ │ │ │ └── attributes.proto
│ │ │ └── test_resources
│ │ │ │ ├── prek0.dump
│ │ │ │ └── tcert.dump
│ │ ├── client.go
│ │ ├── client_confidentiality.go
│ │ ├── client_crypto.go
│ │ ├── client_ecert_handler.go
│ │ ├── client_impl.go
│ │ ├── client_ks.go
│ │ ├── client_state.go
│ │ ├── client_tca.go
│ │ ├── client_tcert.go
│ │ ├── client_tcert_handler.go
│ │ ├── client_tcert_pool.go
│ │ ├── client_tcert_pool_mt.go
│ │ ├── client_tcert_pool_st.go
│ │ ├── client_tx.go
│ │ ├── crypto.go
│ │ ├── crypto_profile.sh
│ │ ├── crypto_protocol.go
│ │ ├── crypto_settings.go
│ │ ├── crypto_settings_test.go
│ │ ├── crypto_test.go
│ │ ├── crypto_test.yaml
│ │ ├── node.go
│ │ ├── node_conf.go
│ │ ├── node_crypto.go
│ │ ├── node_eca.go
│ │ ├── node_grpc.go
│ │ ├── node_impl.go
│ │ ├── node_ks.go
│ │ ├── node_log.go
│ │ ├── node_sign.go
│ │ ├── node_tca.go
│ │ ├── node_tlsca.go
│ │ ├── peer.go
│ │ ├── peer_eca.go
│ │ ├── peer_impl.go
│ │ ├── peer_ks.go
│ │ ├── primitives
│ │ │ ├── aes.go
│ │ │ ├── aes_test.go
│ │ │ ├── crypto.go
│ │ │ ├── ecdsa.go
│ │ │ ├── ecies
│ │ │ │ ├── engine.go
│ │ │ │ ├── es.go
│ │ │ │ ├── kg.go
│ │ │ │ ├── params.go
│ │ │ │ ├── pk.go
│ │ │ │ ├── sk.go
│ │ │ │ ├── spi.go
│ │ │ │ └── spi_test.go
│ │ │ ├── elliptic.go
│ │ │ ├── hash.go
│ │ │ ├── init.go
│ │ │ ├── keys.go
│ │ │ ├── primitives_test.go
│ │ │ ├── random.go
│ │ │ └── x509.go
│ │ ├── utils
│ │ │ ├── conf.go
│ │ │ ├── errs.go
│ │ │ ├── io.go
│ │ │ └── slice.go
│ │ ├── validator.go
│ │ ├── validator_confidentiality.go
│ │ ├── validator_impl.go
│ │ ├── validator_state.go
│ │ └── validator_validity_period.go
│ ├── db
│ │ ├── db.go
│ │ ├── db_test.go
│ │ └── db_test_exports.go
│ ├── devops.go
│ ├── devops_test.go
│ ├── discovery
│ │ ├── discovery.go
│ │ └── discovery_test.go
│ ├── fsm.go
│ ├── fsm_test.go
│ ├── ledger
│ │ ├── README.md
│ │ ├── benchmark_scripts
│ │ │ ├── buckettree
│ │ │ │ ├── buckettree.sh
│ │ │ │ ├── plot.pg
│ │ │ │ └── plots
│ │ │ │ │ └── all.pg
│ │ │ ├── common.sh
│ │ │ ├── ledger
│ │ │ │ ├── db.sh
│ │ │ │ ├── randomTransactions.sh
│ │ │ │ ├── singleKeyTransaction.sh
│ │ │ │ └── test.yaml
│ │ │ └── statemgmt
│ │ │ │ ├── cryptoHash.sh
│ │ │ │ └── plot.pg
│ │ ├── blockchain.go
│ │ ├── blockchain_indexes.go
│ │ ├── blockchain_indexes_async.go
│ │ ├── blockchain_indexes_async_test.go
│ │ ├── blockchain_indexes_test.go
│ │ ├── blockchain_test.go
│ │ ├── genesis
│ │ │ ├── genesis.go
│ │ │ ├── genesis_test.go
│ │ │ └── genesis_test.yaml
│ │ ├── ledger.go
│ │ ├── ledger_test.go
│ │ ├── ledger_test_exports.go
│ │ ├── perf_test.go
│ │ ├── perfstat
│ │ │ ├── stat.go
│ │ │ ├── stat_holder.go
│ │ │ └── stat_test.go
│ │ ├── pkg_test.go
│ │ ├── statemgmt
│ │ │ ├── buckettree
│ │ │ │ ├── bucket_cache.go
│ │ │ │ ├── bucket_cache_test.go
│ │ │ │ ├── bucket_hash.go
│ │ │ │ ├── bucket_hash_test.go
│ │ │ │ ├── bucket_key.go
│ │ │ │ ├── bucket_key_test.go
│ │ │ │ ├── bucket_node.go
│ │ │ │ ├── bucket_node_test.go
│ │ │ │ ├── bucket_tree_delta.go
│ │ │ │ ├── bucket_tree_delta_test.go
│ │ │ │ ├── config.go
│ │ │ │ ├── config_test.go
│ │ │ │ ├── data_key.go
│ │ │ │ ├── data_key_test.go
│ │ │ │ ├── data_node.go
│ │ │ │ ├── data_nodes_delta.go
│ │ │ │ ├── data_nodes_delta_test.go
│ │ │ │ ├── db_helper.go
│ │ │ │ ├── perf_test.go
│ │ │ │ ├── pkg_test.go
│ │ │ │ ├── range_scan_iterator.go
│ │ │ │ ├── range_scan_iterator_test.go
│ │ │ │ ├── snapshot_iterator.go
│ │ │ │ ├── snapshot_iterator_test.go
│ │ │ │ ├── state_impl.go
│ │ │ │ ├── state_impl_test.go
│ │ │ │ └── test.yaml
│ │ │ ├── commons.go
│ │ │ ├── hashable_state.go
│ │ │ ├── perf_test.go
│ │ │ ├── pkg_test.go
│ │ │ ├── raw
│ │ │ │ ├── state_impl.go
│ │ │ │ └── state_impl_test.go
│ │ │ ├── state
│ │ │ │ ├── composite_range_scan_iterator.go
│ │ │ │ ├── composite_range_scan_iterator_test.go
│ │ │ │ ├── config.go
│ │ │ │ ├── pkg_test.go
│ │ │ │ ├── state.go
│ │ │ │ ├── state_snapshot.go
│ │ │ │ ├── state_snapshot_test.go
│ │ │ │ ├── state_test.go
│ │ │ │ └── test.yaml
│ │ │ ├── state_delta.go
│ │ │ ├── state_delta_iterator.go
│ │ │ ├── state_delta_iterator_test.go
│ │ │ ├── state_delta_test.go
│ │ │ ├── test_exports.go
│ │ │ └── trie
│ │ │ │ ├── byteTrieKey.go
│ │ │ │ ├── hexTrieKey.go
│ │ │ │ ├── pkg_test.go
│ │ │ │ ├── range_scan_iterator.go
│ │ │ │ ├── range_scan_iterator_test.go
│ │ │ │ ├── snapshot_iterator.go
│ │ │ │ ├── snapshot_iterator_test.go
│ │ │ │ ├── state_trie.go
│ │ │ │ ├── state_trie_test.go
│ │ │ │ ├── test.yaml
│ │ │ │ ├── trie_db_helper.go
│ │ │ │ ├── trie_delta.go
│ │ │ │ ├── trie_key.go
│ │ │ │ ├── trie_node.go
│ │ │ │ └── trie_node_test.go
│ │ ├── test.yaml
│ │ ├── test
│ │ │ ├── ledger_suite_test.go
│ │ │ ├── ledger_test.go
│ │ │ └── test.yaml
│ │ ├── testutil
│ │ │ ├── test_util.go
│ │ │ └── test_util_test.go
│ │ └── util
│ │ │ ├── util.go
│ │ │ └── util_test.go
│ ├── peer
│ │ ├── config.go
│ │ ├── errors.go
│ │ ├── handler.go
│ │ ├── handler_sync_state.go
│ │ ├── peer.go
│ │ ├── peer_test.go
│ │ └── statetransfer
│ │ │ ├── statetransfer.go
│ │ │ ├── statetransfer_mock_test.go
│ │ │ └── statetransfer_test.go
│ ├── rest
│ │ ├── api.go
│ │ ├── api_test.go
│ │ ├── rest_api.go
│ │ ├── rest_api.json
│ │ ├── rest_api_test.go
│ │ ├── rest_test.yaml
│ │ └── rest_util.go
│ ├── system_chaincode
│ │ ├── api
│ │ │ └── sysccapi.go
│ │ ├── config.go
│ │ ├── importsysccs.go
│ │ ├── samplesyscc
│ │ │ └── samplesyscc.go
│ │ └── systemchaincode_test.go
│ └── util
│ │ ├── utils.go
│ │ └── utils_test.go
│ ├── devenv
│ ├── README.md
│ ├── Vagrantfile
│ ├── compile_protos.sh
│ ├── failure-motd.in
│ ├── golang_buildcmd.sh
│ ├── golang_buildpkg.sh
│ ├── images
│ │ └── openchain-dev-env-deployment-diagram.png
│ ├── limits.conf
│ ├── setup.sh
│ ├── setupRHELonZ.sh
│ └── setupUbuntuOnPPC64le.sh
│ ├── docs
│ ├── API
│ │ ├── AttributesUsage.md
│ │ ├── ChaincodeAPI.md
│ │ ├── CoreAPI.md
│ │ ├── MemberServicesAPI.md
│ │ └── Samples
│ │ │ ├── Sample_1.js
│ │ │ └── Sample_1.zip
│ ├── CONTRIBUTING.md
│ ├── FAQ
│ │ ├── chaincode_FAQ.md
│ │ ├── confidentiality_FAQ.md
│ │ ├── consensus_FAQ.md
│ │ ├── identity_management_FAQ.md
│ │ └── usage_FAQ.md
│ ├── Gerrit
│ │ ├── best-practices.md
│ │ ├── changes.md
│ │ ├── gerrit.md
│ │ ├── lf-account.md
│ │ └── reviewing.md
│ ├── MAINTAINERS.md
│ ├── Setup
│ │ ├── Chaincode-setup.md
│ │ ├── JAVAChaincode.md
│ │ ├── Network-setup.md
│ │ ├── NodeSDK-setup.md
│ │ ├── TLSSetup.md
│ │ ├── ca-setup.md
│ │ └── logging-control.md
│ ├── Style-guides
│ │ └── go-style.md
│ ├── SystemChaincode-noop.md
│ ├── abstract_v1.md
│ ├── biz
│ │ ├── DCO1.1.txt
│ │ ├── images
│ │ │ ├── Canonical-Use-Cases_Asset-Depository.png
│ │ │ ├── Canonical-Use-Cases_B2BContract.png
│ │ │ ├── Canonical-Use-Cases_Direct-Communication.png
│ │ │ ├── Canonical-Use-Cases_Interoperability-of-Assets.png
│ │ │ ├── Canonical-Use-Cases_Manufacturing-Supply-Chain.png
│ │ │ ├── Canonical-Use-Cases_One-Trade-One-Contract.png
│ │ │ ├── Canonical-Use-Cases_Separation-of-Asset-Ownership-and-Custodians-Duties.png
│ │ │ ├── assetrepository.png
│ │ │ ├── b2bcontract.png
│ │ │ ├── corporate_action.png
│ │ │ ├── exchange.png
│ │ │ ├── interoperability_of_assets.png
│ │ │ ├── one_contract_per_trade.png
│ │ │ ├── separation_of_ownship_and_custodyservice.png
│ │ │ └── supplychain.png
│ │ └── usecases.md
│ ├── custom_theme
│ │ └── searchbox.html
│ ├── dev-setup
│ │ ├── build.md
│ │ ├── devenv.md
│ │ └── headers.txt
│ ├── glossary.md
│ ├── images
│ │ ├── Architecture_Step-1.png
│ │ ├── Architecture_Step-2.png
│ │ ├── Architecture_Step-3.png
│ │ ├── Architecture_Step-4.png
│ │ ├── BuildStatus.png
│ │ ├── Canonical-Use-Cases_Asset-Depository.png
│ │ ├── Canonical-Use-Cases_B2BContract.png
│ │ ├── Canonical-Use-Cases_Direct-Communication.png
│ │ ├── Canonical-Use-Cases_Interoperability-of-Assets.png
│ │ ├── Canonical-Use-Cases_Manufacturing-Supply-Chain.png
│ │ ├── Canonical-Use-Cases_One-Trade-One-Contract.png
│ │ ├── Canonical-Use-Cases_Separation-of-Asset-Ownership-and-Custodians-Duties.png
│ │ ├── Travis_Settings.png
│ │ ├── Travis_service.png
│ │ ├── attributes_flow.png
│ │ ├── refarch-api.png
│ │ ├── refarch-app.png
│ │ ├── refarch-block.png
│ │ ├── refarch-chain.png
│ │ ├── refarch-memb.png
│ │ ├── refarch.png
│ │ ├── sec-RACapp-depl.png
│ │ ├── sec-RACapp-inv.png
│ │ ├── sec-entities.png
│ │ ├── sec-example-1.png
│ │ ├── sec-example-2.png
│ │ ├── sec-firstrel-1.jpg
│ │ ├── sec-firstrel-1.png
│ │ ├── sec-firstrel-2.png
│ │ ├── sec-firstrel-depl.png
│ │ ├── sec-firstrel-inv.png
│ │ ├── sec-futrel-depl.png
│ │ ├── sec-futrel-inv.png
│ │ ├── sec-memserv-components.png
│ │ ├── sec-registration-detailed.png
│ │ ├── sec-registration-high-level.png
│ │ ├── sec-request-tcerts-deployment.png
│ │ ├── sec-request-tcerts-invocation.png
│ │ ├── sec-sec-arch.png
│ │ ├── sec-sources-1.pptx
│ │ ├── sec-sources-2.pptx
│ │ ├── sec-txconf-v1.2.pptx
│ │ ├── sec-usrconf-deploy-interm.png
│ │ ├── sec-usrconf-deploy.png
│ │ ├── sec-usrconf-invoke-interm.png
│ │ ├── sec-usrconf-invoke.png
│ │ ├── top-multi-peer.png
│ │ ├── top-single-peer.png
│ │ └── world_view.png
│ ├── index.md
│ ├── nodeSDK
│ │ ├── app-developer-env-setup.md
│ │ ├── app-overview.md
│ │ ├── node-sdk-guide.md
│ │ ├── node-sdk-indepth.md
│ │ ├── sample-standalone-app.md
│ │ └── sample-web-app.md
│ ├── protocol-spec.md
│ ├── protocol-spec_zh.md
│ ├── releases.md
│ ├── requirements.txt
│ ├── starter
│ │ └── fabric-starter-kit.md
│ ├── tech
│ │ ├── application-ACL.md
│ │ ├── attributes.md
│ │ └── best-practices.md
│ ├── v0.6_migration.md
│ └── wiki-images
│ │ ├── sdk-current.png
│ │ └── sdk-future.png
│ ├── events
│ ├── config.go
│ ├── consumer
│ │ ├── adapter.go
│ │ └── consumer.go
│ ├── events_test.go
│ └── producer
│ │ ├── eventhelper.go
│ │ ├── events.go
│ │ ├── handler.go
│ │ ├── producer.go
│ │ └── register_internal_events.go
│ ├── flogging
│ ├── logging.go
│ └── logging_test.go
│ ├── gotools
│ └── Makefile
│ ├── membersrvc
│ ├── Dockerfile
│ ├── ca
│ │ ├── aca.go
│ │ ├── aca_test.go
│ │ ├── acap.go
│ │ ├── ca.go
│ │ ├── ca_test.go
│ │ ├── ca_test.yaml
│ │ ├── client_grpc.go
│ │ ├── eca.go
│ │ ├── eca_test.go
│ │ ├── ecaa.go
│ │ ├── ecap.go
│ │ ├── membersrvc_test.go
│ │ ├── tca.go
│ │ ├── tca_test.go
│ │ ├── tcaa.go
│ │ ├── tcap.go
│ │ ├── test_resources
│ │ │ ├── ecert_test_user0.dump
│ │ │ ├── ecert_test_user1.dump
│ │ │ ├── ecert_test_user2.dump
│ │ │ ├── key_test_user0.dump
│ │ │ ├── key_test_user1.dump
│ │ │ └── key_test_user2.dump
│ │ ├── tlsca.go
│ │ ├── tlsca_test.go
│ │ ├── util.go
│ │ └── util_test.go
│ ├── membersrvc.yaml
│ ├── protos
│ │ ├── ca.pb.go
│ │ └── ca.proto
│ └── server.go
│ ├── metadata
│ └── metadata.go
│ ├── peer
│ ├── chaincode
│ │ ├── chaincode.go
│ │ ├── common.go
│ │ ├── common_test.go
│ │ ├── deploy.go
│ │ ├── invoke.go
│ │ └── query.go
│ ├── common
│ │ └── common.go
│ ├── core.yaml
│ ├── main.go
│ ├── main_test.go
│ ├── network
│ │ ├── list.go
│ │ ├── list_test.go
│ │ ├── login.go
│ │ └── network.go
│ ├── node
│ │ ├── node.go
│ │ ├── start.go
│ │ ├── status.go
│ │ └── stop.go
│ ├── util
│ │ └── util.go
│ └── version
│ │ └── version.go
│ ├── protos
│ ├── api.pb.go
│ ├── api.proto
│ ├── block.go
│ ├── block_test.go
│ ├── chaincode.pb.go
│ ├── chaincode.proto
│ ├── chaincodeevent.pb.go
│ ├── chaincodeevent.proto
│ ├── devops.pb.go
│ ├── devops.proto
│ ├── events.pb.go
│ ├── events.proto
│ ├── fabric.pb.go
│ ├── fabric.proto
│ ├── init.go
│ ├── server_admin.pb.go
│ ├── server_admin.proto
│ ├── transaction.go
│ └── transaction_test.go
│ ├── pub
│ ├── fabric-baseimage.md
│ ├── fabric-membersrvc.md
│ └── fabric-peer.md
│ └── vendor
│ ├── github.com
│ ├── BurntSushi
│ │ └── toml
│ │ │ ├── COMPATIBLE
│ │ │ ├── COPYING
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── decode.go
│ │ │ ├── decode_meta.go
│ │ │ ├── doc.go
│ │ │ ├── encode.go
│ │ │ ├── encoding_types.go
│ │ │ ├── encoding_types_1.1.go
│ │ │ ├── lex.go
│ │ │ ├── parse.go
│ │ │ ├── session.vim
│ │ │ ├── type_check.go
│ │ │ └── type_fields.go
│ ├── Sirupsen
│ │ └── logrus
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE
│ │ │ ├── LICENSE~a6943e7452c65be4e907893e3eefdaa186cee610
│ │ │ ├── README.md
│ │ │ ├── README.md~a6943e7452c65be4e907893e3eefdaa186cee610
│ │ │ ├── alt_exit.go
│ │ │ ├── doc.go
│ │ │ ├── entry.go
│ │ │ ├── entry.go~a6943e7452c65be4e907893e3eefdaa186cee610
│ │ │ ├── exported.go
│ │ │ ├── exported.go~a6943e7452c65be4e907893e3eefdaa186cee610
│ │ │ ├── formatter.go
│ │ │ ├── formatter.go~a6943e7452c65be4e907893e3eefdaa186cee610
│ │ │ ├── hooks.go
│ │ │ ├── hooks.go~a6943e7452c65be4e907893e3eefdaa186cee610
│ │ │ ├── json_formatter.go
│ │ │ ├── json_formatter.go~a6943e7452c65be4e907893e3eefdaa186cee610
│ │ │ ├── logger.go
│ │ │ ├── logger.go~a6943e7452c65be4e907893e3eefdaa186cee610
│ │ │ ├── logrus.go
│ │ │ ├── logrus.go~a6943e7452c65be4e907893e3eefdaa186cee610
│ │ │ ├── terminal_bsd.go
│ │ │ ├── terminal_darwin.go
│ │ │ ├── terminal_freebsd.go
│ │ │ ├── terminal_linux.go
│ │ │ ├── terminal_linux.go~a6943e7452c65be4e907893e3eefdaa186cee610
│ │ │ ├── terminal_notwindows.go
│ │ │ ├── terminal_notwindows.go~a6943e7452c65be4e907893e3eefdaa186cee610
│ │ │ ├── terminal_openbsd.go
│ │ │ ├── terminal_solaris.go
│ │ │ ├── terminal_windows.go
│ │ │ ├── terminal_windows.go~a6943e7452c65be4e907893e3eefdaa186cee610
│ │ │ ├── text_formatter.go
│ │ │ ├── text_formatter.go~a6943e7452c65be4e907893e3eefdaa186cee610
│ │ │ └── writer.go
│ ├── cpuguy83
│ │ └── go-md2man
│ │ │ └── md2man
│ │ │ ├── md2man.go
│ │ │ └── roff.go
│ ├── davecgh
│ │ └── go-spew
│ │ │ ├── LICENSE
│ │ │ └── spew
│ │ │ ├── bypass.go
│ │ │ ├── bypasssafe.go
│ │ │ ├── common.go
│ │ │ ├── config.go
│ │ │ ├── doc.go
│ │ │ ├── dump.go
│ │ │ ├── format.go
│ │ │ └── spew.go
│ ├── docker
│ │ ├── docker
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ ├── opts
│ │ │ │ ├── hosts.go
│ │ │ │ ├── hosts_unix.go
│ │ │ │ ├── hosts_windows.go
│ │ │ │ ├── ip.go
│ │ │ │ ├── opts.go
│ │ │ │ ├── opts_unix.go
│ │ │ │ └── opts_windows.go
│ │ │ ├── pkg
│ │ │ │ ├── README.md
│ │ │ │ ├── aaparser
│ │ │ │ │ ├── aaparser.go
│ │ │ │ │ └── aaparser_test.go
│ │ │ │ ├── archive
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── archive.go
│ │ │ │ │ ├── archive_linux.go
│ │ │ │ │ ├── archive_other.go
│ │ │ │ │ ├── archive_test.go
│ │ │ │ │ ├── archive_unix.go
│ │ │ │ │ ├── archive_unix_test.go
│ │ │ │ │ ├── archive_windows.go
│ │ │ │ │ ├── archive_windows_test.go
│ │ │ │ │ ├── changes.go
│ │ │ │ │ ├── changes_linux.go
│ │ │ │ │ ├── changes_other.go
│ │ │ │ │ ├── changes_posix_test.go
│ │ │ │ │ ├── changes_test.go
│ │ │ │ │ ├── changes_unix.go
│ │ │ │ │ ├── changes_windows.go
│ │ │ │ │ ├── copy.go
│ │ │ │ │ ├── copy_unix.go
│ │ │ │ │ ├── copy_unix_test.go
│ │ │ │ │ ├── copy_windows.go
│ │ │ │ │ ├── diff.go
│ │ │ │ │ ├── diff_test.go
│ │ │ │ │ ├── example_changes.go
│ │ │ │ │ ├── testdata
│ │ │ │ │ │ └── broken.tar
│ │ │ │ │ ├── time_linux.go
│ │ │ │ │ ├── time_unsupported.go
│ │ │ │ │ ├── utils_test.go
│ │ │ │ │ ├── whiteouts.go
│ │ │ │ │ ├── wrap.go
│ │ │ │ │ └── wrap_test.go
│ │ │ │ ├── authorization
│ │ │ │ │ ├── api.go
│ │ │ │ │ ├── authz.go
│ │ │ │ │ ├── authz_unix_test.go
│ │ │ │ │ ├── middleware.go
│ │ │ │ │ ├── plugin.go
│ │ │ │ │ └── response.go
│ │ │ │ ├── broadcaster
│ │ │ │ │ ├── unbuffered.go
│ │ │ │ │ └── unbuffered_test.go
│ │ │ │ ├── chrootarchive
│ │ │ │ │ ├── archive.go
│ │ │ │ │ ├── archive_test.go
│ │ │ │ │ ├── archive_unix.go
│ │ │ │ │ ├── archive_windows.go
│ │ │ │ │ ├── chroot_linux.go
│ │ │ │ │ ├── chroot_unix.go
│ │ │ │ │ ├── diff.go
│ │ │ │ │ ├── diff_unix.go
│ │ │ │ │ ├── diff_windows.go
│ │ │ │ │ ├── init_unix.go
│ │ │ │ │ └── init_windows.go
│ │ │ │ ├── devicemapper
│ │ │ │ │ ├── devmapper.go
│ │ │ │ │ ├── devmapper_log.go
│ │ │ │ │ ├── devmapper_wrapper.go
│ │ │ │ │ ├── devmapper_wrapper_deferred_remove.go
│ │ │ │ │ ├── devmapper_wrapper_no_deferred_remove.go
│ │ │ │ │ ├── ioctl.go
│ │ │ │ │ └── log.go
│ │ │ │ ├── directory
│ │ │ │ │ ├── directory.go
│ │ │ │ │ ├── directory_test.go
│ │ │ │ │ ├── directory_unix.go
│ │ │ │ │ └── directory_windows.go
│ │ │ │ ├── discovery
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── backends.go
│ │ │ │ │ ├── discovery.go
│ │ │ │ │ ├── discovery_test.go
│ │ │ │ │ ├── entry.go
│ │ │ │ │ ├── file
│ │ │ │ │ │ ├── file.go
│ │ │ │ │ │ └── file_test.go
│ │ │ │ │ ├── generator.go
│ │ │ │ │ ├── generator_test.go
│ │ │ │ │ ├── kv
│ │ │ │ │ │ ├── kv.go
│ │ │ │ │ │ └── kv_test.go
│ │ │ │ │ ├── memory
│ │ │ │ │ │ ├── memory.go
│ │ │ │ │ │ └── memory_test.go
│ │ │ │ │ └── nodes
│ │ │ │ │ │ ├── nodes.go
│ │ │ │ │ │ └── nodes_test.go
│ │ │ │ ├── filenotify
│ │ │ │ │ ├── filenotify.go
│ │ │ │ │ ├── fsnotify.go
│ │ │ │ │ ├── poller.go
│ │ │ │ │ └── poller_test.go
│ │ │ │ ├── fileutils
│ │ │ │ │ ├── fileutils.go
│ │ │ │ │ ├── fileutils_darwin.go
│ │ │ │ │ ├── fileutils_solaris.go
│ │ │ │ │ ├── fileutils_test.go
│ │ │ │ │ ├── fileutils_unix.go
│ │ │ │ │ └── fileutils_windows.go
│ │ │ │ ├── gitutils
│ │ │ │ │ ├── gitutils.go
│ │ │ │ │ └── gitutils_test.go
│ │ │ │ ├── graphdb
│ │ │ │ │ ├── conn_sqlite3.go
│ │ │ │ │ ├── conn_sqlite3_unix.go
│ │ │ │ │ ├── conn_sqlite3_windows.go
│ │ │ │ │ ├── conn_unsupported.go
│ │ │ │ │ ├── graphdb.go
│ │ │ │ │ ├── graphdb_test.go
│ │ │ │ │ ├── sort.go
│ │ │ │ │ ├── sort_test.go
│ │ │ │ │ └── utils.go
│ │ │ │ ├── homedir
│ │ │ │ │ ├── homedir.go
│ │ │ │ │ └── homedir_test.go
│ │ │ │ ├── httputils
│ │ │ │ │ ├── httputils.go
│ │ │ │ │ ├── httputils_test.go
│ │ │ │ │ ├── mimetype.go
│ │ │ │ │ ├── mimetype_test.go
│ │ │ │ │ ├── resumablerequestreader.go
│ │ │ │ │ └── resumablerequestreader_test.go
│ │ │ │ ├── idtools
│ │ │ │ │ ├── idtools.go
│ │ │ │ │ ├── idtools_unix.go
│ │ │ │ │ ├── idtools_unix_test.go
│ │ │ │ │ ├── idtools_windows.go
│ │ │ │ │ ├── usergroupadd_linux.go
│ │ │ │ │ └── usergroupadd_unsupported.go
│ │ │ │ ├── integration
│ │ │ │ │ ├── checker
│ │ │ │ │ │ └── checker.go
│ │ │ │ │ ├── dockerCmd_utils.go
│ │ │ │ │ ├── dockerCmd_utils_test.go
│ │ │ │ │ ├── utils.go
│ │ │ │ │ └── utils_test.go
│ │ │ │ ├── ioutils
│ │ │ │ │ ├── buffer.go
│ │ │ │ │ ├── buffer_test.go
│ │ │ │ │ ├── bytespipe.go
│ │ │ │ │ ├── bytespipe_test.go
│ │ │ │ │ ├── fmt.go
│ │ │ │ │ ├── fmt_test.go
│ │ │ │ │ ├── fswriters.go
│ │ │ │ │ ├── fswriters_test.go
│ │ │ │ │ ├── multireader.go
│ │ │ │ │ ├── multireader_test.go
│ │ │ │ │ ├── readers.go
│ │ │ │ │ ├── readers_test.go
│ │ │ │ │ ├── temp_unix.go
│ │ │ │ │ ├── temp_windows.go
│ │ │ │ │ ├── writeflusher.go
│ │ │ │ │ ├── writers.go
│ │ │ │ │ └── writers_test.go
│ │ │ │ ├── jsonlog
│ │ │ │ │ ├── jsonlog.go
│ │ │ │ │ ├── jsonlog_marshalling.go
│ │ │ │ │ ├── jsonlog_marshalling_test.go
│ │ │ │ │ ├── jsonlogbytes.go
│ │ │ │ │ ├── jsonlogbytes_test.go
│ │ │ │ │ ├── time_marshalling.go
│ │ │ │ │ └── time_marshalling_test.go
│ │ │ │ ├── jsonmessage
│ │ │ │ │ ├── jsonmessage.go
│ │ │ │ │ └── jsonmessage_test.go
│ │ │ │ ├── listeners
│ │ │ │ │ ├── listeners_solaris.go
│ │ │ │ │ ├── listeners_unix.go
│ │ │ │ │ └── listeners_windows.go
│ │ │ │ ├── locker
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── locker.go
│ │ │ │ │ └── locker_test.go
│ │ │ │ ├── longpath
│ │ │ │ │ ├── longpath.go
│ │ │ │ │ └── longpath_test.go
│ │ │ │ ├── loopback
│ │ │ │ │ ├── attach_loopback.go
│ │ │ │ │ ├── ioctl.go
│ │ │ │ │ ├── loop_wrapper.go
│ │ │ │ │ └── loopback.go
│ │ │ │ ├── mflag
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── example
│ │ │ │ │ │ └── example.go
│ │ │ │ │ ├── flag.go
│ │ │ │ │ └── flag_test.go
│ │ │ │ ├── mount
│ │ │ │ │ ├── flags.go
│ │ │ │ │ ├── flags_freebsd.go
│ │ │ │ │ ├── flags_linux.go
│ │ │ │ │ ├── flags_unsupported.go
│ │ │ │ │ ├── mount.go
│ │ │ │ │ ├── mount_unix_test.go
│ │ │ │ │ ├── mounter_freebsd.go
│ │ │ │ │ ├── mounter_linux.go
│ │ │ │ │ ├── mounter_solaris.go
│ │ │ │ │ ├── mounter_unsupported.go
│ │ │ │ │ ├── mountinfo.go
│ │ │ │ │ ├── mountinfo_freebsd.go
│ │ │ │ │ ├── mountinfo_linux.go
│ │ │ │ │ ├── mountinfo_linux_test.go
│ │ │ │ │ ├── mountinfo_solaris.go
│ │ │ │ │ ├── mountinfo_unsupported.go
│ │ │ │ │ ├── mountinfo_windows.go
│ │ │ │ │ ├── sharedsubtree_linux.go
│ │ │ │ │ └── sharedsubtree_linux_test.go
│ │ │ │ ├── namesgenerator
│ │ │ │ │ ├── cmd
│ │ │ │ │ │ └── names-generator
│ │ │ │ │ │ │ └── main.go
│ │ │ │ │ ├── names-generator.go
│ │ │ │ │ └── names-generator_test.go
│ │ │ │ ├── parsers
│ │ │ │ │ ├── kernel
│ │ │ │ │ │ ├── kernel.go
│ │ │ │ │ │ ├── kernel_darwin.go
│ │ │ │ │ │ ├── kernel_unix.go
│ │ │ │ │ │ ├── kernel_unix_test.go
│ │ │ │ │ │ ├── kernel_windows.go
│ │ │ │ │ │ ├── uname_linux.go
│ │ │ │ │ │ ├── uname_solaris.go
│ │ │ │ │ │ └── uname_unsupported.go
│ │ │ │ │ ├── operatingsystem
│ │ │ │ │ │ ├── operatingsystem_linux.go
│ │ │ │ │ │ ├── operatingsystem_solaris.go
│ │ │ │ │ │ ├── operatingsystem_unix.go
│ │ │ │ │ │ ├── operatingsystem_unix_test.go
│ │ │ │ │ │ └── operatingsystem_windows.go
│ │ │ │ │ ├── parsers.go
│ │ │ │ │ └── parsers_test.go
│ │ │ │ ├── pidfile
│ │ │ │ │ ├── pidfile.go
│ │ │ │ │ ├── pidfile_test.go
│ │ │ │ │ ├── pidfile_unix.go
│ │ │ │ │ └── pidfile_windows.go
│ │ │ │ ├── platform
│ │ │ │ │ ├── architecture_linux.go
│ │ │ │ │ ├── architecture_unix.go
│ │ │ │ │ ├── architecture_windows.go
│ │ │ │ │ ├── platform.go
│ │ │ │ │ ├── utsname_int8.go
│ │ │ │ │ └── utsname_uint8.go
│ │ │ │ ├── plugins
│ │ │ │ │ ├── client.go
│ │ │ │ │ ├── client_test.go
│ │ │ │ │ ├── discovery.go
│ │ │ │ │ ├── discovery_test.go
│ │ │ │ │ ├── discovery_unix_test.go
│ │ │ │ │ ├── errors.go
│ │ │ │ │ ├── pluginrpc-gen
│ │ │ │ │ │ ├── README.md
│ │ │ │ │ │ ├── fixtures
│ │ │ │ │ │ │ ├── foo.go
│ │ │ │ │ │ │ └── otherfixture
│ │ │ │ │ │ │ │ └── spaceship.go
│ │ │ │ │ │ ├── main.go
│ │ │ │ │ │ ├── parser.go
│ │ │ │ │ │ ├── parser_test.go
│ │ │ │ │ │ └── template.go
│ │ │ │ │ ├── plugins.go
│ │ │ │ │ └── transport
│ │ │ │ │ │ ├── http.go
│ │ │ │ │ │ └── transport.go
│ │ │ │ ├── pools
│ │ │ │ │ ├── pools.go
│ │ │ │ │ └── pools_test.go
│ │ │ │ ├── progress
│ │ │ │ │ ├── progress.go
│ │ │ │ │ ├── progressreader.go
│ │ │ │ │ └── progressreader_test.go
│ │ │ │ ├── promise
│ │ │ │ │ └── promise.go
│ │ │ │ ├── pubsub
│ │ │ │ │ ├── publisher.go
│ │ │ │ │ └── publisher_test.go
│ │ │ │ ├── random
│ │ │ │ │ ├── random.go
│ │ │ │ │ └── random_test.go
│ │ │ │ ├── reexec
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── command_linux.go
│ │ │ │ │ ├── command_unix.go
│ │ │ │ │ ├── command_unsupported.go
│ │ │ │ │ ├── command_windows.go
│ │ │ │ │ └── reexec.go
│ │ │ │ ├── registrar
│ │ │ │ │ ├── registrar.go
│ │ │ │ │ └── registrar_test.go
│ │ │ │ ├── signal
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── signal.go
│ │ │ │ │ ├── signal_darwin.go
│ │ │ │ │ ├── signal_freebsd.go
│ │ │ │ │ ├── signal_linux.go
│ │ │ │ │ ├── signal_solaris.go
│ │ │ │ │ ├── signal_unix.go
│ │ │ │ │ ├── signal_unsupported.go
│ │ │ │ │ ├── signal_windows.go
│ │ │ │ │ └── trap.go
│ │ │ │ ├── stdcopy
│ │ │ │ │ ├── stdcopy.go
│ │ │ │ │ └── stdcopy_test.go
│ │ │ │ ├── streamformatter
│ │ │ │ │ ├── streamformatter.go
│ │ │ │ │ └── streamformatter_test.go
│ │ │ │ ├── stringid
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── stringid.go
│ │ │ │ │ └── stringid_test.go
│ │ │ │ ├── stringutils
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── stringutils.go
│ │ │ │ │ └── stringutils_test.go
│ │ │ │ ├── symlink
│ │ │ │ │ ├── LICENSE.APACHE
│ │ │ │ │ ├── LICENSE.BSD
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── fs.go
│ │ │ │ │ ├── fs_unix.go
│ │ │ │ │ ├── fs_unix_test.go
│ │ │ │ │ └── fs_windows.go
│ │ │ │ ├── sysinfo
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── numcpu.go
│ │ │ │ │ ├── numcpu_linux.go
│ │ │ │ │ ├── numcpu_windows.go
│ │ │ │ │ ├── sysinfo.go
│ │ │ │ │ ├── sysinfo_freebsd.go
│ │ │ │ │ ├── sysinfo_linux.go
│ │ │ │ │ ├── sysinfo_linux_test.go
│ │ │ │ │ ├── sysinfo_solaris.go
│ │ │ │ │ ├── sysinfo_test.go
│ │ │ │ │ └── sysinfo_windows.go
│ │ │ │ ├── system
│ │ │ │ │ ├── chtimes.go
│ │ │ │ │ ├── chtimes_test.go
│ │ │ │ │ ├── chtimes_unix.go
│ │ │ │ │ ├── chtimes_unix_test.go
│ │ │ │ │ ├── chtimes_windows.go
│ │ │ │ │ ├── chtimes_windows_test.go
│ │ │ │ │ ├── errors.go
│ │ │ │ │ ├── events_windows.go
│ │ │ │ │ ├── filesys.go
│ │ │ │ │ ├── filesys_windows.go
│ │ │ │ │ ├── lstat.go
│ │ │ │ │ ├── lstat_unix_test.go
│ │ │ │ │ ├── lstat_windows.go
│ │ │ │ │ ├── meminfo.go
│ │ │ │ │ ├── meminfo_linux.go
│ │ │ │ │ ├── meminfo_solaris.go
│ │ │ │ │ ├── meminfo_unix_test.go
│ │ │ │ │ ├── meminfo_unsupported.go
│ │ │ │ │ ├── meminfo_windows.go
│ │ │ │ │ ├── mknod.go
│ │ │ │ │ ├── mknod_windows.go
│ │ │ │ │ ├── path_unix.go
│ │ │ │ │ ├── path_windows.go
│ │ │ │ │ ├── path_windows_test.go
│ │ │ │ │ ├── stat.go
│ │ │ │ │ ├── stat_freebsd.go
│ │ │ │ │ ├── stat_linux.go
│ │ │ │ │ ├── stat_openbsd.go
│ │ │ │ │ ├── stat_solaris.go
│ │ │ │ │ ├── stat_unix_test.go
│ │ │ │ │ ├── stat_unsupported.go
│ │ │ │ │ ├── stat_windows.go
│ │ │ │ │ ├── syscall_unix.go
│ │ │ │ │ ├── syscall_windows.go
│ │ │ │ │ ├── syscall_windows_test.go
│ │ │ │ │ ├── umask.go
│ │ │ │ │ ├── umask_windows.go
│ │ │ │ │ ├── utimes_darwin.go
│ │ │ │ │ ├── utimes_freebsd.go
│ │ │ │ │ ├── utimes_linux.go
│ │ │ │ │ ├── utimes_unix_test.go
│ │ │ │ │ ├── utimes_unsupported.go
│ │ │ │ │ ├── xattrs_linux.go
│ │ │ │ │ └── xattrs_unsupported.go
│ │ │ │ ├── tailfile
│ │ │ │ │ ├── tailfile.go
│ │ │ │ │ └── tailfile_test.go
│ │ │ │ ├── tarsum
│ │ │ │ │ ├── builder_context.go
│ │ │ │ │ ├── builder_context_test.go
│ │ │ │ │ ├── fileinfosums.go
│ │ │ │ │ ├── fileinfosums_test.go
│ │ │ │ │ ├── tarsum.go
│ │ │ │ │ ├── tarsum_spec.md
│ │ │ │ │ ├── tarsum_test.go
│ │ │ │ │ ├── testdata
│ │ │ │ │ │ ├── 46af0962ab5afeb5ce6740d4d91652e69206fc991fd5328c1a94d364ad00e457
│ │ │ │ │ │ │ ├── json
│ │ │ │ │ │ │ └── layer.tar
│ │ │ │ │ │ ├── 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158
│ │ │ │ │ │ │ ├── json
│ │ │ │ │ │ │ └── layer.tar
│ │ │ │ │ │ ├── collision
│ │ │ │ │ │ │ ├── collision-0.tar
│ │ │ │ │ │ │ ├── collision-1.tar
│ │ │ │ │ │ │ ├── collision-2.tar
│ │ │ │ │ │ │ └── collision-3.tar
│ │ │ │ │ │ └── xattr
│ │ │ │ │ │ │ ├── json
│ │ │ │ │ │ │ └── layer.tar
│ │ │ │ │ ├── versioning.go
│ │ │ │ │ ├── versioning_test.go
│ │ │ │ │ └── writercloser.go
│ │ │ │ ├── term
│ │ │ │ │ ├── ascii.go
│ │ │ │ │ ├── ascii_test.go
│ │ │ │ │ ├── tc_linux_cgo.go
│ │ │ │ │ ├── tc_other.go
│ │ │ │ │ ├── tc_solaris_cgo.go
│ │ │ │ │ ├── term.go
│ │ │ │ │ ├── term_solaris.go
│ │ │ │ │ ├── term_unix.go
│ │ │ │ │ ├── term_windows.go
│ │ │ │ │ ├── termios_darwin.go
│ │ │ │ │ ├── termios_freebsd.go
│ │ │ │ │ ├── termios_linux.go
│ │ │ │ │ ├── termios_openbsd.go
│ │ │ │ │ └── windows
│ │ │ │ │ │ ├── ansi_reader.go
│ │ │ │ │ │ ├── ansi_writer.go
│ │ │ │ │ │ ├── console.go
│ │ │ │ │ │ ├── windows.go
│ │ │ │ │ │ └── windows_test.go
│ │ │ │ ├── testutil
│ │ │ │ │ ├── assert
│ │ │ │ │ │ └── assert.go
│ │ │ │ │ └── pkg.go
│ │ │ │ ├── tlsconfig
│ │ │ │ │ └── config.go
│ │ │ │ ├── truncindex
│ │ │ │ │ ├── truncindex.go
│ │ │ │ │ └── truncindex_test.go
│ │ │ │ ├── urlutil
│ │ │ │ │ ├── urlutil.go
│ │ │ │ │ └── urlutil_test.go
│ │ │ │ └── useragent
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── useragent.go
│ │ │ │ │ └── useragent_test.go
│ │ │ └── volume
│ │ │ │ ├── volume.go
│ │ │ │ ├── volume_copy.go
│ │ │ │ ├── volume_propagation_linux.go
│ │ │ │ ├── volume_propagation_unsupported.go
│ │ │ │ ├── volume_unix.go
│ │ │ │ └── volume_windows.go
│ │ ├── engine-api
│ │ │ ├── LICENSE
│ │ │ └── types
│ │ │ │ ├── filters
│ │ │ │ └── parse.go
│ │ │ │ └── versions
│ │ │ │ ├── README.md
│ │ │ │ └── compare.go
│ │ └── go-units
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── MAINTAINERS
│ │ │ ├── README.md
│ │ │ ├── circle.yml
│ │ │ ├── duration.go
│ │ │ ├── size.go
│ │ │ └── ulimit.go
│ ├── fsouza
│ │ └── go-dockerclient
│ │ │ ├── AUTHORS
│ │ │ ├── DOCKER-LICENSE
│ │ │ ├── LICENSE
│ │ │ ├── Makefile
│ │ │ ├── README.markdown
│ │ │ ├── auth.go
│ │ │ ├── cancelable.go
│ │ │ ├── cancelable_go14.go
│ │ │ ├── change.go
│ │ │ ├── client.go
│ │ │ ├── container.go
│ │ │ ├── env.go
│ │ │ ├── event.go
│ │ │ ├── exec.go
│ │ │ ├── image.go
│ │ │ ├── misc.go
│ │ │ ├── network.go
│ │ │ ├── signal.go
│ │ │ ├── tar.go
│ │ │ ├── tls.go
│ │ │ └── volume.go
│ ├── gocraft
│ │ └── web
│ │ │ ├── BENCHMARK_RESULTS
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── cover.sh
│ │ │ ├── logger_middleware.go
│ │ │ ├── options_handler.go
│ │ │ ├── panic_handler.go
│ │ │ ├── request.go
│ │ │ ├── response_writer.go
│ │ │ ├── router_serve.go
│ │ │ ├── router_setup.go
│ │ │ ├── show_errors_middleware.go
│ │ │ ├── static_middleware.go
│ │ │ └── tree.go
│ ├── golang
│ │ └── protobuf
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── Make.protobuf
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── jsonpb
│ │ │ ├── jsonpb.go
│ │ │ ├── jsonpb_test.go
│ │ │ └── jsonpb_test_proto
│ │ │ │ ├── Makefile
│ │ │ │ ├── more_test_objects.pb.go
│ │ │ │ ├── more_test_objects.proto
│ │ │ │ ├── test_objects.pb.go
│ │ │ │ └── test_objects.proto
│ │ │ ├── proto
│ │ │ ├── Makefile
│ │ │ ├── all_test.go
│ │ │ ├── any_test.go
│ │ │ ├── clone.go
│ │ │ ├── clone_test.go
│ │ │ ├── decode.go
│ │ │ ├── encode.go
│ │ │ ├── equal.go
│ │ │ ├── equal_test.go
│ │ │ ├── extensions.go
│ │ │ ├── extensions_test.go
│ │ │ ├── lib.go
│ │ │ ├── message_set.go
│ │ │ ├── message_set_test.go
│ │ │ ├── pointer_reflect.go
│ │ │ ├── pointer_unsafe.go
│ │ │ ├── properties.go
│ │ │ ├── proto3_proto
│ │ │ │ ├── proto3.pb.go
│ │ │ │ └── proto3.proto
│ │ │ ├── proto3_test.go
│ │ │ ├── size2_test.go
│ │ │ ├── size_test.go
│ │ │ ├── testdata
│ │ │ │ ├── Makefile
│ │ │ │ ├── golden_test.go
│ │ │ │ ├── test.pb.go
│ │ │ │ └── test.proto
│ │ │ ├── text.go
│ │ │ ├── text_parser.go
│ │ │ ├── text_parser_test.go
│ │ │ └── text_test.go
│ │ │ ├── protoc-gen-go
│ │ │ ├── Makefile
│ │ │ ├── descriptor
│ │ │ │ ├── Makefile
│ │ │ │ └── descriptor.pb.go
│ │ │ ├── doc.go
│ │ │ ├── generator
│ │ │ │ ├── Makefile
│ │ │ │ ├── generator.go
│ │ │ │ └── name_test.go
│ │ │ ├── grpc
│ │ │ │ └── grpc.go
│ │ │ ├── link_grpc.go
│ │ │ ├── main.go
│ │ │ ├── plugin
│ │ │ │ ├── Makefile
│ │ │ │ ├── plugin.pb.go
│ │ │ │ └── plugin.pb.golden
│ │ │ └── testdata
│ │ │ │ ├── Makefile
│ │ │ │ ├── extension_base.proto
│ │ │ │ ├── extension_extra.proto
│ │ │ │ ├── extension_test.go
│ │ │ │ ├── extension_user.proto
│ │ │ │ ├── grpc.proto
│ │ │ │ ├── imp.pb.go.golden
│ │ │ │ ├── imp.proto
│ │ │ │ ├── imp2.proto
│ │ │ │ ├── imp3.proto
│ │ │ │ ├── main_test.go
│ │ │ │ ├── multi
│ │ │ │ ├── multi1.proto
│ │ │ │ ├── multi2.proto
│ │ │ │ └── multi3.proto
│ │ │ │ ├── my_test
│ │ │ │ ├── test.pb.go
│ │ │ │ ├── test.pb.go.golden
│ │ │ │ └── test.proto
│ │ │ │ └── proto3.proto
│ │ │ └── ptypes
│ │ │ ├── any.go
│ │ │ ├── any
│ │ │ ├── any.pb.go
│ │ │ └── any.proto
│ │ │ ├── any_test.go
│ │ │ ├── doc.go
│ │ │ ├── duration.go
│ │ │ ├── duration
│ │ │ ├── duration.pb.go
│ │ │ └── duration.proto
│ │ │ ├── duration_test.go
│ │ │ ├── empty
│ │ │ ├── empty.pb.go
│ │ │ └── empty.proto
│ │ │ ├── regen.sh
│ │ │ ├── struct
│ │ │ ├── struct.pb.go
│ │ │ └── struct.proto
│ │ │ ├── timestamp.go
│ │ │ ├── timestamp
│ │ │ ├── timestamp.pb.go
│ │ │ └── timestamp.proto
│ │ │ ├── timestamp_test.go
│ │ │ └── wrappers
│ │ │ ├── wrappers.pb.go
│ │ │ └── wrappers.proto
│ ├── google
│ │ └── gofuzz
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── doc.go
│ │ │ └── fuzz.go
│ ├── hashicorp
│ │ └── go-cleanhttp
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── cleanhttp.go
│ │ │ └── doc.go
│ ├── howeyc
│ │ └── gopass
│ │ │ ├── LICENSE.txt
│ │ │ ├── README.md
│ │ │ └── pass.go
│ ├── inconshreveable
│ │ └── mousetrap
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── trap_others.go
│ │ │ ├── trap_windows.go
│ │ │ └── trap_windows_1.4.go
│ ├── kr
│ │ ├── pretty
│ │ │ ├── License
│ │ │ ├── Readme
│ │ │ ├── diff.go
│ │ │ ├── formatter.go
│ │ │ ├── pretty.go
│ │ │ └── zero.go
│ │ └── text
│ │ │ ├── License
│ │ │ ├── Readme
│ │ │ ├── doc.go
│ │ │ ├── indent.go
│ │ │ └── wrap.go
│ ├── looplab
│ │ └── fsm
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── errors.go
│ │ │ ├── event.go
│ │ │ ├── fsm.go
│ │ │ └── wercker.yml
│ ├── magiconair
│ │ └── properties
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── doc.go
│ │ │ ├── lex.go
│ │ │ ├── load.go
│ │ │ ├── parser.go
│ │ │ ├── properties.go
│ │ │ └── rangecheck.go
│ ├── mattn
│ │ └── go-sqlite3
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── backup.go
│ │ │ ├── callback.go
│ │ │ ├── code
│ │ │ ├── sqlite3-binding.c
│ │ │ ├── sqlite3-binding.h
│ │ │ └── sqlite3ext.h
│ │ │ ├── doc.go
│ │ │ ├── error.go
│ │ │ ├── sqlite3-binding.c
│ │ │ ├── sqlite3-binding.h
│ │ │ ├── sqlite3.go
│ │ │ ├── sqlite3_icu.go
│ │ │ ├── sqlite3_libsqlite3.go
│ │ │ ├── sqlite3_load_extension.go
│ │ │ ├── sqlite3_omit_load_extension.go
│ │ │ ├── sqlite3_other.go
│ │ │ └── sqlite3_windows.go
│ ├── mitchellh
│ │ └── mapstructure
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── decode_hooks.go
│ │ │ ├── error.go
│ │ │ └── mapstructure.go
│ ├── op
│ │ └── go-logging
│ │ │ ├── CHANGELOG.md
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── backend.go
│ │ │ ├── format.go
│ │ │ ├── level.go
│ │ │ ├── log_nix.go
│ │ │ ├── log_windows.go
│ │ │ ├── logger.go
│ │ │ ├── memory.go
│ │ │ ├── multi.go
│ │ │ ├── syslog.go
│ │ │ └── syslog_fallback.go
│ ├── opencontainers
│ │ └── runc
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ └── libcontainer
│ │ │ └── user
│ │ │ ├── MAINTAINERS
│ │ │ ├── lookup.go
│ │ │ ├── lookup_unix.go
│ │ │ ├── lookup_unsupported.go
│ │ │ └── user.go
│ ├── pmezard
│ │ └── go-difflib
│ │ │ ├── LICENSE
│ │ │ └── difflib
│ │ │ └── difflib.go
│ ├── russross
│ │ └── blackfriday
│ │ │ ├── LICENSE.txt
│ │ │ ├── README.md
│ │ │ ├── block.go
│ │ │ ├── html.go
│ │ │ ├── inline.go
│ │ │ ├── latex.go
│ │ │ ├── markdown.go
│ │ │ └── smartypants.go
│ ├── shurcooL
│ │ └── sanitized_anchor_name
│ │ │ ├── README.md
│ │ │ └── main.go
│ ├── spf13
│ │ ├── cast
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── cast.go
│ │ │ └── caste.go
│ │ ├── cobra
│ │ │ ├── LICENSE.txt
│ │ │ ├── README.md
│ │ │ ├── bash_completions.go
│ │ │ ├── bash_completions.md
│ │ │ ├── cobra.go
│ │ │ ├── command.go
│ │ │ ├── command_notwin.go
│ │ │ └── command_win.go
│ │ ├── jwalterweatherman
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ └── thatswhyyoualwaysleaveanote.go
│ │ ├── pflag
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── bool.go
│ │ │ ├── count.go
│ │ │ ├── duration.go
│ │ │ ├── flag.go
│ │ │ ├── float32.go
│ │ │ ├── float64.go
│ │ │ ├── golangflag.go
│ │ │ ├── int.go
│ │ │ ├── int32.go
│ │ │ ├── int64.go
│ │ │ ├── int8.go
│ │ │ ├── int_slice.go
│ │ │ ├── ip.go
│ │ │ ├── ipmask.go
│ │ │ ├── ipnet.go
│ │ │ ├── string.go
│ │ │ ├── string_slice.go
│ │ │ ├── uint.go
│ │ │ ├── uint16.go
│ │ │ ├── uint32.go
│ │ │ ├── uint64.go
│ │ │ └── uint8.go
│ │ └── viper
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── util.go
│ │ │ └── viper.go
│ ├── stretchr
│ │ ├── objx
│ │ │ ├── LICENSE.md
│ │ │ ├── README.md
│ │ │ ├── accessors.go
│ │ │ ├── constants.go
│ │ │ ├── conversions.go
│ │ │ ├── doc.go
│ │ │ ├── map.go
│ │ │ ├── mutations.go
│ │ │ ├── security.go
│ │ │ ├── tests.go
│ │ │ ├── type_specific_codegen.go
│ │ │ └── value.go
│ │ └── testify
│ │ │ ├── LICENSE
│ │ │ ├── assert
│ │ │ ├── assertion_forward.go
│ │ │ ├── assertion_forward.go.tmpl
│ │ │ ├── assertions.go
│ │ │ ├── doc.go
│ │ │ ├── errors.go
│ │ │ ├── forward_assertions.go
│ │ │ └── http_assertions.go
│ │ │ ├── mock
│ │ │ ├── doc.go
│ │ │ └── mock.go
│ │ │ └── require
│ │ │ ├── doc.go
│ │ │ ├── forward_requirements.go
│ │ │ ├── require.go
│ │ │ ├── require.go.tmpl
│ │ │ ├── require_forward.go
│ │ │ ├── require_forward.go.tmpl
│ │ │ └── requirements.go
│ └── tecbot
│ │ └── gorocksdb
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── backup.go
│ │ ├── cache.go
│ │ ├── cf_handle.go
│ │ ├── compaction_filter.go
│ │ ├── comparator.go
│ │ ├── db.go
│ │ ├── doc.go
│ │ ├── dynflag.go
│ │ ├── embedflag.go
│ │ ├── env.go
│ │ ├── filter_policy.go
│ │ ├── gorocksdb.c
│ │ ├── gorocksdb.h
│ │ ├── iterator.go
│ │ ├── merge_operator.go
│ │ ├── options.go
│ │ ├── options_block_based_table.go
│ │ ├── options_compaction.go
│ │ ├── options_compression.go
│ │ ├── options_flush.go
│ │ ├── options_read.go
│ │ ├── options_write.go
│ │ ├── slice.go
│ │ ├── slice_transform.go
│ │ ├── snapshot.go
│ │ ├── util.go
│ │ └── write_batch.go
│ ├── golang.org
│ └── x
│ │ ├── crypto
│ │ ├── LICENSE
│ │ ├── PATENTS
│ │ ├── hkdf
│ │ │ └── hkdf.go
│ │ ├── sha3
│ │ │ ├── doc.go
│ │ │ ├── hashes.go
│ │ │ ├── keccakf.go
│ │ │ ├── register.go
│ │ │ ├── sha3.go
│ │ │ ├── shake.go
│ │ │ ├── xor.go
│ │ │ ├── xor_generic.go
│ │ │ └── xor_unaligned.go
│ │ └── ssh
│ │ │ ├── buffer.go
│ │ │ ├── certs.go
│ │ │ ├── channel.go
│ │ │ ├── cipher.go
│ │ │ ├── client.go
│ │ │ ├── client_auth.go
│ │ │ ├── common.go
│ │ │ ├── connection.go
│ │ │ ├── doc.go
│ │ │ ├── handshake.go
│ │ │ ├── kex.go
│ │ │ ├── keys.go
│ │ │ ├── mac.go
│ │ │ ├── messages.go
│ │ │ ├── mux.go
│ │ │ ├── server.go
│ │ │ ├── session.go
│ │ │ ├── tcpip.go
│ │ │ ├── terminal
│ │ │ ├── terminal.go
│ │ │ ├── util.go
│ │ │ ├── util_bsd.go
│ │ │ ├── util_linux.go
│ │ │ └── util_windows.go
│ │ │ └── transport.go
│ │ ├── net
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTING.md
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── PATENTS
│ │ ├── README
│ │ ├── bpf
│ │ │ ├── asm.go
│ │ │ ├── constants.go
│ │ │ ├── doc.go
│ │ │ ├── instructions.go
│ │ │ ├── instructions_test.go
│ │ │ ├── testdata
│ │ │ │ ├── all_instructions.bpf
│ │ │ │ └── all_instructions.txt
│ │ │ ├── vm.go
│ │ │ ├── vm_aluop_test.go
│ │ │ ├── vm_bpf_test.go
│ │ │ ├── vm_extension_test.go
│ │ │ ├── vm_instructions.go
│ │ │ ├── vm_jump_test.go
│ │ │ ├── vm_load_test.go
│ │ │ ├── vm_ret_test.go
│ │ │ ├── vm_scratch_test.go
│ │ │ └── vm_test.go
│ │ ├── codereview.cfg
│ │ ├── context
│ │ │ ├── context.go
│ │ │ ├── context_test.go
│ │ │ ├── ctxhttp
│ │ │ │ ├── ctxhttp.go
│ │ │ │ ├── ctxhttp_17_test.go
│ │ │ │ ├── ctxhttp_pre17.go
│ │ │ │ ├── ctxhttp_pre17_test.go
│ │ │ │ └── ctxhttp_test.go
│ │ │ ├── go17.go
│ │ │ ├── pre_go17.go
│ │ │ └── withtimeout_test.go
│ │ ├── dict
│ │ │ └── dict.go
│ │ ├── html
│ │ │ ├── atom
│ │ │ │ ├── atom.go
│ │ │ │ ├── atom_test.go
│ │ │ │ ├── gen.go
│ │ │ │ ├── table.go
│ │ │ │ └── table_test.go
│ │ │ ├── charset
│ │ │ │ ├── charset.go
│ │ │ │ ├── charset_test.go
│ │ │ │ └── testdata
│ │ │ │ │ ├── HTTP-charset.html
│ │ │ │ │ ├── HTTP-vs-UTF-8-BOM.html
│ │ │ │ │ ├── HTTP-vs-meta-charset.html
│ │ │ │ │ ├── HTTP-vs-meta-content.html
│ │ │ │ │ ├── No-encoding-declaration.html
│ │ │ │ │ ├── README
│ │ │ │ │ ├── UTF-16BE-BOM.html
│ │ │ │ │ ├── UTF-16LE-BOM.html
│ │ │ │ │ ├── UTF-8-BOM-vs-meta-charset.html
│ │ │ │ │ ├── UTF-8-BOM-vs-meta-content.html
│ │ │ │ │ ├── meta-charset-attribute.html
│ │ │ │ │ └── meta-content-attribute.html
│ │ │ ├── const.go
│ │ │ ├── doc.go
│ │ │ ├── doctype.go
│ │ │ ├── entity.go
│ │ │ ├── entity_test.go
│ │ │ ├── escape.go
│ │ │ ├── escape_test.go
│ │ │ ├── example_test.go
│ │ │ ├── foreign.go
│ │ │ ├── node.go
│ │ │ ├── node_test.go
│ │ │ ├── parse.go
│ │ │ ├── parse_test.go
│ │ │ ├── render.go
│ │ │ ├── render_test.go
│ │ │ ├── testdata
│ │ │ │ ├── go1.html
│ │ │ │ └── webkit
│ │ │ │ │ ├── README
│ │ │ │ │ ├── adoption01.dat
│ │ │ │ │ ├── adoption02.dat
│ │ │ │ │ ├── comments01.dat
│ │ │ │ │ ├── doctype01.dat
│ │ │ │ │ ├── entities01.dat
│ │ │ │ │ ├── entities02.dat
│ │ │ │ │ ├── html5test-com.dat
│ │ │ │ │ ├── inbody01.dat
│ │ │ │ │ ├── isindex.dat
│ │ │ │ │ ├── pending-spec-changes-plain-text-unsafe.dat
│ │ │ │ │ ├── pending-spec-changes.dat
│ │ │ │ │ ├── plain-text-unsafe.dat
│ │ │ │ │ ├── scriptdata01.dat
│ │ │ │ │ ├── scripted
│ │ │ │ │ ├── adoption01.dat
│ │ │ │ │ └── webkit01.dat
│ │ │ │ │ ├── tables01.dat
│ │ │ │ │ ├── tests1.dat
│ │ │ │ │ ├── tests10.dat
│ │ │ │ │ ├── tests11.dat
│ │ │ │ │ ├── tests12.dat
│ │ │ │ │ ├── tests14.dat
│ │ │ │ │ ├── tests15.dat
│ │ │ │ │ ├── tests16.dat
│ │ │ │ │ ├── tests17.dat
│ │ │ │ │ ├── tests18.dat
│ │ │ │ │ ├── tests19.dat
│ │ │ │ │ ├── tests2.dat
│ │ │ │ │ ├── tests20.dat
│ │ │ │ │ ├── tests21.dat
│ │ │ │ │ ├── tests22.dat
│ │ │ │ │ ├── tests23.dat
│ │ │ │ │ ├── tests24.dat
│ │ │ │ │ ├── tests25.dat
│ │ │ │ │ ├── tests26.dat
│ │ │ │ │ ├── tests3.dat
│ │ │ │ │ ├── tests4.dat
│ │ │ │ │ ├── tests5.dat
│ │ │ │ │ ├── tests6.dat
│ │ │ │ │ ├── tests7.dat
│ │ │ │ │ ├── tests8.dat
│ │ │ │ │ ├── tests9.dat
│ │ │ │ │ ├── tests_innerHTML_1.dat
│ │ │ │ │ ├── tricky01.dat
│ │ │ │ │ ├── webkit01.dat
│ │ │ │ │ └── webkit02.dat
│ │ │ ├── token.go
│ │ │ └── token_test.go
│ │ ├── http2
│ │ │ ├── .gitignore
│ │ │ ├── Dockerfile
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── client_conn_pool.go
│ │ │ ├── configure_transport.go
│ │ │ ├── errors.go
│ │ │ ├── errors_test.go
│ │ │ ├── fixed_buffer.go
│ │ │ ├── fixed_buffer_test.go
│ │ │ ├── flow.go
│ │ │ ├── flow_test.go
│ │ │ ├── frame.go
│ │ │ ├── frame_test.go
│ │ │ ├── go16.go
│ │ │ ├── go17.go
│ │ │ ├── gotrack.go
│ │ │ ├── gotrack_test.go
│ │ │ ├── h2demo
│ │ │ │ ├── .gitignore
│ │ │ │ ├── Makefile
│ │ │ │ ├── README
│ │ │ │ ├── h2demo.go
│ │ │ │ ├── launch.go
│ │ │ │ ├── rootCA.key
│ │ │ │ ├── rootCA.pem
│ │ │ │ ├── rootCA.srl
│ │ │ │ ├── server.crt
│ │ │ │ └── server.key
│ │ │ ├── h2i
│ │ │ │ ├── README.md
│ │ │ │ └── h2i.go
│ │ │ ├── headermap.go
│ │ │ ├── hpack
│ │ │ │ ├── encode.go
│ │ │ │ ├── encode_test.go
│ │ │ │ ├── hpack.go
│ │ │ │ ├── hpack_test.go
│ │ │ │ ├── huffman.go
│ │ │ │ └── tables.go
│ │ │ ├── http2.go
│ │ │ ├── http2_test.go
│ │ │ ├── not_go16.go
│ │ │ ├── not_go17.go
│ │ │ ├── pipe.go
│ │ │ ├── pipe_test.go
│ │ │ ├── priority_test.go
│ │ │ ├── server.go
│ │ │ ├── server_test.go
│ │ │ ├── testdata
│ │ │ │ └── draft-ietf-httpbis-http2.xml
│ │ │ ├── transport.go
│ │ │ ├── transport_test.go
│ │ │ ├── write.go
│ │ │ ├── writesched.go
│ │ │ └── z_spec_test.go
│ │ ├── icmp
│ │ │ ├── dstunreach.go
│ │ │ ├── echo.go
│ │ │ ├── endpoint.go
│ │ │ ├── example_test.go
│ │ │ ├── extension.go
│ │ │ ├── extension_test.go
│ │ │ ├── helper.go
│ │ │ ├── helper_posix.go
│ │ │ ├── interface.go
│ │ │ ├── ipv4.go
│ │ │ ├── ipv4_test.go
│ │ │ ├── ipv6.go
│ │ │ ├── listen_posix.go
│ │ │ ├── listen_stub.go
│ │ │ ├── message.go
│ │ │ ├── message_test.go
│ │ │ ├── messagebody.go
│ │ │ ├── mpls.go
│ │ │ ├── multipart.go
│ │ │ ├── multipart_test.go
│ │ │ ├── packettoobig.go
│ │ │ ├── paramprob.go
│ │ │ ├── ping_test.go
│ │ │ ├── sys_freebsd.go
│ │ │ └── timeexceeded.go
│ │ ├── idna
│ │ │ ├── idna.go
│ │ │ ├── idna_test.go
│ │ │ ├── punycode.go
│ │ │ └── punycode_test.go
│ │ ├── internal
│ │ │ ├── iana
│ │ │ │ ├── const.go
│ │ │ │ └── gen.go
│ │ │ ├── nettest
│ │ │ │ ├── error_posix.go
│ │ │ │ ├── error_stub.go
│ │ │ │ ├── interface.go
│ │ │ │ ├── rlimit.go
│ │ │ │ ├── rlimit_stub.go
│ │ │ │ ├── rlimit_unix.go
│ │ │ │ ├── rlimit_windows.go
│ │ │ │ ├── stack.go
│ │ │ │ ├── stack_stub.go
│ │ │ │ ├── stack_unix.go
│ │ │ │ └── stack_windows.go
│ │ │ └── timeseries
│ │ │ │ ├── timeseries.go
│ │ │ │ └── timeseries_test.go
│ │ ├── ipv4
│ │ │ ├── bpf_test.go
│ │ │ ├── bpfopt_linux.go
│ │ │ ├── bpfopt_stub.go
│ │ │ ├── control.go
│ │ │ ├── control_bsd.go
│ │ │ ├── control_pktinfo.go
│ │ │ ├── control_stub.go
│ │ │ ├── control_unix.go
│ │ │ ├── control_windows.go
│ │ │ ├── defs_darwin.go
│ │ │ ├── defs_dragonfly.go
│ │ │ ├── defs_freebsd.go
│ │ │ ├── defs_linux.go
│ │ │ ├── defs_netbsd.go
│ │ │ ├── defs_openbsd.go
│ │ │ ├── defs_solaris.go
│ │ │ ├── dgramopt_posix.go
│ │ │ ├── dgramopt_stub.go
│ │ │ ├── doc.go
│ │ │ ├── endpoint.go
│ │ │ ├── example_test.go
│ │ │ ├── gen.go
│ │ │ ├── genericopt_posix.go
│ │ │ ├── genericopt_stub.go
│ │ │ ├── header.go
│ │ │ ├── header_test.go
│ │ │ ├── helper.go
│ │ │ ├── helper_stub.go
│ │ │ ├── helper_unix.go
│ │ │ ├── helper_windows.go
│ │ │ ├── iana.go
│ │ │ ├── icmp.go
│ │ │ ├── icmp_linux.go
│ │ │ ├── icmp_stub.go
│ │ │ ├── icmp_test.go
│ │ │ ├── mocktransponder_test.go
│ │ │ ├── multicast_test.go
│ │ │ ├── multicastlistener_test.go
│ │ │ ├── multicastsockopt_test.go
│ │ │ ├── packet.go
│ │ │ ├── payload.go
│ │ │ ├── payload_cmsg.go
│ │ │ ├── payload_nocmsg.go
│ │ │ ├── readwrite_test.go
│ │ │ ├── sockopt.go
│ │ │ ├── sockopt_asmreq.go
│ │ │ ├── sockopt_asmreq_stub.go
│ │ │ ├── sockopt_asmreq_unix.go
│ │ │ ├── sockopt_asmreq_windows.go
│ │ │ ├── sockopt_asmreqn_stub.go
│ │ │ ├── sockopt_asmreqn_unix.go
│ │ │ ├── sockopt_ssmreq_stub.go
│ │ │ ├── sockopt_ssmreq_unix.go
│ │ │ ├── sockopt_stub.go
│ │ │ ├── sockopt_unix.go
│ │ │ ├── sockopt_windows.go
│ │ │ ├── sys_bsd.go
│ │ │ ├── sys_darwin.go
│ │ │ ├── sys_freebsd.go
│ │ │ ├── sys_linux.go
│ │ │ ├── sys_openbsd.go
│ │ │ ├── sys_stub.go
│ │ │ ├── sys_windows.go
│ │ │ ├── syscall_linux_386.go
│ │ │ ├── syscall_unix.go
│ │ │ ├── thunk_linux_386.s
│ │ │ ├── unicast_test.go
│ │ │ ├── unicastsockopt_test.go
│ │ │ ├── zsys_darwin.go
│ │ │ ├── zsys_dragonfly.go
│ │ │ ├── zsys_freebsd_386.go
│ │ │ ├── zsys_freebsd_amd64.go
│ │ │ ├── zsys_freebsd_arm.go
│ │ │ ├── zsys_linux_386.go
│ │ │ ├── zsys_linux_amd64.go
│ │ │ ├── zsys_linux_arm.go
│ │ │ ├── zsys_linux_arm64.go
│ │ │ ├── zsys_linux_mips64.go
│ │ │ ├── zsys_linux_mips64le.go
│ │ │ ├── zsys_linux_ppc.go
│ │ │ ├── zsys_linux_ppc64.go
│ │ │ ├── zsys_linux_ppc64le.go
│ │ │ ├── zsys_linux_s390x.go
│ │ │ ├── zsys_netbsd.go
│ │ │ ├── zsys_openbsd.go
│ │ │ └── zsys_solaris.go
│ │ ├── ipv6
│ │ │ ├── bpf_test.go
│ │ │ ├── bpfopt_linux.go
│ │ │ ├── bpfopt_stub.go
│ │ │ ├── control.go
│ │ │ ├── control_rfc2292_unix.go
│ │ │ ├── control_rfc3542_unix.go
│ │ │ ├── control_stub.go
│ │ │ ├── control_unix.go
│ │ │ ├── control_windows.go
│ │ │ ├── defs_darwin.go
│ │ │ ├── defs_dragonfly.go
│ │ │ ├── defs_freebsd.go
│ │ │ ├── defs_linux.go
│ │ │ ├── defs_netbsd.go
│ │ │ ├── defs_openbsd.go
│ │ │ ├── defs_solaris.go
│ │ │ ├── dgramopt_posix.go
│ │ │ ├── dgramopt_stub.go
│ │ │ ├── doc.go
│ │ │ ├── endpoint.go
│ │ │ ├── example_test.go
│ │ │ ├── gen.go
│ │ │ ├── genericopt_posix.go
│ │ │ ├── genericopt_stub.go
│ │ │ ├── header.go
│ │ │ ├── header_test.go
│ │ │ ├── helper.go
│ │ │ ├── helper_stub.go
│ │ │ ├── helper_unix.go
│ │ │ ├── helper_windows.go
│ │ │ ├── iana.go
│ │ │ ├── icmp.go
│ │ │ ├── icmp_bsd.go
│ │ │ ├── icmp_linux.go
│ │ │ ├── icmp_solaris.go
│ │ │ ├── icmp_stub.go
│ │ │ ├── icmp_test.go
│ │ │ ├── icmp_windows.go
│ │ │ ├── mocktransponder_test.go
│ │ │ ├── multicast_test.go
│ │ │ ├── multicastlistener_test.go
│ │ │ ├── multicastsockopt_test.go
│ │ │ ├── payload.go
│ │ │ ├── payload_cmsg.go
│ │ │ ├── payload_nocmsg.go
│ │ │ ├── readwrite_test.go
│ │ │ ├── sockopt.go
│ │ │ ├── sockopt_asmreq_unix.go
│ │ │ ├── sockopt_asmreq_windows.go
│ │ │ ├── sockopt_ssmreq_stub.go
│ │ │ ├── sockopt_ssmreq_unix.go
│ │ │ ├── sockopt_stub.go
│ │ │ ├── sockopt_test.go
│ │ │ ├── sockopt_unix.go
│ │ │ ├── sockopt_windows.go
│ │ │ ├── sys_bsd.go
│ │ │ ├── sys_darwin.go
│ │ │ ├── sys_freebsd.go
│ │ │ ├── sys_linux.go
│ │ │ ├── sys_stub.go
│ │ │ ├── sys_windows.go
│ │ │ ├── syscall_linux_386.go
│ │ │ ├── syscall_unix.go
│ │ │ ├── thunk_linux_386.s
│ │ │ ├── unicast_test.go
│ │ │ ├── unicastsockopt_test.go
│ │ │ ├── zsys_darwin.go
│ │ │ ├── zsys_dragonfly.go
│ │ │ ├── zsys_freebsd_386.go
│ │ │ ├── zsys_freebsd_amd64.go
│ │ │ ├── zsys_freebsd_arm.go
│ │ │ ├── zsys_linux_386.go
│ │ │ ├── zsys_linux_amd64.go
│ │ │ ├── zsys_linux_arm.go
│ │ │ ├── zsys_linux_arm64.go
│ │ │ ├── zsys_linux_mips64.go
│ │ │ ├── zsys_linux_mips64le.go
│ │ │ ├── zsys_linux_ppc.go
│ │ │ ├── zsys_linux_ppc64.go
│ │ │ ├── zsys_linux_ppc64le.go
│ │ │ ├── zsys_linux_s390x.go
│ │ │ ├── zsys_netbsd.go
│ │ │ ├── zsys_openbsd.go
│ │ │ └── zsys_solaris.go
│ │ ├── lex
│ │ │ └── httplex
│ │ │ │ ├── httplex.go
│ │ │ │ └── httplex_test.go
│ │ ├── netutil
│ │ │ ├── listen.go
│ │ │ └── listen_test.go
│ │ ├── proxy
│ │ │ ├── direct.go
│ │ │ ├── per_host.go
│ │ │ ├── per_host_test.go
│ │ │ ├── proxy.go
│ │ │ ├── proxy_test.go
│ │ │ └── socks5.go
│ │ ├── publicsuffix
│ │ │ ├── gen.go
│ │ │ ├── list.go
│ │ │ ├── list_test.go
│ │ │ ├── table.go
│ │ │ └── table_test.go
│ │ ├── route
│ │ │ ├── address.go
│ │ │ ├── address_darwin_test.go
│ │ │ ├── address_test.go
│ │ │ ├── binary.go
│ │ │ ├── defs_darwin.go
│ │ │ ├── defs_dragonfly.go
│ │ │ ├── defs_freebsd.go
│ │ │ ├── defs_netbsd.go
│ │ │ ├── defs_openbsd.go
│ │ │ ├── interface.go
│ │ │ ├── interface_announce.go
│ │ │ ├── interface_classic.go
│ │ │ ├── interface_freebsd.go
│ │ │ ├── interface_multicast.go
│ │ │ ├── interface_openbsd.go
│ │ │ ├── message.go
│ │ │ ├── message_darwin_test.go
│ │ │ ├── message_freebsd_test.go
│ │ │ ├── message_test.go
│ │ │ ├── route.go
│ │ │ ├── route_classic.go
│ │ │ ├── route_openbsd.go
│ │ │ ├── route_test.go
│ │ │ ├── sys.go
│ │ │ ├── sys_darwin.go
│ │ │ ├── sys_dragonfly.go
│ │ │ ├── sys_freebsd.go
│ │ │ ├── sys_netbsd.go
│ │ │ ├── sys_openbsd.go
│ │ │ ├── syscall.go
│ │ │ ├── syscall.s
│ │ │ ├── zsys_darwin.go
│ │ │ ├── zsys_dragonfly.go
│ │ │ ├── zsys_freebsd_386.go
│ │ │ ├── zsys_freebsd_amd64.go
│ │ │ ├── zsys_freebsd_arm.go
│ │ │ ├── zsys_netbsd.go
│ │ │ └── zsys_openbsd.go
│ │ ├── trace
│ │ │ ├── events.go
│ │ │ ├── histogram.go
│ │ │ ├── histogram_test.go
│ │ │ ├── trace.go
│ │ │ └── trace_test.go
│ │ ├── webdav
│ │ │ ├── file.go
│ │ │ ├── file_test.go
│ │ │ ├── if.go
│ │ │ ├── if_test.go
│ │ │ ├── internal
│ │ │ │ └── xml
│ │ │ │ │ ├── README
│ │ │ │ │ ├── atom_test.go
│ │ │ │ │ ├── example_test.go
│ │ │ │ │ ├── marshal.go
│ │ │ │ │ ├── marshal_test.go
│ │ │ │ │ ├── read.go
│ │ │ │ │ ├── read_test.go
│ │ │ │ │ ├── typeinfo.go
│ │ │ │ │ ├── xml.go
│ │ │ │ │ └── xml_test.go
│ │ │ ├── litmus_test_server.go
│ │ │ ├── lock.go
│ │ │ ├── lock_test.go
│ │ │ ├── prop.go
│ │ │ ├── prop_test.go
│ │ │ ├── webdav.go
│ │ │ ├── webdav_test.go
│ │ │ ├── xml.go
│ │ │ └── xml_test.go
│ │ ├── websocket
│ │ │ ├── client.go
│ │ │ ├── exampledial_test.go
│ │ │ ├── examplehandler_test.go
│ │ │ ├── hybi.go
│ │ │ ├── hybi_test.go
│ │ │ ├── server.go
│ │ │ ├── websocket.go
│ │ │ └── websocket_test.go
│ │ └── xsrftoken
│ │ │ ├── xsrf.go
│ │ │ └── xsrf_test.go
│ │ └── tools
│ │ ├── cmd
│ │ └── cover
│ │ │ ├── README
│ │ │ ├── cover.go
│ │ │ ├── cover_test.go
│ │ │ ├── doc.go
│ │ │ ├── func.go
│ │ │ └── html.go
│ │ └── cover
│ │ └── profile.go
│ ├── google.golang.org
│ └── grpc
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── Documentation
│ │ ├── grpc-auth-support.md
│ │ └── grpc-metadata.md
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── PATENTS
│ │ ├── README.md
│ │ ├── backoff.go
│ │ ├── backoff_test.go
│ │ ├── balancer.go
│ │ ├── balancer_test.go
│ │ ├── benchmark
│ │ ├── benchmark.go
│ │ ├── benchmark_test.go
│ │ ├── client
│ │ │ └── main.go
│ │ ├── grpc_testing
│ │ │ ├── control.pb.go
│ │ │ ├── control.proto
│ │ │ ├── messages.pb.go
│ │ │ ├── messages.proto
│ │ │ ├── payloads.pb.go
│ │ │ ├── payloads.proto
│ │ │ ├── services.pb.go
│ │ │ ├── services.proto
│ │ │ ├── stats.pb.go
│ │ │ └── stats.proto
│ │ ├── server
│ │ │ ├── main.go
│ │ │ └── testdata
│ │ │ │ ├── ca.pem
│ │ │ │ ├── server1.key
│ │ │ │ └── server1.pem
│ │ ├── stats
│ │ │ ├── histogram.go
│ │ │ ├── stats.go
│ │ │ └── util.go
│ │ └── worker
│ │ │ ├── benchmark_client.go
│ │ │ ├── benchmark_server.go
│ │ │ ├── main.go
│ │ │ └── util.go
│ │ ├── call.go
│ │ ├── call_test.go
│ │ ├── clientconn.go
│ │ ├── clientconn_test.go
│ │ ├── codegen.sh
│ │ ├── codes
│ │ ├── code_string.go
│ │ └── codes.go
│ │ ├── coverage.sh
│ │ ├── credentials
│ │ ├── credentials.go
│ │ └── oauth
│ │ │ └── oauth.go
│ │ ├── doc.go
│ │ ├── examples
│ │ ├── README.md
│ │ ├── gotutorial.md
│ │ ├── helloworld
│ │ │ ├── greeter_client
│ │ │ │ └── main.go
│ │ │ ├── greeter_server
│ │ │ │ └── main.go
│ │ │ └── helloworld
│ │ │ │ ├── helloworld.pb.go
│ │ │ │ └── helloworld.proto
│ │ └── route_guide
│ │ │ ├── README.md
│ │ │ ├── client
│ │ │ └── client.go
│ │ │ ├── routeguide
│ │ │ ├── route_guide.pb.go
│ │ │ └── route_guide.proto
│ │ │ ├── server
│ │ │ └── server.go
│ │ │ └── testdata
│ │ │ ├── ca.pem
│ │ │ ├── route_guide_db.json
│ │ │ ├── server1.key
│ │ │ └── server1.pem
│ │ ├── grpclog
│ │ ├── glogger
│ │ │ └── glogger.go
│ │ └── logger.go
│ │ ├── health
│ │ ├── grpc_health_v1
│ │ │ ├── health.pb.go
│ │ │ └── health.proto
│ │ └── health.go
│ │ ├── interceptor.go
│ │ ├── internal
│ │ └── internal.go
│ │ ├── interop
│ │ ├── client
│ │ │ ├── client.go
│ │ │ └── testdata
│ │ │ │ ├── ca.pem
│ │ │ │ ├── server1.key
│ │ │ │ └── server1.pem
│ │ ├── grpc_testing
│ │ │ ├── test.pb.go
│ │ │ └── test.proto
│ │ ├── server
│ │ │ ├── server.go
│ │ │ └── testdata
│ │ │ │ ├── ca.pem
│ │ │ │ ├── server1.key
│ │ │ │ └── server1.pem
│ │ └── test_utils.go
│ │ ├── metadata
│ │ ├── metadata.go
│ │ └── metadata_test.go
│ │ ├── naming
│ │ └── naming.go
│ │ ├── peer
│ │ └── peer.go
│ │ ├── reflection
│ │ ├── README.md
│ │ ├── grpc_reflection_v1alpha
│ │ │ ├── reflection.pb.go
│ │ │ └── reflection.proto
│ │ ├── grpc_testing
│ │ │ ├── proto2.pb.go
│ │ │ ├── proto2.proto
│ │ │ ├── proto2_ext.pb.go
│ │ │ ├── proto2_ext.proto
│ │ │ ├── test.pb.go
│ │ │ └── test.proto
│ │ ├── serverreflection.go
│ │ └── serverreflection_test.go
│ │ ├── rpc_util.go
│ │ ├── rpc_util_test.go
│ │ ├── server.go
│ │ ├── server_test.go
│ │ ├── stream.go
│ │ ├── stress
│ │ ├── client
│ │ │ └── main.go
│ │ ├── grpc_testing
│ │ │ ├── metrics.pb.go
│ │ │ └── metrics.proto
│ │ └── metrics_client
│ │ │ └── main.go
│ │ ├── test
│ │ ├── codec_perf
│ │ │ ├── perf.pb.go
│ │ │ └── perf.proto
│ │ ├── end2end_test.go
│ │ ├── grpc_testing
│ │ │ ├── test.pb.go
│ │ │ └── test.proto
│ │ ├── race_test.go
│ │ ├── servertester_test.go
│ │ └── testdata
│ │ │ ├── ca.pem
│ │ │ ├── server1.key
│ │ │ └── server1.pem
│ │ ├── testdata
│ │ ├── ca.pem
│ │ ├── server1.key
│ │ └── server1.pem
│ │ ├── trace.go
│ │ └── transport
│ │ ├── control.go
│ │ ├── handler_server.go
│ │ ├── handler_server_test.go
│ │ ├── http2_client.go
│ │ ├── http2_server.go
│ │ ├── http_util.go
│ │ ├── http_util_test.go
│ │ ├── testdata
│ │ ├── ca.pem
│ │ ├── server1.key
│ │ └── server1.pem
│ │ ├── transport.go
│ │ └── transport_test.go
│ ├── google
│ └── protobuf
│ │ ├── empty.pb.go
│ │ └── timestamp.pb.go
│ ├── gopkg.in
│ └── yaml.v2
│ │ ├── LICENSE
│ │ ├── LICENSE.libyaml
│ │ ├── README.md
│ │ ├── apic.go
│ │ ├── decode.go
│ │ ├── emitterc.go
│ │ ├── encode.go
│ │ ├── parserc.go
│ │ ├── readerc.go
│ │ ├── resolve.go
│ │ ├── scannerc.go
│ │ ├── sorter.go
│ │ ├── writerc.go
│ │ ├── yaml.go
│ │ ├── yamlh.go
│ │ └── yamlprivateh.go
│ └── vendor.json
└── us.blockchain.ibm.com.cert
/.gitignore:
--------------------------------------------------------------------------------
1 | certificate.pem**
2 | keyValStore-*
3 |
4 | # NPM Dependencies
5 | node_modules
6 |
7 | # IntelliJ
8 | .idea
9 |
10 | chaincodeID
11 |
--------------------------------------------------------------------------------
/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "chainName":"hello-world",
3 | "deployWaitTime":"60",
4 | "user": {
5 | "username": "JohnDoe",
6 | "affiliation" : "group1"
7 | },
8 | "deployRequest":{
9 | "chaincodePath":"chaincode",
10 | "functionName":"init",
11 | "args":[
12 | "a",
13 | "100",
14 | "b",
15 | "200"
16 | ]
17 | },
18 | "invokeRequest":{
19 | "functionName":"invoke",
20 | "args":[
21 | "a",
22 | "b",
23 | "10"
24 | ]
25 | },
26 | "queryRequest":{
27 | "functionName":"query",
28 | "args":[
29 | "a"
30 | ]
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Hello-Blockchain",
3 | "version": "0.0.1",
4 | "description": "A Node.js hello-world program using NodeSdk Apis",
5 | "main": "app.js",
6 | "scripts": {
7 | "start": "node app.js"
8 | },
9 | "engines": {
10 | "node": "*"
11 | },
12 | "keywords": [
13 | "Blockchain Hello-World",
14 | "Hello-Blockchain",
15 | "Blockchain sample program",
16 | "blockchain hello world"
17 | ],
18 | "repository": {
19 | "type": "git",
20 | "url": "https://github.com/IBM-Blockchain/SDK-Demo.git"
21 | },
22 | "license": "Apache-2.0",
23 | "dependencies": {
24 | "hfc": "^0.6.5"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/servicecreds.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/servicecreds.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/consensus/helper/engine_test.go:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright IBM Corp. 2016 All Rights Reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | package helper
18 |
19 | import "testing"
20 |
21 | func TestEngine(t *testing.T) {
22 | t.Skip("Engine functions already tested in other consensus components")
23 | }
24 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/admin_test.go:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright IBM Corp. 2016 All Rights Reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | package core
18 |
19 | import "testing"
20 |
21 | func TestServer_Status(t *testing.T) {
22 | t.Skip("TBD")
23 | //performHandshake(t, peerClientConn)
24 | }
25 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/chaincode/platforms/car/test/org.hyperledger.chaincode.example02-0.1-SNAPSHOT.car:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/core/chaincode/platforms/car/test/org.hyperledger.chaincode.example02-0.1-SNAPSHOT.car
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/chaincode/platforms/golang/hashtestfiles/a.txt:
--------------------------------------------------------------------------------
1 | a
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/chaincode/platforms/golang/hashtestfiles/a/a1.txt:
--------------------------------------------------------------------------------
1 | a1
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/chaincode/platforms/golang/hashtestfiles/a/a2.txt:
--------------------------------------------------------------------------------
1 | a2
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/chaincode/platforms/golang/hashtestfiles/b.txt:
--------------------------------------------------------------------------------
1 | b
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/chaincode/platforms/golang/hashtestfiles/b/c.txt:
--------------------------------------------------------------------------------
1 | c
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/chaincode/platforms/golang/hashtestfiles/b/c/c1.txt:
--------------------------------------------------------------------------------
1 | c1
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/chaincode/shim/crypto/attr/test_resources/prek0.dump:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/core/chaincode/shim/crypto/attr/test_resources/prek0.dump
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/crypto/attributes/test_resources/prek0.dump:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/core/crypto/attributes/test_resources/prek0.dump
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/crypto/crypto_profile.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | if [ -f "crypto.test" ]
4 | then
5 | echo Removing crypto.test
6 | rm crypto.test
7 | fi
8 |
9 | echo Compile, banchmark, pprof...
10 |
11 | go test -c
12 | #./crypto.test -test.cpuprofile=crypto.prof
13 | #./crypto.test -test.bench BenchmarkConfidentialTCertHExecuteTransaction -test.run XXX -test.cpuprofile=crypto.prof
14 | ./crypto.test -test.bench BenchmarkTransaction -test.run XXX -test.cpuprofile=crypto.prof
15 | #./crypto.test -test.run TestParallelInitClose -test.cpuprofile=crypto.prof
16 | go tool pprof crypto.test crypto.prof
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/ledger/benchmark_scripts/buckettree/plot.pg:
--------------------------------------------------------------------------------
1 | #!/usr/local/bin/gnuplot
2 | reset
3 |
4 | # Chart specific settings
5 | set ylabel "milli second"
6 | set xlabel "Existing Data"
7 | set title "Buckettree performance"
8 |
9 | # General settings
10 | set key reverse Left outside
11 | set grid
12 | set terminal postscript dashed color
13 | set style data linespoints
14 |
15 | # plot command
16 | plot dataFile using 1:($2/1000000) title "time taken"
17 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/ledger/benchmark_scripts/ledger/singleKeyTransaction.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | source ../common.sh
3 |
4 | PKG_PATH="github.com/hyperledger/fabric/core/ledger"
5 | FUNCTION_NAME="BenchmarkLedgerSingleKeyTransaction"
6 | NUM_CPUS=4
7 | CHART_DATA_COLUMN="Number of Bytes"
8 |
9 | setupAndCompileTest
10 |
11 | Key=key
12 | KVSize=100
13 | BatchSize=100
14 | NumBatches=10000
15 | NumWritesToLedger=2
16 |
17 | CHART_COLUMN_VALUE=$KVSize
18 |
19 | TEST_PARAMS="-Key=$Key, -KVSize=$KVSize, -BatchSize=$BatchSize, -NumBatches=$NumBatches, -NumWritesToLedger=$NumWritesToLedger"
20 | executeTest
21 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/ledger/benchmark_scripts/ledger/test.yaml:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | #
3 | # Peer section
4 | #
5 | ###############################################################################
6 | peer:
7 |
8 | ledger:
9 | state:
10 | dataStructure:
11 | configs:
12 | numBuckets: 1000003
13 | maxGroupingAtEachLevel: 5
14 | bucketCacheSize: 100
15 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/ledger/benchmark_scripts/statemgmt/cryptoHash.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | source ../common.sh
3 |
4 | PKG_PATH="github.com/hyperledger/fabric/core/ledger/statemgmt"
5 | FUNCTION_NAME="BenchmarkCryptoHash"
6 | NUM_CPUS=1
7 | CHART_DATA_COLUMN="Number of Bytes"
8 |
9 | setupAndCompileTest
10 |
11 | for i in 1 5 10 20 50 100 200 400 600 800 1000 2000 5000 10000 20000 50000 100000; do
12 | TEST_PARAMS="-NumBytes=$i"
13 | CHART_COLUMN_VALUE=$i
14 | executeTest
15 | done
16 |
17 | constructChart
18 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/ledger/benchmark_scripts/statemgmt/plot.pg:
--------------------------------------------------------------------------------
1 | #!/usr/local/bin/gnuplot
2 | reset
3 |
4 | # Chart specific settings
5 | set ylabel "nano second"
6 | set xlabel "Number of bytes"
7 | set title "CryptoHash performance"
8 | set logscale xy 10
9 |
10 | # General settings
11 | set key reverse Left outside
12 | set grid
13 | set terminal postscript dashed color
14 | set style data linespoints
15 |
16 | # plot command
17 | plot dataFile using 1:2 title "time taken", \
18 | "" using 1:($2/$1) title "time taken per byte"
19 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/ledger/statemgmt/buckettree/test.yaml:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | #
3 | # Peer section
4 | #
5 | ###############################################################################
6 | peer:
7 | # Path on the file system where peer will store data
8 | fileSystemPath: /var/hyperledger/test/ledger/statemgmt/buckettree/testdb
9 | ledger:
10 | state:
11 | dataStructure:
12 | name: buckettree
13 | configs:
14 | numBuckets: 19
15 | maxGroupingAtEachLevel: 3
16 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/ledger/statemgmt/state/test.yaml:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | #
3 | # Peer section
4 | #
5 | ###############################################################################
6 | peer:
7 | # Path on the file system where peer will store data
8 | fileSystemPath: /var/hyperledger/test/ledge/statemgmt/state/testdb
9 |
10 | ledger:
11 |
12 | state:
13 |
14 | # Control the number state deltas that are maintained. This takes additional
15 | # disk space, but allow the state to be rolled backwards and forwards
16 | # without the need to replay transactions.
17 | deltaHistorySize: 500
18 | dataStructure:
19 | name: buckettree
20 | configs:
21 | numBuckets: 10009
22 | maxGroupingAtEachLevel: 10
23 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/ledger/statemgmt/trie/test.yaml:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | #
3 | # Peer section
4 | #
5 | ###############################################################################
6 | peer:
7 | # Path on the file system where peer will store data
8 | fileSystemPath: /var/hyperledger/test/ledger/statemgmt/trie/testdb
9 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/ledger/test.yaml:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | #
3 | # Peer section
4 | #
5 | ###############################################################################
6 | peer:
7 | # Path on the file system where peer will store data
8 | fileSystemPath: /var/hyperledger/test/ledger_test
9 |
10 | ledger:
11 |
12 | state:
13 |
14 | # Control the number state deltas that are maintained. This takes additional
15 | # disk space, but allow the state to be rolled backwards and forwards
16 | # without the need to replay transactions.
17 | deltaHistorySize: 500
18 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/core/ledger/test/test.yaml:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | #
3 | # Peer section
4 | #
5 | ###############################################################################
6 | peer:
7 | # Path on the file system where peer will store data
8 | fileSystemPath: /var/hyperledger/test/ledger_test
9 |
10 | ledger:
11 |
12 | state:
13 |
14 | # Control the number state deltas that are maintained. This takes additional
15 | # disk space, but allow the state to be rolled backwards and forwards
16 | # without the need to replay transactions.
17 | deltaHistorySize: 500
18 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/devenv/compile_protos.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eux
4 |
5 | # Compile protos
6 | ALL_PROTO_FILES="$(find . -name "*.proto" -exec readlink -f {} \;)"
7 | PROTO_DIRS="$(dirname $ALL_PROTO_FILES | sort | uniq)"
8 | PROTO_DIRS_WITHOUT_JAVA_AND_SDK="$(printf '%s\n' $PROTO_DIRS | grep -v "shim/java" | grep -v "/sdk")"
9 | for dir in $PROTO_DIRS_WITHOUT_JAVA_AND_SDK; do
10 | cd "$dir"
11 | protoc --proto_path="$dir" --go_out=plugins=grpc:. "$dir"/*.proto
12 | done
13 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/devenv/golang_buildcmd.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | set -e
3 | for arch in 8 6; do
4 | for cmd in a c g l; do
5 | go tool dist install -v cmd/$arch$cmd
6 | done
7 | done
8 | exit 0
9 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/devenv/golang_buildpkg.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ -z "$1" ]; then
3 | echo 'GOOS is not specified' 1>&2
4 | exit 2
5 | else
6 | export GOOS=$1
7 | if [ "$GOOS" = "windows" ]; then
8 | export CGO_ENABLED=0
9 | fi
10 | fi
11 | shift
12 | if [ -n "$1" ]; then
13 | export GOARCH=$1
14 | fi
15 | cd $GOROOT/src
16 | go tool dist install -v pkg/runtime
17 | go install -v -a std
18 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/devenv/images/openchain-dev-env-deployment-diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/devenv/images/openchain-dev-env-deployment-diagram.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/API/Samples/Sample_1.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/API/Samples/Sample_1.zip
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/FAQ/consensus_FAQ.md:
--------------------------------------------------------------------------------
1 | ## Consensus Algorithm
2 |
3 |
4 | ##### Which Consensus Algorithm is used in the fabric?
5 | The fabric is built on a pluggable architecture such that developers can configure their deployment with the consensus module that best suits their needs. The initial release package will offer three consensus implementations for users to select from: 1) No-op (consensus ignored); and 2) Batch PBFT.
6 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/MAINTAINERS.md:
--------------------------------------------------------------------------------
1 | ## Maintainers
2 |
3 | | Name | GitHub | Gerrit | email |
4 | |---|---|---|---|
5 | | Binh Nguyen | binhn | | binhn@us.ibm.com |
6 | | Sheehan Anderson | srderson | sheehan | sranderson@gmail.com
7 | | Tamas Blummer | tamasblummer || tamas@digitalasset.com
8 | | Robert Fajta | rfajta || robert@digitalasset.com
9 | | Greg Haskins | ghaskins || ghaskins@lseg.com
10 | | Jonathan Levi | JonathanLevi || jonathan@levi.name
11 | | Gabor Hosszu | gabre || gabor@digitalasset.com
12 | | Simon Schubert | corecode || sis@zurich.ibm.com
13 | | Chris Ferris | christo4ferris | ChristopherFerris | chrisfer@us.ibm.com
14 | | Srinivasan Muralidharan | muralisrini | muralisr | muralisr@us.ibm.com
15 | | Gari Singh | mastersingh24 | mastersingh24 | gari.r.singh@gmail.com
16 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_Asset-Depository.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_Asset-Depository.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_B2BContract.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_B2BContract.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_Direct-Communication.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_Direct-Communication.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_Interoperability-of-Assets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_Interoperability-of-Assets.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_Manufacturing-Supply-Chain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_Manufacturing-Supply-Chain.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_One-Trade-One-Contract.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_One-Trade-One-Contract.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_Separation-of-Asset-Ownership-and-Custodians-Duties.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/Canonical-Use-Cases_Separation-of-Asset-Ownership-and-Custodians-Duties.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/assetrepository.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/assetrepository.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/b2bcontract.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/b2bcontract.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/corporate_action.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/corporate_action.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/exchange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/exchange.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/interoperability_of_assets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/interoperability_of_assets.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/one_contract_per_trade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/one_contract_per_trade.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/separation_of_ownship_and_custodyservice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/separation_of_ownship_and_custodyservice.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/supplychain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/biz/images/supplychain.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/custom_theme/searchbox.html:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/dev-setup/headers.txt:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright [COPYRIGHT OWNER] All Rights Reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Architecture_Step-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Architecture_Step-1.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Architecture_Step-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Architecture_Step-2.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Architecture_Step-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Architecture_Step-3.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Architecture_Step-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Architecture_Step-4.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/BuildStatus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/BuildStatus.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_Asset-Depository.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_Asset-Depository.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_B2BContract.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_B2BContract.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_Direct-Communication.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_Direct-Communication.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_Interoperability-of-Assets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_Interoperability-of-Assets.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_Manufacturing-Supply-Chain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_Manufacturing-Supply-Chain.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_One-Trade-One-Contract.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_One-Trade-One-Contract.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_Separation-of-Asset-Ownership-and-Custodians-Duties.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Canonical-Use-Cases_Separation-of-Asset-Ownership-and-Custodians-Duties.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Travis_Settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Travis_Settings.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Travis_service.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/Travis_service.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/attributes_flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/attributes_flow.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/refarch-api.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/refarch-api.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/refarch-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/refarch-app.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/refarch-block.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/refarch-block.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/refarch-chain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/refarch-chain.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/refarch-memb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/refarch-memb.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/refarch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/refarch.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-RACapp-depl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-RACapp-depl.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-RACapp-inv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-RACapp-inv.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-entities.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-entities.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-example-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-example-1.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-example-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-example-2.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-firstrel-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-firstrel-1.jpg
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-firstrel-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-firstrel-1.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-firstrel-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-firstrel-2.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-firstrel-depl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-firstrel-depl.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-firstrel-inv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-firstrel-inv.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-futrel-depl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-futrel-depl.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-futrel-inv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-futrel-inv.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-memserv-components.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-memserv-components.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-registration-detailed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-registration-detailed.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-registration-high-level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-registration-high-level.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-request-tcerts-deployment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-request-tcerts-deployment.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-request-tcerts-invocation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-request-tcerts-invocation.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-sec-arch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-sec-arch.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-sources-1.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-sources-1.pptx
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-sources-2.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-sources-2.pptx
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-txconf-v1.2.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-txconf-v1.2.pptx
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-usrconf-deploy-interm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-usrconf-deploy-interm.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-usrconf-deploy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-usrconf-deploy.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-usrconf-invoke-interm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-usrconf-invoke-interm.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-usrconf-invoke.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/sec-usrconf-invoke.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/top-multi-peer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/top-multi-peer.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/top-single-peer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/top-single-peer.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/world_view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/images/world_view.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/nodeSDK/sample-web-app.md:
--------------------------------------------------------------------------------
1 | # Node.js Web Application
2 |
3 | The following is a web application template. It is NOT a complete program.
4 |
5 | This template code demonstrates how to communicate with a blockchain from a Node.js web application. It does not show how to listen for incoming requests nor how to authenticate your web users as this is application specific. The code below is intended to demonstrate how to interact with a Hyperledger fabric blockchain from an existing web application.
6 |
7 | You may retrieve the [sample application]( https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/web-app.js) file:
8 |
9 | ```
10 | curl -o app.js https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/web-app.js
11 | ```
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/requirements.txt:
--------------------------------------------------------------------------------
1 | python-markdown-math==0.2
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/tech/best-practices.md:
--------------------------------------------------------------------------------
1 | ## Hyperledger Fabric Development Best Practices
2 |
3 | (This page is under construction.)
4 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/wiki-images/sdk-current.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/wiki-images/sdk-current.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/docs/wiki-images/sdk-future.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/docs/wiki-images/sdk-future.png
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/membersrvc/Dockerfile:
--------------------------------------------------------------------------------
1 | from hyperledger/fabric-baseimage:latest
2 | # Copy GOPATH src and install Peer
3 | RUN mkdir -p /var/hyperledger/db
4 | WORKDIR $GOPATH/src/github.com/hyperledger/fabric/
5 | COPY . .
6 | WORKDIR membersrvc
7 | RUN pwd
8 | RUN CGO_CFLAGS=" " CGO_LDFLAGS="-lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy" go install && cp $GOPATH/src/github.com/hyperledger/fabric/membersrvc/membersrvc.yaml $GOPATH/bin
9 | # RUN CGO_CFLAGS=" " CGO_LDFLAGS="-lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy" go install
10 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/membersrvc/ca/test_resources/ecert_test_user0.dump:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/membersrvc/ca/test_resources/ecert_test_user0.dump
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/membersrvc/ca/test_resources/ecert_test_user1.dump:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/membersrvc/ca/test_resources/ecert_test_user1.dump
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/membersrvc/ca/test_resources/ecert_test_user2.dump:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/membersrvc/ca/test_resources/ecert_test_user2.dump
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/membersrvc/ca/test_resources/key_test_user0.dump:
--------------------------------------------------------------------------------
1 | -----BEGIN ECDSA PRIVATE KEY-----
2 | Proc-Type: 4,ENCRYPTED
3 | DEK-Info: AES-256-CBC,7af376757b4a587ac1d7a187192eb5e9
4 |
5 | zZCWUTmd7IVh+3Vp0XlRTh1rOGWjVkMb2HG4JIY1IUue4vbZP+HyxQZ424WsOP3w
6 | lBqdksRY1oHN+KFU6RRvGH54qOuI2MULGRMK80d5Q0eqGX09FaO1pBPbQiNud0n5
7 | uk4jlt6b+4RLKfBghbqk0UqBMeg9gECU5zF5MH3/+H8=
8 | -----END ECDSA PRIVATE KEY-----
9 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/membersrvc/ca/test_resources/key_test_user1.dump:
--------------------------------------------------------------------------------
1 | -----BEGIN ECDSA PRIVATE KEY-----
2 | Proc-Type: 4,ENCRYPTED
3 | DEK-Info: AES-256-CBC,54fe446e7249adc2b762039808a5a434
4 |
5 | OM4MzGtsERUCRN6P4c0uKOcNFvkcm6Z3rjpa4b37k3FB5tB2r699I2XghEnr2ifq
6 | 1L1LDuRHS2SqayTjeAHCty86mw9aBjKeCBqyZPPUGw0s8AvxUw1cr0YXiqIbveXt
7 | 5pDRPd39T1baJWGGLtNyTlnsyCTaBs8SPYi7wjyvXpo=
8 | -----END ECDSA PRIVATE KEY-----
9 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/membersrvc/ca/test_resources/key_test_user2.dump:
--------------------------------------------------------------------------------
1 | -----BEGIN ECDSA PRIVATE KEY-----
2 | Proc-Type: 4,ENCRYPTED
3 | DEK-Info: AES-256-CBC,97b5487e373a4728f206bb4fb81ba331
4 |
5 | nhNzsdwpN8HHclaYvEHL8sjesdTnEavIzX5H/X2HSqigKEyNJFV56fzHrkGIrd5r
6 | dKAn/966dPD+PIaJTkVY1hXUpaXeJf58v/ZefW8soZxJAw1scOsTDWRuzobIuC60
7 | pr6mIeFHRSdb/39gLBznjpI6FVJApQQTJJt9ODpbaUE=
8 | -----END ECDSA PRIVATE KEY-----
9 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/metadata/metadata.go:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright London Stock Exchange 2016 All Rights Reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | package metadata
18 |
19 | var Version string // defined by the Makefile and passed in with ldflags
20 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/pub/fabric-baseimage.md:
--------------------------------------------------------------------------------
1 | ## Hyperledger Fabric Base image
2 |
3 | The base image used in the creation of the hyperledger/fabric-peer and hyperledger/fabric-membersrvc images for the [Hyperledger Fabric project](https://github.com/hyperledger/fabric).
4 |
5 | ## Usage
6 |
7 | This image is used in the Hyperledger Fabric [build process](http://hyperledger-fabric.readthedocs.io/en/latest/dev-setup/build/).
8 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/BurntSushi/toml/COMPATIBLE:
--------------------------------------------------------------------------------
1 | Compatible with TOML version
2 | [v0.2.0](https://github.com/mojombo/toml/blob/master/versions/toml-v0.2.0.md)
3 |
4 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/BurntSushi/toml/COPYING:
--------------------------------------------------------------------------------
1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
2 | Version 2, December 2004
3 |
4 | Copyright (C) 2004 Sam Hocevar
5 |
6 | Everyone is permitted to copy and distribute verbatim or modified
7 | copies of this license document, and changing it is allowed as long
8 | as the name is changed.
9 |
10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
12 |
13 | 0. You just DO WHAT THE FUCK YOU WANT TO.
14 |
15 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/BurntSushi/toml/Makefile:
--------------------------------------------------------------------------------
1 | install:
2 | go install ./...
3 |
4 | test: install
5 | go test -v
6 | toml-test toml-test-decoder
7 | toml-test -encoder toml-test-encoder
8 |
9 | fmt:
10 | gofmt -w *.go */*.go
11 | colcheck *.go */*.go
12 |
13 | tags:
14 | find ./ -name '*.go' -print0 | xargs -0 gotags > TAGS
15 |
16 | push:
17 | git push origin master
18 | git push github master
19 |
20 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/BurntSushi/toml/encoding_types.go:
--------------------------------------------------------------------------------
1 | // +build go1.2
2 |
3 | package toml
4 |
5 | // In order to support Go 1.1, we define our own TextMarshaler and
6 | // TextUnmarshaler types. For Go 1.2+, we just alias them with the
7 | // standard library interfaces.
8 |
9 | import (
10 | "encoding"
11 | )
12 |
13 | // TextMarshaler is a synonym for encoding.TextMarshaler. It is defined here
14 | // so that Go 1.1 can be supported.
15 | type TextMarshaler encoding.TextMarshaler
16 |
17 | // TextUnmarshaler is a synonym for encoding.TextUnmarshaler. It is defined
18 | // here so that Go 1.1 can be supported.
19 | type TextUnmarshaler encoding.TextUnmarshaler
20 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/BurntSushi/toml/encoding_types_1.1.go:
--------------------------------------------------------------------------------
1 | // +build !go1.2
2 |
3 | package toml
4 |
5 | // These interfaces were introduced in Go 1.2, so we add them manually when
6 | // compiling for Go 1.1.
7 |
8 | // TextMarshaler is a synonym for encoding.TextMarshaler. It is defined here
9 | // so that Go 1.1 can be supported.
10 | type TextMarshaler interface {
11 | MarshalText() (text []byte, err error)
12 | }
13 |
14 | // TextUnmarshaler is a synonym for encoding.TextUnmarshaler. It is defined
15 | // here so that Go 1.1 can be supported.
16 | type TextUnmarshaler interface {
17 | UnmarshalText(text []byte) error
18 | }
19 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/BurntSushi/toml/session.vim:
--------------------------------------------------------------------------------
1 | au BufWritePost *.go silent!make tags > /dev/null 2>&1
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/Sirupsen/logrus/doc.go:
--------------------------------------------------------------------------------
1 | /*
2 | Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
3 |
4 |
5 | The simplest way to use Logrus is simply the package-level exported logger:
6 |
7 | package main
8 |
9 | import (
10 | log "github.com/Sirupsen/logrus"
11 | )
12 |
13 | func main() {
14 | log.WithFields(log.Fields{
15 | "animal": "walrus",
16 | "number": 1,
17 | "size": 10,
18 | }).Info("A walrus appears")
19 | }
20 |
21 | Output:
22 | time="2015-09-07T08:48:33Z" level=info msg="A walrus appears" animal=walrus number=1 size=10
23 |
24 | For a full guide visit https://github.com/Sirupsen/logrus
25 | */
26 | package logrus
27 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/Sirupsen/logrus/json_formatter.go~a6943e7452c65be4e907893e3eefdaa186cee610:
--------------------------------------------------------------------------------
1 | package logrus
2 |
3 | import (
4 | "encoding/json"
5 | "fmt"
6 | "time"
7 | )
8 |
9 | type JSONFormatter struct{}
10 |
11 | func (f *JSONFormatter) Format(entry *Entry) ([]byte, error) {
12 | data := make(Fields, len(entry.Data)+3)
13 | for k, v := range entry.Data {
14 | data[k] = v
15 | }
16 | prefixFieldClashes(data)
17 | data["time"] = entry.Time.Format(time.RFC3339)
18 | data["msg"] = entry.Message
19 | data["level"] = entry.Level.String()
20 |
21 | serialized, err := json.Marshal(data)
22 | if err != nil {
23 | return nil, fmt.Errorf("Failed to marshal fields to JSON, %v", err)
24 | }
25 | return append(serialized, '\n'), nil
26 | }
27 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/Sirupsen/logrus/terminal_bsd.go:
--------------------------------------------------------------------------------
1 | // +build darwin freebsd openbsd netbsd dragonfly
2 |
3 | package logrus
4 |
5 | import "syscall"
6 |
7 | const ioctlReadTermios = syscall.TIOCGETA
8 |
9 | type Termios syscall.Termios
10 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/Sirupsen/logrus/terminal_darwin.go:
--------------------------------------------------------------------------------
1 | // Based on ssh/terminal:
2 | // Copyright 2013 The Go Authors. All rights reserved.
3 | // Use of this source code is governed by a BSD-style
4 | // license that can be found in the LICENSE file.
5 |
6 | package logrus
7 |
8 | import "syscall"
9 |
10 | const ioctlReadTermios = syscall.TIOCGETA
11 |
12 | type Termios syscall.Termios
13 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/Sirupsen/logrus/terminal_freebsd.go:
--------------------------------------------------------------------------------
1 | /*
2 | Go 1.2 doesn't include Termios for FreeBSD. This should be added in 1.3 and this could be merged with terminal_darwin.
3 | */
4 | package logrus
5 |
6 | import (
7 | "syscall"
8 | )
9 |
10 | const ioctlReadTermios = syscall.TIOCGETA
11 |
12 | type Termios struct {
13 | Iflag uint32
14 | Oflag uint32
15 | Cflag uint32
16 | Lflag uint32
17 | Cc [20]uint8
18 | Ispeed uint32
19 | Ospeed uint32
20 | }
21 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/Sirupsen/logrus/terminal_linux.go:
--------------------------------------------------------------------------------
1 | // Based on ssh/terminal:
2 | // Copyright 2013 The Go Authors. All rights reserved.
3 | // Use of this source code is governed by a BSD-style
4 | // license that can be found in the LICENSE file.
5 |
6 | package logrus
7 |
8 | import "syscall"
9 |
10 | const ioctlReadTermios = syscall.TCGETS
11 |
12 | type Termios syscall.Termios
13 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/Sirupsen/logrus/terminal_linux.go~a6943e7452c65be4e907893e3eefdaa186cee610:
--------------------------------------------------------------------------------
1 | // Based on ssh/terminal:
2 | // Copyright 2013 The Go Authors. All rights reserved.
3 | // Use of this source code is governed by a BSD-style
4 | // license that can be found in the LICENSE file.
5 |
6 | package logrus
7 |
8 | import "syscall"
9 |
10 | const ioctlReadTermios = syscall.TCGETS
11 |
12 | type Termios syscall.Termios
13 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/Sirupsen/logrus/terminal_notwindows.go:
--------------------------------------------------------------------------------
1 | // Based on ssh/terminal:
2 | // Copyright 2011 The Go Authors. All rights reserved.
3 | // Use of this source code is governed by a BSD-style
4 | // license that can be found in the LICENSE file.
5 |
6 | // +build linux darwin freebsd openbsd netbsd dragonfly
7 |
8 | package logrus
9 |
10 | import (
11 | "syscall"
12 | "unsafe"
13 | )
14 |
15 | // IsTerminal returns true if stderr's file descriptor is a terminal.
16 | func IsTerminal() bool {
17 | fd := syscall.Stderr
18 | var termios Termios
19 | _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)
20 | return err == 0
21 | }
22 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/Sirupsen/logrus/terminal_notwindows.go~a6943e7452c65be4e907893e3eefdaa186cee610:
--------------------------------------------------------------------------------
1 | // Based on ssh/terminal:
2 | // Copyright 2011 The Go Authors. All rights reserved.
3 | // Use of this source code is governed by a BSD-style
4 | // license that can be found in the LICENSE file.
5 |
6 | // +build linux,!appengine darwin freebsd openbsd
7 |
8 | package logrus
9 |
10 | import (
11 | "syscall"
12 | "unsafe"
13 | )
14 |
15 | // IsTerminal returns true if the given file descriptor is a terminal.
16 | func IsTerminal() bool {
17 | fd := syscall.Stdout
18 | var termios Termios
19 | _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)
20 | return err == 0
21 | }
22 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/Sirupsen/logrus/terminal_openbsd.go:
--------------------------------------------------------------------------------
1 |
2 | package logrus
3 |
4 | import "syscall"
5 |
6 | const ioctlReadTermios = syscall.TIOCGETA
7 |
8 | type Termios syscall.Termios
9 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/Sirupsen/logrus/terminal_solaris.go:
--------------------------------------------------------------------------------
1 | // +build solaris
2 |
3 | package logrus
4 |
5 | import (
6 | "os"
7 |
8 | "golang.org/x/sys/unix"
9 | )
10 |
11 | // IsTerminal returns true if the given file descriptor is a terminal.
12 | func IsTerminal() bool {
13 | _, err := unix.IoctlGetTermios(int(os.Stdout.Fd()), unix.TCGETA)
14 | return err == nil
15 | }
16 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/Sirupsen/logrus/terminal_windows.go:
--------------------------------------------------------------------------------
1 | // Based on ssh/terminal:
2 | // Copyright 2011 The Go Authors. All rights reserved.
3 | // Use of this source code is governed by a BSD-style
4 | // license that can be found in the LICENSE file.
5 |
6 | // +build windows
7 |
8 | package logrus
9 |
10 | import (
11 | "syscall"
12 | "unsafe"
13 | )
14 |
15 | var kernel32 = syscall.NewLazyDLL("kernel32.dll")
16 |
17 | var (
18 | procGetConsoleMode = kernel32.NewProc("GetConsoleMode")
19 | )
20 |
21 | // IsTerminal returns true if stderr's file descriptor is a terminal.
22 | func IsTerminal() bool {
23 | fd := syscall.Stderr
24 | var st uint32
25 | r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0)
26 | return r != 0 && e == 0
27 | }
28 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/cpuguy83/go-md2man/md2man/md2man.go:
--------------------------------------------------------------------------------
1 | package md2man
2 |
3 | import (
4 | "github.com/russross/blackfriday"
5 | )
6 |
7 | func Render(doc []byte) []byte {
8 | renderer := RoffRenderer(0)
9 | extensions := 0
10 | extensions |= blackfriday.EXTENSION_NO_INTRA_EMPHASIS
11 | extensions |= blackfriday.EXTENSION_TABLES
12 | extensions |= blackfriday.EXTENSION_FENCED_CODE
13 | extensions |= blackfriday.EXTENSION_AUTOLINK
14 | extensions |= blackfriday.EXTENSION_SPACE_HEADERS
15 | extensions |= blackfriday.EXTENSION_FOOTNOTES
16 | extensions |= blackfriday.EXTENSION_TITLEBLOCK
17 |
18 | return blackfriday.Markdown(doc, renderer, extensions)
19 | }
20 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/davecgh/go-spew/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2012-2013 Dave Collins
2 |
3 | Permission to use, copy, modify, and distribute this software for any
4 | purpose with or without fee is hereby granted, provided that the above
5 | copyright notice and this permission notice appear in all copies.
6 |
7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/NOTICE:
--------------------------------------------------------------------------------
1 | Docker
2 | Copyright 2012-2016 Docker, Inc.
3 |
4 | This product includes software developed at Docker, Inc. (https://www.docker.com).
5 |
6 | This product contains software (https://github.com/kr/pty) developed
7 | by Keith Rarick, licensed under the MIT License.
8 |
9 | The following is courtesy of our legal counsel:
10 |
11 |
12 | Use and transfer of Docker may be subject to certain restrictions by the
13 | United States and other governments.
14 | It is your responsibility to ensure that your use and/or transfer does not
15 | violate applicable laws.
16 |
17 | For more information, please see https://www.bis.doc.gov
18 |
19 | See also https://www.apache.org/dev/crypto.html and/or seek legal counsel.
20 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/opts/hosts_unix.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package opts
4 |
5 | import "fmt"
6 |
7 | // DefaultHost constant defines the default host string used by docker on other hosts than Windows
8 | var DefaultHost = fmt.Sprintf("unix://%s", DefaultUnixSocket)
9 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/opts/hosts_windows.go:
--------------------------------------------------------------------------------
1 | // +build windows
2 |
3 | package opts
4 |
5 | // DefaultHost constant defines the default host string used by docker on Windows
6 | var DefaultHost = "npipe://" + DefaultNamedPipe
7 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/opts/opts_unix.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package opts
4 |
5 | // DefaultHTTPHost Default HTTP Host used if only port is provided to -H flag e.g. docker daemon -H tcp://:8080
6 | const DefaultHTTPHost = "localhost"
7 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/README.md:
--------------------------------------------------------------------------------
1 | This code provides helper functions for dealing with archive files.
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/archive_other.go:
--------------------------------------------------------------------------------
1 | // +build !linux
2 |
3 | package archive
4 |
5 | func getWhiteoutConverter(format WhiteoutFormat) tarWhiteoutConverter {
6 | return nil
7 | }
8 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/changes_windows.go:
--------------------------------------------------------------------------------
1 | package archive
2 |
3 | import (
4 | "os"
5 |
6 | "github.com/docker/docker/pkg/system"
7 | )
8 |
9 | func statDifferent(oldStat *system.StatT, newStat *system.StatT) bool {
10 |
11 | // Don't look at size for dirs, its not a good measure of change
12 | if oldStat.ModTime() != newStat.ModTime() ||
13 | oldStat.Mode() != newStat.Mode() ||
14 | oldStat.Size() != newStat.Size() && !oldStat.IsDir() {
15 | return true
16 | }
17 | return false
18 | }
19 |
20 | func (info *FileInfo) isDir() bool {
21 | return info.parent == nil || info.stat.IsDir()
22 | }
23 |
24 | func getIno(fi os.FileInfo) (inode uint64) {
25 | return
26 | }
27 |
28 | func hasHardlinks(fi os.FileInfo) bool {
29 | return false
30 | }
31 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/copy_unix.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package archive
4 |
5 | import (
6 | "path/filepath"
7 | )
8 |
9 | func normalizePath(path string) string {
10 | return filepath.ToSlash(path)
11 | }
12 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/copy_windows.go:
--------------------------------------------------------------------------------
1 | package archive
2 |
3 | import (
4 | "path/filepath"
5 | )
6 |
7 | func normalizePath(path string) string {
8 | return filepath.FromSlash(path)
9 | }
10 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/testdata/broken.tar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/testdata/broken.tar
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/time_linux.go:
--------------------------------------------------------------------------------
1 | package archive
2 |
3 | import (
4 | "syscall"
5 | "time"
6 | )
7 |
8 | func timeToTimespec(time time.Time) (ts syscall.Timespec) {
9 | if time.IsZero() {
10 | // Return UTIME_OMIT special value
11 | ts.Sec = 0
12 | ts.Nsec = ((1 << 30) - 2)
13 | return
14 | }
15 | return syscall.NsecToTimespec(time.UnixNano())
16 | }
17 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/time_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !linux
2 |
3 | package archive
4 |
5 | import (
6 | "syscall"
7 | "time"
8 | )
9 |
10 | func timeToTimespec(time time.Time) (ts syscall.Timespec) {
11 | nsec := int64(0)
12 | if !time.IsZero() {
13 | nsec = time.UnixNano()
14 | }
15 | return syscall.NsecToTimespec(nsec)
16 | }
17 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/chrootarchive/archive_windows.go:
--------------------------------------------------------------------------------
1 | package chrootarchive
2 |
3 | import (
4 | "io"
5 |
6 | "github.com/docker/docker/pkg/archive"
7 | "github.com/docker/docker/pkg/longpath"
8 | )
9 |
10 | // chroot is not supported by Windows
11 | func chroot(path string) error {
12 | return nil
13 | }
14 |
15 | func invokeUnpack(decompressedArchive io.ReadCloser,
16 | dest string,
17 | options *archive.TarOptions) error {
18 | // Windows is different to Linux here because Windows does not support
19 | // chroot. Hence there is no point sandboxing a chrooted process to
20 | // do the unpack. We call inline instead within the daemon process.
21 | return archive.Unpack(decompressedArchive, longpath.AddPrefix(dest), options)
22 | }
23 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/chrootarchive/chroot_unix.go:
--------------------------------------------------------------------------------
1 | // +build !windows,!linux
2 |
3 | package chrootarchive
4 |
5 | import "syscall"
6 |
7 | func chroot(path string) error {
8 | if err := syscall.Chroot(path); err != nil {
9 | return err
10 | }
11 | return syscall.Chdir("/")
12 | }
13 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/chrootarchive/init_unix.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package chrootarchive
4 |
5 | import (
6 | "fmt"
7 | "io"
8 | "io/ioutil"
9 | "os"
10 |
11 | "github.com/docker/docker/pkg/reexec"
12 | )
13 |
14 | func init() {
15 | reexec.Register("docker-applyLayer", applyLayer)
16 | reexec.Register("docker-untar", untar)
17 | }
18 |
19 | func fatal(err error) {
20 | fmt.Fprint(os.Stderr, err)
21 | os.Exit(1)
22 | }
23 |
24 | // flush consumes all the bytes from the reader discarding
25 | // any errors
26 | func flush(r io.Reader) (bytes int64, err error) {
27 | return io.Copy(ioutil.Discard, r)
28 | }
29 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/chrootarchive/init_windows.go:
--------------------------------------------------------------------------------
1 | package chrootarchive
2 |
3 | func init() {
4 | }
5 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/devicemapper/devmapper_wrapper_no_deferred_remove.go:
--------------------------------------------------------------------------------
1 | // +build linux,libdm_no_deferred_remove
2 |
3 | package devicemapper
4 |
5 | // LibraryDeferredRemovalsupport is not supported when statically linked.
6 | const LibraryDeferredRemovalSupport = false
7 |
8 | func dmTaskDeferredRemoveFct(task *cdmTask) int {
9 | // Error. Nobody should be calling it.
10 | return -1
11 | }
12 |
13 | func dmTaskGetInfoWithDeferredFct(task *cdmTask, info *Info) int {
14 | return -1
15 | }
16 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/devicemapper/ioctl.go:
--------------------------------------------------------------------------------
1 | // +build linux
2 |
3 | package devicemapper
4 |
5 | import (
6 | "syscall"
7 | "unsafe"
8 | )
9 |
10 | func ioctlBlkGetSize64(fd uintptr) (int64, error) {
11 | var size int64
12 | if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, BlkGetSize64, uintptr(unsafe.Pointer(&size))); err != 0 {
13 | return 0, err
14 | }
15 | return size, nil
16 | }
17 |
18 | func ioctlBlkDiscard(fd uintptr, offset, length uint64) error {
19 | var r [2]uint64
20 | r[0] = offset
21 | r[1] = length
22 |
23 | if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, BlkDiscard, uintptr(unsafe.Pointer(&r[0]))); err != 0 {
24 | return err
25 | }
26 | return nil
27 | }
28 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/devicemapper/log.go:
--------------------------------------------------------------------------------
1 | package devicemapper
2 |
3 | // definitions from lvm2 lib/log/log.h
4 | const (
5 | LogLevelFatal = 2 + iota // _LOG_FATAL
6 | LogLevelErr // _LOG_ERR
7 | LogLevelWarn // _LOG_WARN
8 | LogLevelNotice // _LOG_NOTICE
9 | LogLevelInfo // _LOG_INFO
10 | LogLevelDebug // _LOG_DEBUG
11 | )
12 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/directory/directory.go:
--------------------------------------------------------------------------------
1 | package directory
2 |
3 | import (
4 | "io/ioutil"
5 | "os"
6 | "path/filepath"
7 | )
8 |
9 | // MoveToSubdir moves all contents of a directory to a subdirectory underneath the original path
10 | func MoveToSubdir(oldpath, subdir string) error {
11 |
12 | infos, err := ioutil.ReadDir(oldpath)
13 | if err != nil {
14 | return err
15 | }
16 | for _, info := range infos {
17 | if info.Name() != subdir {
18 | oldName := filepath.Join(oldpath, info.Name())
19 | newName := filepath.Join(oldpath, subdir, info.Name())
20 | if err := os.Rename(oldName, newName); err != nil {
21 | return err
22 | }
23 | }
24 | }
25 | return nil
26 | }
27 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/filenotify/fsnotify.go:
--------------------------------------------------------------------------------
1 | package filenotify
2 |
3 | import "gopkg.in/fsnotify.v1"
4 |
5 | // fsNotifyWatcher wraps the fsnotify package to satisfy the FileNotifer interface
6 | type fsNotifyWatcher struct {
7 | *fsnotify.Watcher
8 | }
9 |
10 | // Events returns the fsnotify event channel receiver
11 | func (w *fsNotifyWatcher) Events() <-chan fsnotify.Event {
12 | return w.Watcher.Events
13 | }
14 |
15 | // Errors returns the fsnotify error channel receiver
16 | func (w *fsNotifyWatcher) Errors() <-chan error {
17 | return w.Watcher.Errors
18 | }
19 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/fileutils/fileutils_darwin.go:
--------------------------------------------------------------------------------
1 | package fileutils
2 |
3 | import (
4 | "os"
5 | "os/exec"
6 | "strconv"
7 | "strings"
8 | )
9 |
10 | // GetTotalUsedFds returns the number of used File Descriptors by
11 | // executing `lsof -p PID`
12 | func GetTotalUsedFds() int {
13 | pid := os.Getpid()
14 |
15 | cmd := exec.Command("lsof", "-p", strconv.Itoa(pid))
16 |
17 | output, err := cmd.CombinedOutput()
18 | if err != nil {
19 | return -1
20 | }
21 |
22 | outputStr := strings.TrimSpace(string(output))
23 |
24 | fds := strings.Split(outputStr, "\n")
25 |
26 | return len(fds) - 1
27 | }
28 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/fileutils/fileutils_solaris.go:
--------------------------------------------------------------------------------
1 | package fileutils
2 |
3 | // GetTotalUsedFds Returns the number of used File Descriptors.
4 | // On Solaris these limits are per process and not systemwide
5 | func GetTotalUsedFds() int {
6 | return -1
7 | }
8 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/fileutils/fileutils_unix.go:
--------------------------------------------------------------------------------
1 | // +build linux freebsd
2 |
3 | package fileutils
4 |
5 | import (
6 | "fmt"
7 | "io/ioutil"
8 | "os"
9 |
10 | "github.com/Sirupsen/logrus"
11 | )
12 |
13 | // GetTotalUsedFds Returns the number of used File Descriptors by
14 | // reading it via /proc filesystem.
15 | func GetTotalUsedFds() int {
16 | if fds, err := ioutil.ReadDir(fmt.Sprintf("/proc/%d/fd", os.Getpid())); err != nil {
17 | logrus.Errorf("Error opening /proc/%d/fd: %s", os.Getpid(), err)
18 | } else {
19 | return len(fds)
20 | }
21 | return -1
22 | }
23 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/fileutils/fileutils_windows.go:
--------------------------------------------------------------------------------
1 | package fileutils
2 |
3 | // GetTotalUsedFds Returns the number of used File Descriptors. Not supported
4 | // on Windows.
5 | func GetTotalUsedFds() int {
6 | return -1
7 | }
8 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/graphdb/conn_sqlite3.go:
--------------------------------------------------------------------------------
1 | // +build cgo
2 |
3 | package graphdb
4 |
5 | import "database/sql"
6 |
7 | // NewSqliteConn opens a connection to a sqlite
8 | // database.
9 | func NewSqliteConn(root string) (*Database, error) {
10 | conn, err := sql.Open("sqlite3", root)
11 | if err != nil {
12 | return nil, err
13 | }
14 | return NewDatabase(conn)
15 | }
16 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/graphdb/conn_sqlite3_unix.go:
--------------------------------------------------------------------------------
1 | // +build cgo,!windows
2 |
3 | package graphdb
4 |
5 | import (
6 | _ "github.com/mattn/go-sqlite3" // registers sqlite
7 | )
8 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/graphdb/conn_sqlite3_windows.go:
--------------------------------------------------------------------------------
1 | // +build cgo,windows
2 |
3 | package graphdb
4 |
5 | import (
6 | _ "github.com/mattn/go-sqlite3" // registers sqlite
7 | )
8 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/graphdb/conn_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !cgo
2 |
3 | package graphdb
4 |
5 | // NewSqliteConn return a new sqlite connection.
6 | func NewSqliteConn(root string) (*Database, error) {
7 | panic("Not implemented")
8 | }
9 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/graphdb/sort.go:
--------------------------------------------------------------------------------
1 | package graphdb
2 |
3 | import "sort"
4 |
5 | type pathSorter struct {
6 | paths []string
7 | by func(i, j string) bool
8 | }
9 |
10 | func sortByDepth(paths []string) {
11 | s := &pathSorter{paths, func(i, j string) bool {
12 | return PathDepth(i) > PathDepth(j)
13 | }}
14 | sort.Sort(s)
15 | }
16 |
17 | func (s *pathSorter) Len() int {
18 | return len(s.paths)
19 | }
20 |
21 | func (s *pathSorter) Swap(i, j int) {
22 | s.paths[i], s.paths[j] = s.paths[j], s.paths[i]
23 | }
24 |
25 | func (s *pathSorter) Less(i, j int) bool {
26 | return s.by(s.paths[i], s.paths[j])
27 | }
28 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/graphdb/sort_test.go:
--------------------------------------------------------------------------------
1 | package graphdb
2 |
3 | import (
4 | "testing"
5 | )
6 |
7 | func TestSort(t *testing.T) {
8 | paths := []string{
9 | "/",
10 | "/myreallylongname",
11 | "/app/db",
12 | }
13 |
14 | sortByDepth(paths)
15 |
16 | if len(paths) != 3 {
17 | t.Fatalf("Expected 3 parts got %d", len(paths))
18 | }
19 |
20 | if paths[0] != "/app/db" {
21 | t.Fatalf("Expected /app/db got %s", paths[0])
22 | }
23 | if paths[1] != "/myreallylongname" {
24 | t.Fatalf("Expected /myreallylongname got %s", paths[1])
25 | }
26 | if paths[2] != "/" {
27 | t.Fatalf("Expected / got %s", paths[2])
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/graphdb/utils.go:
--------------------------------------------------------------------------------
1 | package graphdb
2 |
3 | import (
4 | "path"
5 | "strings"
6 | )
7 |
8 | // Split p on /
9 | func split(p string) []string {
10 | return strings.Split(p, "/")
11 | }
12 |
13 | // PathDepth returns the depth or number of / in a given path
14 | func PathDepth(p string) int {
15 | parts := split(p)
16 | if len(parts) == 2 && parts[1] == "" {
17 | return 1
18 | }
19 | return len(parts)
20 | }
21 |
22 | func splitPath(p string) (parent, name string) {
23 | if p[0] != '/' {
24 | p = "/" + p
25 | }
26 | parent, name = path.Split(p)
27 | l := len(parent)
28 | if parent[l-1] == '/' {
29 | parent = parent[:l-1]
30 | }
31 | return
32 | }
33 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/homedir/homedir_test.go:
--------------------------------------------------------------------------------
1 | package homedir
2 |
3 | import (
4 | "path/filepath"
5 | "testing"
6 | )
7 |
8 | func TestGet(t *testing.T) {
9 | home := Get()
10 | if home == "" {
11 | t.Fatal("returned home directory is empty")
12 | }
13 |
14 | if !filepath.IsAbs(home) {
15 | t.Fatalf("returned path is not absolute: %s", home)
16 | }
17 | }
18 |
19 | func TestGetShortcutString(t *testing.T) {
20 | shortcut := GetShortcutString()
21 | if shortcut == "" {
22 | t.Fatal("returned shortcut string is empty")
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/httputils/mimetype_test.go:
--------------------------------------------------------------------------------
1 | package httputils
2 |
3 | import (
4 | "testing"
5 | )
6 |
7 | func TestDetectContentType(t *testing.T) {
8 | input := []byte("That is just a plain text")
9 |
10 | if contentType, _, err := DetectContentType(input); err != nil || contentType != "text/plain" {
11 | t.Errorf("TestDetectContentType failed")
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/idtools/idtools_windows.go:
--------------------------------------------------------------------------------
1 | // +build windows
2 |
3 | package idtools
4 |
5 | import (
6 | "os"
7 |
8 | "github.com/docker/docker/pkg/system"
9 | )
10 |
11 | // Platforms such as Windows do not support the UID/GID concept. So make this
12 | // just a wrapper around system.MkdirAll.
13 | func mkdirAs(path string, mode os.FileMode, ownerUID, ownerGID int, mkAll, chownExisting bool) error {
14 | if err := system.MkdirAll(path, mode); err != nil && !os.IsExist(err) {
15 | return err
16 | }
17 | return nil
18 | }
19 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !linux
2 |
3 | package idtools
4 |
5 | import "fmt"
6 |
7 | // AddNamespaceRangesUser takes a name and finds an unused uid, gid pair
8 | // and calls the appropriate helper function to add the group and then
9 | // the user to the group in /etc/group and /etc/passwd respectively.
10 | func AddNamespaceRangesUser(name string) (int, int, error) {
11 | return -1, -1, fmt.Errorf("No support for adding users or groups on this OS")
12 | }
13 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/ioutils/fmt.go:
--------------------------------------------------------------------------------
1 | package ioutils
2 |
3 | import (
4 | "fmt"
5 | "io"
6 | )
7 |
8 | // FprintfIfNotEmpty prints the string value if it's not empty
9 | func FprintfIfNotEmpty(w io.Writer, format, value string) (int, error) {
10 | if value != "" {
11 | return fmt.Fprintf(w, format, value)
12 | }
13 | return 0, nil
14 | }
15 |
16 | // FprintfIfTrue prints the boolean value if it's true
17 | func FprintfIfTrue(w io.Writer, format string, ok bool) (int, error) {
18 | if ok {
19 | return fmt.Fprintf(w, format, ok)
20 | }
21 | return 0, nil
22 | }
23 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/ioutils/fmt_test.go:
--------------------------------------------------------------------------------
1 | package ioutils
2 |
3 | import "testing"
4 |
5 | func TestFprintfIfNotEmpty(t *testing.T) {
6 | wc := NewWriteCounter(&NopWriter{})
7 | n, _ := FprintfIfNotEmpty(wc, "foo%s", "")
8 |
9 | if wc.Count != 0 || n != 0 {
10 | t.Errorf("Wrong count: %v vs. %v vs. 0", wc.Count, n)
11 | }
12 |
13 | n, _ = FprintfIfNotEmpty(wc, "foo%s", "bar")
14 | if wc.Count != 6 || n != 6 {
15 | t.Errorf("Wrong count: %v vs. %v vs. 6", wc.Count, n)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/ioutils/temp_unix.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package ioutils
4 |
5 | import "io/ioutil"
6 |
7 | // TempDir on Unix systems is equivalent to ioutil.TempDir.
8 | func TempDir(dir, prefix string) (string, error) {
9 | return ioutil.TempDir(dir, prefix)
10 | }
11 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/ioutils/temp_windows.go:
--------------------------------------------------------------------------------
1 | // +build windows
2 |
3 | package ioutils
4 |
5 | import (
6 | "io/ioutil"
7 |
8 | "github.com/docker/docker/pkg/longpath"
9 | )
10 |
11 | // TempDir is the equivalent of ioutil.TempDir, except that the result is in Windows longpath format.
12 | func TempDir(dir, prefix string) (string, error) {
13 | tempDir, err := ioutil.TempDir(dir, prefix)
14 | if err != nil {
15 | return "", err
16 | }
17 | return longpath.AddPrefix(tempDir), nil
18 | }
19 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/longpath/longpath_test.go:
--------------------------------------------------------------------------------
1 | package longpath
2 |
3 | import (
4 | "strings"
5 | "testing"
6 | )
7 |
8 | func TestStandardLongPath(t *testing.T) {
9 | c := `C:\simple\path`
10 | longC := AddPrefix(c)
11 | if !strings.EqualFold(longC, `\\?\C:\simple\path`) {
12 | t.Errorf("Wrong long path returned. Original = %s ; Long = %s", c, longC)
13 | }
14 | }
15 |
16 | func TestUNCLongPath(t *testing.T) {
17 | c := `\\server\share\path`
18 | longC := AddPrefix(c)
19 | if !strings.EqualFold(longC, `\\?\UNC\server\share\path`) {
20 | t.Errorf("Wrong UNC long path returned. Original = %s ; Long = %s", c, longC)
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/mount/flags_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !linux,!freebsd freebsd,!cgo solaris,!cgo
2 |
3 | package mount
4 |
5 | // These flags are unsupported.
6 | const (
7 | BIND = 0
8 | DIRSYNC = 0
9 | MANDLOCK = 0
10 | NOATIME = 0
11 | NODEV = 0
12 | NODIRATIME = 0
13 | NOEXEC = 0
14 | NOSUID = 0
15 | UNBINDABLE = 0
16 | RUNBINDABLE = 0
17 | PRIVATE = 0
18 | RPRIVATE = 0
19 | SHARED = 0
20 | RSHARED = 0
21 | SLAVE = 0
22 | RSLAVE = 0
23 | RBIND = 0
24 | RELATIME = 0
25 | RELATIVE = 0
26 | REMOUNT = 0
27 | STRICTATIME = 0
28 | SYNCHRONOUS = 0
29 | RDONLY = 0
30 | )
31 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/mount/mounter_linux.go:
--------------------------------------------------------------------------------
1 | package mount
2 |
3 | import (
4 | "syscall"
5 | )
6 |
7 | func mount(device, target, mType string, flag uintptr, data string) error {
8 | if err := syscall.Mount(device, target, mType, flag, data); err != nil {
9 | return err
10 | }
11 |
12 | // If we have a bind mount or remount, remount...
13 | if flag&syscall.MS_BIND == syscall.MS_BIND && flag&syscall.MS_RDONLY == syscall.MS_RDONLY {
14 | return syscall.Mount(device, target, mType, flag|syscall.MS_REMOUNT, data)
15 | }
16 | return nil
17 | }
18 |
19 | func unmount(target string, flag int) error {
20 | return syscall.Unmount(target, flag)
21 | }
22 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/mount/mounter_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !linux,!freebsd,!solaris freebsd,!cgo solaris,!cgo
2 |
3 | package mount
4 |
5 | func mount(device, target, mType string, flag uintptr, data string) error {
6 | panic("Not implemented")
7 | }
8 |
9 | func unmount(target string, flag int) error {
10 | panic("Not implemented")
11 | }
12 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/mount/mountinfo_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !windows,!linux,!freebsd,!solaris freebsd,!cgo solaris,!cgo
2 |
3 | package mount
4 |
5 | import (
6 | "fmt"
7 | "runtime"
8 | )
9 |
10 | func parseMountTable() ([]*Info, error) {
11 | return nil, fmt.Errorf("mount.parseMountTable is not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
12 | }
13 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/mount/mountinfo_windows.go:
--------------------------------------------------------------------------------
1 | package mount
2 |
3 | func parseMountTable() ([]*Info, error) {
4 | // Do NOT return an error!
5 | return nil, nil
6 | }
7 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/namesgenerator/cmd/names-generator/main.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "fmt"
5 |
6 | "github.com/docker/docker/pkg/namesgenerator"
7 | )
8 |
9 | func main() {
10 | fmt.Println(namesgenerator.GetRandomName(0))
11 | }
12 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/namesgenerator/names-generator_test.go:
--------------------------------------------------------------------------------
1 | package namesgenerator
2 |
3 | import (
4 | "strings"
5 | "testing"
6 | )
7 |
8 | func TestNameFormat(t *testing.T) {
9 | name := GetRandomName(0)
10 | if !strings.Contains(name, "_") {
11 | t.Fatalf("Generated name does not contain an underscore")
12 | }
13 | if strings.ContainsAny(name, "0123456789") {
14 | t.Fatalf("Generated name contains numbers!")
15 | }
16 | }
17 |
18 | func TestNameRetries(t *testing.T) {
19 | name := GetRandomName(1)
20 | if !strings.Contains(name, "_") {
21 | t.Fatalf("Generated name does not contain an underscore")
22 | }
23 | if !strings.ContainsAny(name, "0123456789") {
24 | t.Fatalf("Generated name doesn't contain a number")
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/parsers/kernel/kernel_unix.go:
--------------------------------------------------------------------------------
1 | // +build linux freebsd solaris
2 |
3 | // Package kernel provides helper function to get, parse and compare kernel
4 | // versions for different platforms.
5 | package kernel
6 |
7 | import (
8 | "bytes"
9 | )
10 |
11 | // GetKernelVersion gets the current kernel version.
12 | func GetKernelVersion() (*VersionInfo, error) {
13 | uts, err := uname()
14 | if err != nil {
15 | return nil, err
16 | }
17 |
18 | release := make([]byte, len(uts.Release))
19 |
20 | i := 0
21 | for _, c := range uts.Release {
22 | release[i] = byte(c)
23 | i++
24 | }
25 |
26 | // Remove the \x00 from the release for Atoi to parse correctly
27 | release = release[:bytes.IndexByte(release, 0)]
28 |
29 | return ParseRelease(string(release))
30 | }
31 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/parsers/kernel/uname_linux.go:
--------------------------------------------------------------------------------
1 | package kernel
2 |
3 | import (
4 | "syscall"
5 | )
6 |
7 | // Utsname represents the system name structure.
8 | // It is passthrough for syscall.Utsname in order to make it portable with
9 | // other platforms where it is not available.
10 | type Utsname syscall.Utsname
11 |
12 | func uname() (*syscall.Utsname, error) {
13 | uts := &syscall.Utsname{}
14 |
15 | if err := syscall.Uname(uts); err != nil {
16 | return nil, err
17 | }
18 | return uts, nil
19 | }
20 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/parsers/kernel/uname_solaris.go:
--------------------------------------------------------------------------------
1 | package kernel
2 |
3 | import (
4 | "golang.org/x/sys/unix"
5 | )
6 |
7 | func uname() (*unix.Utsname, error) {
8 | uts := &unix.Utsname{}
9 |
10 | if err := unix.Uname(uts); err != nil {
11 | return nil, err
12 | }
13 | return uts, nil
14 | }
15 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/parsers/kernel/uname_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !linux,!solaris
2 |
3 | package kernel
4 |
5 | import (
6 | "errors"
7 | )
8 |
9 | // Utsname represents the system name structure.
10 | // It is defined here to make it portable as it is available on linux but not
11 | // on windows.
12 | type Utsname struct {
13 | Release [65]byte
14 | }
15 |
16 | func uname() (*Utsname, error) {
17 | return nil, errors.New("Kernel version detection is available only on linux")
18 | }
19 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_unix.go:
--------------------------------------------------------------------------------
1 | // +build freebsd darwin
2 |
3 | package operatingsystem
4 |
5 | import (
6 | "errors"
7 | "os/exec"
8 | )
9 |
10 | // GetOperatingSystem gets the name of the current operating system.
11 | func GetOperatingSystem() (string, error) {
12 | cmd := exec.Command("uname", "-s")
13 | osName, err := cmd.Output()
14 | if err != nil {
15 | return "", err
16 | }
17 | return string(osName), nil
18 | }
19 |
20 | // IsContainerized returns true if we are running inside a container.
21 | // No-op on FreeBSD and Darwin, always returns false.
22 | func IsContainerized() (bool, error) {
23 | // TODO: Implement jail detection for freeBSD
24 | return false, errors.New("Cannot detect if we are in container")
25 | }
26 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/pidfile/pidfile_unix.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package pidfile
4 |
5 | import (
6 | "os"
7 | "path/filepath"
8 | "strconv"
9 | )
10 |
11 | func processExists(pid int) bool {
12 | if _, err := os.Stat(filepath.Join("/proc", strconv.Itoa(pid))); err == nil {
13 | return true
14 | }
15 | return false
16 | }
17 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/pidfile/pidfile_windows.go:
--------------------------------------------------------------------------------
1 | package pidfile
2 |
3 | import "syscall"
4 |
5 | const (
6 | processQueryLimitedInformation = 0x1000
7 |
8 | stillActive = 259
9 | )
10 |
11 | func processExists(pid int) bool {
12 | h, err := syscall.OpenProcess(processQueryLimitedInformation, false, uint32(pid))
13 | if err != nil {
14 | return false
15 | }
16 | var c uint32
17 | err = syscall.GetExitCodeProcess(h, &c)
18 | syscall.Close(h)
19 | if err != nil {
20 | return c == stillActive
21 | }
22 | return true
23 | }
24 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/platform/architecture_linux.go:
--------------------------------------------------------------------------------
1 | // Package platform provides helper function to get the runtime architecture
2 | // for different platforms.
3 | package platform
4 |
5 | import (
6 | "syscall"
7 | )
8 |
9 | // runtimeArchitecture gets the name of the current architecture (x86, x86_64, …)
10 | func runtimeArchitecture() (string, error) {
11 | utsname := &syscall.Utsname{}
12 | if err := syscall.Uname(utsname); err != nil {
13 | return "", err
14 | }
15 | return charsToString(utsname.Machine), nil
16 | }
17 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/platform/architecture_unix.go:
--------------------------------------------------------------------------------
1 | // +build freebsd solaris darwin
2 |
3 | // Package platform provides helper function to get the runtime architecture
4 | // for different platforms.
5 | package platform
6 |
7 | import (
8 | "os/exec"
9 | "strings"
10 | )
11 |
12 | // runtimeArchitecture gets the name of the current architecture (x86, x86_64, i86pc, sun4v, ...)
13 | func runtimeArchitecture() (string, error) {
14 | cmd := exec.Command("/usr/bin/uname", "-m")
15 | machine, err := cmd.Output()
16 | if err != nil {
17 | return "", err
18 | }
19 | return strings.TrimSpace(string(machine)), nil
20 | }
21 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/platform/platform.go:
--------------------------------------------------------------------------------
1 | package platform
2 |
3 | import (
4 | "runtime"
5 |
6 | "github.com/Sirupsen/logrus"
7 | )
8 |
9 | var (
10 | // Architecture holds the runtime architecture of the process.
11 | Architecture string
12 | // OSType holds the runtime operating system type (Linux, …) of the process.
13 | OSType string
14 | )
15 |
16 | func init() {
17 | var err error
18 | Architecture, err = runtimeArchitecture()
19 | if err != nil {
20 | logrus.Errorf("Could not read system architecture info: %v", err)
21 | }
22 | OSType = runtime.GOOS
23 | }
24 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/platform/utsname_int8.go:
--------------------------------------------------------------------------------
1 | // +build linux,386 linux,amd64 linux,arm64
2 | // see golang's sources src/syscall/ztypes_linux_*.go that use int8
3 |
4 | package platform
5 |
6 | // Convert the OS/ARCH-specific utsname.Machine to string
7 | // given as an array of signed int8
8 | func charsToString(ca [65]int8) string {
9 | s := make([]byte, len(ca))
10 | var lens int
11 | for ; lens < len(ca); lens++ {
12 | if ca[lens] == 0 {
13 | break
14 | }
15 | s[lens] = uint8(ca[lens])
16 | }
17 | return string(s[0:lens])
18 | }
19 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/platform/utsname_uint8.go:
--------------------------------------------------------------------------------
1 | // +build linux,arm linux,ppc64 linux,ppc64le s390x
2 | // see golang's sources src/syscall/ztypes_linux_*.go that use uint8
3 |
4 | package platform
5 |
6 | // Convert the OS/ARCH-specific utsname.Machine to string
7 | // given as an array of unsigned uint8
8 | func charsToString(ca [65]uint8) string {
9 | s := make([]byte, len(ca))
10 | var lens int
11 | for ; lens < len(ca); lens++ {
12 | if ca[lens] == 0 {
13 | break
14 | }
15 | s[lens] = ca[lens]
16 | }
17 | return string(s[0:lens])
18 | }
19 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/plugins/errors.go:
--------------------------------------------------------------------------------
1 | package plugins
2 |
3 | import (
4 | "fmt"
5 | "net/http"
6 | )
7 |
8 | type statusError struct {
9 | status int
10 | method string
11 | err string
12 | }
13 |
14 | // Error returns a formatted string for this error type
15 | func (e *statusError) Error() string {
16 | return fmt.Sprintf("%s: %v", e.method, e.err)
17 | }
18 |
19 | // IsNotFound indicates if the passed in error is from an http.StatusNotFound from the plugin
20 | func IsNotFound(err error) bool {
21 | return isStatusError(err, http.StatusNotFound)
22 | }
23 |
24 | func isStatusError(err error, status int) bool {
25 | if err == nil {
26 | return false
27 | }
28 | e, ok := err.(*statusError)
29 | if !ok {
30 | return false
31 | }
32 | return e.status == status
33 | }
34 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/plugins/pluginrpc-gen/fixtures/otherfixture/spaceship.go:
--------------------------------------------------------------------------------
1 | package otherfixture
2 |
3 | // Spaceship is a fixture for tests
4 | type Spaceship struct{}
5 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/promise/promise.go:
--------------------------------------------------------------------------------
1 | package promise
2 |
3 | // Go is a basic promise implementation: it wraps calls a function in a goroutine,
4 | // and returns a channel which will later return the function's return value.
5 | func Go(f func() error) chan error {
6 | ch := make(chan error, 1)
7 | go func() {
8 | ch <- f()
9 | }()
10 | return ch
11 | }
12 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/random/random_test.go:
--------------------------------------------------------------------------------
1 | package random
2 |
3 | import (
4 | "math/rand"
5 | "sync"
6 | "testing"
7 | )
8 |
9 | // for go test -v -race
10 | func TestConcurrency(t *testing.T) {
11 | rnd := rand.New(NewSource())
12 | var wg sync.WaitGroup
13 |
14 | for i := 0; i < 10; i++ {
15 | wg.Add(1)
16 | go func() {
17 | rnd.Int63()
18 | wg.Done()
19 | }()
20 | }
21 | wg.Wait()
22 | }
23 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/reexec/README.md:
--------------------------------------------------------------------------------
1 | ## reexec
2 |
3 | The `reexec` package facilitates the busybox style reexec of the docker binary that we require because
4 | of the forking limitations of using Go. Handlers can be registered with a name and the argv 0 of
5 | the exec of the binary will be used to find and execute custom init paths.
6 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/reexec/command_linux.go:
--------------------------------------------------------------------------------
1 | // +build linux
2 |
3 | package reexec
4 |
5 | import (
6 | "os/exec"
7 | "syscall"
8 | )
9 |
10 | // Self returns the path to the current process's binary.
11 | // Returns "/proc/self/exe".
12 | func Self() string {
13 | return "/proc/self/exe"
14 | }
15 |
16 | // Command returns *exec.Cmd which have Path as current binary. Also it setting
17 | // SysProcAttr.Pdeathsig to SIGTERM.
18 | // This will use the in-memory version (/proc/self/exe) of the current binary,
19 | // it is thus safe to delete or replace the on-disk binary (os.Args[0]).
20 | func Command(args ...string) *exec.Cmd {
21 | return &exec.Cmd{
22 | Path: Self(),
23 | Args: args,
24 | SysProcAttr: &syscall.SysProcAttr{
25 | Pdeathsig: syscall.SIGTERM,
26 | },
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/reexec/command_unix.go:
--------------------------------------------------------------------------------
1 | // +build freebsd solaris
2 |
3 | package reexec
4 |
5 | import (
6 | "os/exec"
7 | )
8 |
9 | // Self returns the path to the current process's binary.
10 | // Uses os.Args[0].
11 | func Self() string {
12 | return naiveSelf()
13 | }
14 |
15 | // Command returns *exec.Cmd which have Path as current binary.
16 | // For example if current binary is "docker" at "/usr/bin/", then cmd.Path will
17 | // be set to "/usr/bin/docker".
18 | func Command(args ...string) *exec.Cmd {
19 | return &exec.Cmd{
20 | Path: Self(),
21 | Args: args,
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/reexec/command_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !linux,!windows,!freebsd,!solaris
2 |
3 | package reexec
4 |
5 | import (
6 | "os/exec"
7 | )
8 |
9 | // Command is unsupported on operating systems apart from Linux and Windows.
10 | func Command(args ...string) *exec.Cmd {
11 | return nil
12 | }
13 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/reexec/command_windows.go:
--------------------------------------------------------------------------------
1 | // +build windows
2 |
3 | package reexec
4 |
5 | import (
6 | "os/exec"
7 | )
8 |
9 | // Self returns the path to the current process's binary.
10 | // Uses os.Args[0].
11 | func Self() string {
12 | return naiveSelf()
13 | }
14 |
15 | // Command returns *exec.Cmd which have Path as current binary.
16 | // For example if current binary is "docker.exe" at "C:\", then cmd.Path will
17 | // be set to "C:\docker.exe".
18 | func Command(args ...string) *exec.Cmd {
19 | return &exec.Cmd{
20 | Path: Self(),
21 | Args: args,
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/signal/README.md:
--------------------------------------------------------------------------------
1 | This package provides helper functions for dealing with signals across various operating systems
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/signal/signal_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !linux,!darwin,!freebsd,!windows,!solaris
2 |
3 | package signal
4 |
5 | import (
6 | "syscall"
7 | )
8 |
9 | // SignalMap is an empty map of signals for unsupported platform.
10 | var SignalMap = map[string]syscall.Signal{}
11 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/stringid/README.md:
--------------------------------------------------------------------------------
1 | This package provides helper functions for dealing with string identifiers
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/stringutils/README.md:
--------------------------------------------------------------------------------
1 | This package provides helper functions for dealing with strings
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/symlink/README.md:
--------------------------------------------------------------------------------
1 | Package symlink implements EvalSymlinksInScope which is an extension of filepath.EvalSymlinks,
2 | as well as a Windows long-path aware version of filepath.EvalSymlinks
3 | from the [Go standard library](https://golang.org/pkg/path/filepath).
4 |
5 | The code from filepath.EvalSymlinks has been adapted in fs.go.
6 | Please read the LICENSE.BSD file that governs fs.go and LICENSE.APACHE for fs_test.go.
7 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/symlink/fs_unix.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package symlink
4 |
5 | import (
6 | "path/filepath"
7 | )
8 |
9 | func evalSymlinks(path string) (string, error) {
10 | return filepath.EvalSymlinks(path)
11 | }
12 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/sysinfo/README.md:
--------------------------------------------------------------------------------
1 | SysInfo stores information about which features a kernel supports.
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/sysinfo/numcpu.go:
--------------------------------------------------------------------------------
1 | // +build !linux,!windows
2 |
3 | package sysinfo
4 |
5 | import (
6 | "runtime"
7 | )
8 |
9 | // NumCPU returns the number of CPUs
10 | func NumCPU() int {
11 | return runtime.NumCPU()
12 | }
13 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/sysinfo/sysinfo_freebsd.go:
--------------------------------------------------------------------------------
1 | package sysinfo
2 |
3 | // New returns an empty SysInfo for freebsd for now.
4 | func New(quiet bool) *SysInfo {
5 | sysInfo := &SysInfo{}
6 | return sysInfo
7 | }
8 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/sysinfo/sysinfo_windows.go:
--------------------------------------------------------------------------------
1 | package sysinfo
2 |
3 | // New returns an empty SysInfo for windows for now.
4 | func New(quiet bool) *SysInfo {
5 | sysInfo := &SysInfo{}
6 | return sysInfo
7 | }
8 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/chtimes_unix.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package system
4 |
5 | import (
6 | "time"
7 | )
8 |
9 | //setCTime will set the create time on a file. On Unix, the create
10 | //time is updated as a side effect of setting the modified time, so
11 | //no action is required.
12 | func setCTime(path string, ctime time.Time) error {
13 | return nil
14 | }
15 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/errors.go:
--------------------------------------------------------------------------------
1 | package system
2 |
3 | import (
4 | "errors"
5 | )
6 |
7 | var (
8 | // ErrNotSupportedPlatform means the platform is not supported.
9 | ErrNotSupportedPlatform = errors.New("platform and architecture is not supported")
10 | )
11 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/filesys.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package system
4 |
5 | import (
6 | "os"
7 | "path/filepath"
8 | )
9 |
10 | // MkdirAll creates a directory named path along with any necessary parents,
11 | // with permission specified by attribute perm for all dir created.
12 | func MkdirAll(path string, perm os.FileMode) error {
13 | return os.MkdirAll(path, perm)
14 | }
15 |
16 | // IsAbs is a platform-specific wrapper for filepath.IsAbs.
17 | func IsAbs(path string) bool {
18 | return filepath.IsAbs(path)
19 | }
20 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/lstat.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package system
4 |
5 | import (
6 | "syscall"
7 | )
8 |
9 | // Lstat takes a path to a file and returns
10 | // a system.StatT type pertaining to that file.
11 | //
12 | // Throws an error if the file does not exist
13 | func Lstat(path string) (*StatT, error) {
14 | s := &syscall.Stat_t{}
15 | if err := syscall.Lstat(path, s); err != nil {
16 | return nil, err
17 | }
18 | return fromStatT(s)
19 | }
20 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/lstat_unix_test.go:
--------------------------------------------------------------------------------
1 | // +build linux freebsd
2 |
3 | package system
4 |
5 | import (
6 | "os"
7 | "testing"
8 | )
9 |
10 | // TestLstat tests Lstat for existing and non existing files
11 | func TestLstat(t *testing.T) {
12 | file, invalid, _, dir := prepareFiles(t)
13 | defer os.RemoveAll(dir)
14 |
15 | statFile, err := Lstat(file)
16 | if err != nil {
17 | t.Fatal(err)
18 | }
19 | if statFile == nil {
20 | t.Fatal("returned empty stat for existing file")
21 | }
22 |
23 | statInvalid, err := Lstat(invalid)
24 | if err == nil {
25 | t.Fatal("did not return error for non-existing file")
26 | }
27 | if statInvalid != nil {
28 | t.Fatal("returned non-nil stat for non-existing file")
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/lstat_windows.go:
--------------------------------------------------------------------------------
1 | // +build windows
2 |
3 | package system
4 |
5 | import (
6 | "os"
7 | )
8 |
9 | // Lstat calls os.Lstat to get a fileinfo interface back.
10 | // This is then copied into our own locally defined structure.
11 | // Note the Linux version uses fromStatT to do the copy back,
12 | // but that not strictly necessary when already in an OS specific module.
13 | func Lstat(path string) (*StatT, error) {
14 | fi, err := os.Lstat(path)
15 | if err != nil {
16 | return nil, err
17 | }
18 |
19 | return &StatT{
20 | name: fi.Name(),
21 | size: fi.Size(),
22 | mode: fi.Mode(),
23 | modTime: fi.ModTime(),
24 | isDir: fi.IsDir()}, nil
25 | }
26 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/meminfo.go:
--------------------------------------------------------------------------------
1 | package system
2 |
3 | // MemInfo contains memory statistics of the host system.
4 | type MemInfo struct {
5 | // Total usable RAM (i.e. physical RAM minus a few reserved bits and the
6 | // kernel binary code).
7 | MemTotal int64
8 |
9 | // Amount of free memory.
10 | MemFree int64
11 |
12 | // Total amount of swap space available.
13 | SwapTotal int64
14 |
15 | // Amount of swap space that is currently unused.
16 | SwapFree int64
17 | }
18 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/meminfo_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !linux,!windows,!solaris
2 |
3 | package system
4 |
5 | // ReadMemInfo is not supported on platforms other than linux and windows.
6 | func ReadMemInfo() (*MemInfo, error) {
7 | return nil, ErrNotSupportedPlatform
8 | }
9 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/mknod_windows.go:
--------------------------------------------------------------------------------
1 | // +build windows
2 |
3 | package system
4 |
5 | // Mknod is not implemented on Windows.
6 | func Mknod(path string, mode uint32, dev int) error {
7 | return ErrNotSupportedPlatform
8 | }
9 |
10 | // Mkdev is not implemented on Windows.
11 | func Mkdev(major int64, minor int64) uint32 {
12 | panic("Mkdev not implemented on Windows.")
13 | }
14 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/path_unix.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package system
4 |
5 | // DefaultPathEnv is unix style list of directories to search for
6 | // executables. Each directory is separated from the next by a colon
7 | // ':' character .
8 | const DefaultPathEnv = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
9 |
10 | // CheckSystemDriveAndRemoveDriveLetter verifies that a path, if it includes a drive letter,
11 | // is the system drive. This is a no-op on Linux.
12 | func CheckSystemDriveAndRemoveDriveLetter(path string) (string, error) {
13 | return path, nil
14 | }
15 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/stat_freebsd.go:
--------------------------------------------------------------------------------
1 | package system
2 |
3 | import (
4 | "syscall"
5 | )
6 |
7 | // fromStatT converts a syscall.Stat_t type to a system.Stat_t type
8 | func fromStatT(s *syscall.Stat_t) (*StatT, error) {
9 | return &StatT{size: s.Size,
10 | mode: uint32(s.Mode),
11 | uid: s.Uid,
12 | gid: s.Gid,
13 | rdev: uint64(s.Rdev),
14 | mtim: s.Mtimespec}, nil
15 | }
16 |
17 | // Stat takes a path to a file and returns
18 | // a system.Stat_t type pertaining to that file.
19 | //
20 | // Throws an error if the file does not exist
21 | func Stat(path string) (*StatT, error) {
22 | s := &syscall.Stat_t{}
23 | if err := syscall.Stat(path, s); err != nil {
24 | return nil, err
25 | }
26 | return fromStatT(s)
27 | }
28 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/stat_openbsd.go:
--------------------------------------------------------------------------------
1 | package system
2 |
3 | import (
4 | "syscall"
5 | )
6 |
7 | // fromStatT creates a system.StatT type from a syscall.Stat_t type
8 | func fromStatT(s *syscall.Stat_t) (*StatT, error) {
9 | return &StatT{size: s.Size,
10 | mode: uint32(s.Mode),
11 | uid: s.Uid,
12 | gid: s.Gid,
13 | rdev: uint64(s.Rdev),
14 | mtim: s.Mtim}, nil
15 | }
16 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/stat_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !linux,!windows,!freebsd,!solaris,!openbsd
2 |
3 | package system
4 |
5 | import (
6 | "syscall"
7 | )
8 |
9 | // fromStatT creates a system.StatT type from a syscall.Stat_t type
10 | func fromStatT(s *syscall.Stat_t) (*StatT, error) {
11 | return &StatT{size: s.Size,
12 | mode: uint32(s.Mode),
13 | uid: s.Uid,
14 | gid: s.Gid,
15 | rdev: uint64(s.Rdev),
16 | mtim: s.Mtimespec}, nil
17 | }
18 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/syscall_unix.go:
--------------------------------------------------------------------------------
1 | // +build linux freebsd
2 |
3 | package system
4 |
5 | import "syscall"
6 |
7 | // Unmount is a platform-specific helper function to call
8 | // the unmount syscall.
9 | func Unmount(dest string) error {
10 | return syscall.Unmount(dest, 0)
11 | }
12 |
13 | // CommandLineToArgv should not be used on Unix.
14 | // It simply returns commandLine in the only element in the returned array.
15 | func CommandLineToArgv(commandLine string) ([]string, error) {
16 | return []string{commandLine}, nil
17 | }
18 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/syscall_windows_test.go:
--------------------------------------------------------------------------------
1 | package system
2 |
3 | import "testing"
4 |
5 | func TestHasWin32KSupport(t *testing.T) {
6 | s := HasWin32KSupport() // make sure this doesn't panic
7 |
8 | t.Logf("win32k: %v", s) // will be different on different platforms -- informative only
9 | }
10 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/umask.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package system
4 |
5 | import (
6 | "syscall"
7 | )
8 |
9 | // Umask sets current process's file mode creation mask to newmask
10 | // and returns oldmask.
11 | func Umask(newmask int) (oldmask int, err error) {
12 | return syscall.Umask(newmask), nil
13 | }
14 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/umask_windows.go:
--------------------------------------------------------------------------------
1 | // +build windows
2 |
3 | package system
4 |
5 | // Umask is not supported on the windows platform.
6 | func Umask(newmask int) (oldmask int, err error) {
7 | // should not be called on cli code path
8 | return 0, ErrNotSupportedPlatform
9 | }
10 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/utimes_darwin.go:
--------------------------------------------------------------------------------
1 | package system
2 |
3 | import "syscall"
4 |
5 | // LUtimesNano is not supported by darwin platform.
6 | func LUtimesNano(path string, ts []syscall.Timespec) error {
7 | return ErrNotSupportedPlatform
8 | }
9 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/utimes_freebsd.go:
--------------------------------------------------------------------------------
1 | package system
2 |
3 | import (
4 | "syscall"
5 | "unsafe"
6 | )
7 |
8 | // LUtimesNano is used to change access and modification time of the specified path.
9 | // It's used for symbol link file because syscall.UtimesNano doesn't support a NOFOLLOW flag atm.
10 | func LUtimesNano(path string, ts []syscall.Timespec) error {
11 | var _path *byte
12 | _path, err := syscall.BytePtrFromString(path)
13 | if err != nil {
14 | return err
15 | }
16 |
17 | if _, _, err := syscall.Syscall(syscall.SYS_LUTIMES, uintptr(unsafe.Pointer(_path)), uintptr(unsafe.Pointer(&ts[0])), 0); err != 0 && err != syscall.ENOSYS {
18 | return err
19 | }
20 |
21 | return nil
22 | }
23 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/utimes_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !linux,!freebsd,!darwin
2 |
3 | package system
4 |
5 | import "syscall"
6 |
7 | // LUtimesNano is not supported on platforms other than linux, freebsd and darwin.
8 | func LUtimesNano(path string, ts []syscall.Timespec) error {
9 | return ErrNotSupportedPlatform
10 | }
11 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/system/xattrs_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !linux
2 |
3 | package system
4 |
5 | // Lgetxattr is not supported on platforms other than linux.
6 | func Lgetxattr(path string, attr string) ([]byte, error) {
7 | return nil, ErrNotSupportedPlatform
8 | }
9 |
10 | // Lsetxattr is not supported on platforms other than linux.
11 | func Lsetxattr(path string, attr string, data []byte, flags int) error {
12 | return ErrNotSupportedPlatform
13 | }
14 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/tarsum/builder_context.go:
--------------------------------------------------------------------------------
1 | package tarsum
2 |
3 | // BuilderContext is an interface extending TarSum by adding the Remove method.
4 | // In general there was concern about adding this method to TarSum itself
5 | // so instead it is being added just to "BuilderContext" which will then
6 | // only be used during the .dockerignore file processing
7 | // - see builder/evaluator.go
8 | type BuilderContext interface {
9 | TarSum
10 | Remove(string)
11 | }
12 |
13 | func (bc *tarSum) Remove(filename string) {
14 | for i, fis := range bc.sums {
15 | if fis.Name() == filename {
16 | bc.sums = append(bc.sums[:i], bc.sums[i+1:]...)
17 | // Note, we don't just return because there could be
18 | // more than one with this name
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/tarsum/testdata/511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158/json:
--------------------------------------------------------------------------------
1 | {"id":"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158","comment":"Imported from -","created":"2013-06-13T14:03:50.821769-07:00","container_config":{"Hostname":"","Domainname":"","User":"","Memory":0,"MemorySwap":0,"CpuShares":0,"AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"ExposedPorts":null,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":null,"Cmd":null,"Image":"","Volumes":null,"WorkingDir":"","Entrypoint":null,"NetworkDisabled":false,"OnBuild":null},"docker_version":"0.4.0","architecture":"x86_64","Size":0}
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/tarsum/testdata/xattr/layer.tar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/tarsum/testdata/xattr/layer.tar
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/tarsum/writercloser.go:
--------------------------------------------------------------------------------
1 | package tarsum
2 |
3 | import (
4 | "io"
5 | )
6 |
7 | type writeCloseFlusher interface {
8 | io.WriteCloser
9 | Flush() error
10 | }
11 |
12 | type nopCloseFlusher struct {
13 | io.Writer
14 | }
15 |
16 | func (n *nopCloseFlusher) Close() error {
17 | return nil
18 | }
19 |
20 | func (n *nopCloseFlusher) Flush() error {
21 | return nil
22 | }
23 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/term/tc_other.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 | // +build !linux !cgo
3 | // +build !solaris !cgo
4 |
5 | package term
6 |
7 | import (
8 | "syscall"
9 | "unsafe"
10 | )
11 |
12 | func tcget(fd uintptr, p *Termios) syscall.Errno {
13 | _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(getTermios), uintptr(unsafe.Pointer(p)))
14 | return err
15 | }
16 |
17 | func tcset(fd uintptr, p *Termios) syscall.Errno {
18 | _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, setTermios, uintptr(unsafe.Pointer(p)))
19 | return err
20 | }
21 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/term/windows/windows_test.go:
--------------------------------------------------------------------------------
1 | // This file is necessary to pass the Docker tests.
2 |
3 | package windows
4 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/testutil/pkg.go:
--------------------------------------------------------------------------------
1 | package testutil
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/useragent/README.md:
--------------------------------------------------------------------------------
1 | This package provides helper functions to pack version information into a single User-Agent header.
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/volume/volume_copy.go:
--------------------------------------------------------------------------------
1 | package volume
2 |
3 | import "strings"
4 |
5 | const (
6 | // DefaultCopyMode is the copy mode used by default for normal/named volumes
7 | DefaultCopyMode = true
8 | )
9 |
10 | // {=isEnabled}
11 | var copyModes = map[string]bool{
12 | "nocopy": false,
13 | }
14 |
15 | func copyModeExists(mode string) bool {
16 | _, exists := copyModes[mode]
17 | return exists
18 | }
19 |
20 | // GetCopyMode gets the copy mode from the mode string for mounts
21 | func getCopyMode(mode string) (bool, bool) {
22 | for _, o := range strings.Split(mode, ",") {
23 | if isEnabled, exists := copyModes[o]; exists {
24 | return isEnabled, true
25 | }
26 | }
27 | return DefaultCopyMode, false
28 | }
29 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/docker/volume/volume_propagation_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !linux
2 |
3 | package volume
4 |
5 | // DefaultPropagationMode is used only in linux. In other cases it returns
6 | // empty string.
7 | const DefaultPropagationMode string = ""
8 |
9 | // propagation modes not supported on this platform.
10 | var propagationModes = map[string]bool{}
11 |
12 | // GetPropagation is not supported. Return empty string.
13 | func GetPropagation(mode string) string {
14 | return DefaultPropagationMode
15 | }
16 |
17 | // HasPropagation checks if there is a valid propagation mode present in
18 | // passed string. Returns true if a valid propagation mode specifier is
19 | // present, false otherwise.
20 | func HasPropagation(mode string) bool {
21 | return false
22 | }
23 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/go-units/README.md:
--------------------------------------------------------------------------------
1 | [](https://godoc.org/github.com/docker/go-units)
2 |
3 | # Introduction
4 |
5 | go-units is a library to transform human friendly measurements into machine friendly values.
6 |
7 | ## Usage
8 |
9 | See the [docs in godoc](https://godoc.org/github.com/docker/go-units) for examples and documentation.
10 |
11 | ## Copyright and license
12 |
13 | Copyright © 2015 Docker, Inc.
14 |
15 | go-units is licensed under the Apache License, Version 2.0.
16 | See [LICENSE](LICENSE) for the full text of the license.
17 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/docker/go-units/circle.yml:
--------------------------------------------------------------------------------
1 | dependencies:
2 | post:
3 | # install golint
4 | - go get github.com/golang/lint/golint
5 |
6 | test:
7 | pre:
8 | # run analysis before tests
9 | - go vet ./...
10 | - test -z "$(golint ./... | tee /dev/stderr)"
11 | - test -z "$(gofmt -s -l . | tee /dev/stderr)"
12 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/fsouza/go-dockerclient/DOCKER-LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | You can find the Docker license at the following link:
6 | https://raw.githubusercontent.com/docker/docker/master/LICENSE
7 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/fsouza/go-dockerclient/cancelable.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 go-dockerclient authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build go1.5
6 |
7 | package docker
8 |
9 | import "net/http"
10 |
11 | func cancelable(client *http.Client, req *http.Request) func() {
12 | ch := make(chan struct{})
13 | req.Cancel = ch
14 | return func() {
15 | close(ch)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/fsouza/go-dockerclient/cancelable_go14.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 go-dockerclient authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build !go1.5
6 |
7 | package docker
8 |
9 | import "net/http"
10 |
11 | func cancelable(client *http.Client, req *http.Request) func() {
12 | return func() {
13 | if rc, ok := client.Transport.(interface {
14 | CancelRequest(*http.Request)
15 | }); ok {
16 | rc.CancelRequest(req)
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/gocraft/web/cover.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | go test -covermode=count -coverprofile=count.out .
4 | go tool cover -html=count.out
5 | go tool cover -func=count.out
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/gocraft/web/options_handler.go:
--------------------------------------------------------------------------------
1 | package web
2 |
3 | import (
4 | "net/http"
5 | "reflect"
6 | "strings"
7 | )
8 |
9 | func (r *Router) genericOptionsHandler(ctx reflect.Value, methods []string) func(rw ResponseWriter, req *Request) {
10 | return func(rw ResponseWriter, req *Request) {
11 | if r.optionsHandler.IsValid() {
12 | invoke(r.optionsHandler, ctx, []reflect.Value{reflect.ValueOf(rw), reflect.ValueOf(req), reflect.ValueOf(methods)})
13 | } else {
14 | rw.Header().Add("Access-Control-Allow-Methods", strings.Join(methods, ", "))
15 | rw.WriteHeader(http.StatusOK)
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/golang/protobuf/AUTHORS:
--------------------------------------------------------------------------------
1 | # This source code refers to The Go Authors for copyright purposes.
2 | # The master list of authors is in the main Go distribution,
3 | # visible at http://tip.golang.org/AUTHORS.
4 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/golang/protobuf/CONTRIBUTORS:
--------------------------------------------------------------------------------
1 | # This source code was written by the Go contributors.
2 | # The master list of contributors is in the main Go distribution,
3 | # visible at http://tip.golang.org/CONTRIBUTORS.
4 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/google/gofuzz/doc.go:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2014 Google Inc. All rights reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | // Package fuzz is a library for populating go objects with random values.
18 | package fuzz
19 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/howeyc/gopass/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2012 Chris Howey
2 |
3 | Permission to use, copy, modify, and distribute this software for any
4 | purpose with or without fee is hereby granted, provided that the above
5 | copyright notice and this permission notice appear in all copies.
6 |
7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/inconshreveable/mousetrap/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2014 Alan Shreve
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/inconshreveable/mousetrap/trap_others.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package mousetrap
4 |
5 | // StartedByExplorer returns true if the program was invoked by the user
6 | // double-clicking on the executable from explorer.exe
7 | //
8 | // It is conservative and returns false if any of the internal calls fail.
9 | // It does not guarantee that the program was run from a terminal. It only can tell you
10 | // whether it was launched from explorer.exe
11 | //
12 | // On non-Windows platforms, it always returns false.
13 | func StartedByExplorer() bool {
14 | return false
15 | }
16 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/kr/pretty/Readme:
--------------------------------------------------------------------------------
1 | package pretty
2 |
3 | import "github.com/kr/pretty"
4 |
5 | Package pretty provides pretty-printing for Go values.
6 |
7 | Documentation
8 |
9 | http://godoc.org/github.com/kr/pretty
10 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/kr/text/Readme:
--------------------------------------------------------------------------------
1 | This is a Go package for manipulating paragraphs of text.
2 |
3 | See http://go.pkgdoc.org/github.com/kr/text for full documentation.
4 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/kr/text/doc.go:
--------------------------------------------------------------------------------
1 | // Package text provides rudimentary functions for manipulating text in
2 | // paragraphs.
3 | package text
4 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c:
--------------------------------------------------------------------------------
1 | #ifndef USE_LIBSQLITE3
2 | # include "code/sqlite3-binding.c"
3 | #endif
4 |
5 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h:
--------------------------------------------------------------------------------
1 | #ifndef USE_LIBSQLITE3
2 | #include "code/sqlite3-binding.h"
3 | #else
4 | #include
5 | #endif
6 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/mattn/go-sqlite3/sqlite3_icu.go:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2014 Yasuhiro Matsumoto .
2 | //
3 | // Use of this source code is governed by an MIT-style
4 | // license that can be found in the LICENSE file.
5 | // +build icu
6 |
7 | package sqlite3
8 |
9 | /*
10 | #cgo LDFLAGS: -licuuc -licui18n
11 | #cgo CFLAGS: -DSQLITE_ENABLE_ICU
12 | */
13 | import "C"
14 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.go:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2014 Yasuhiro Matsumoto .
2 | //
3 | // Use of this source code is governed by an MIT-style
4 | // license that can be found in the LICENSE file.
5 | // +build libsqlite3
6 |
7 | package sqlite3
8 |
9 | /*
10 | #cgo CFLAGS: -DUSE_LIBSQLITE3
11 | #cgo LDFLAGS: -lsqlite3
12 | */
13 | import "C"
14 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/mattn/go-sqlite3/sqlite3_omit_load_extension.go:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2014 Yasuhiro Matsumoto .
2 | //
3 | // Use of this source code is governed by an MIT-style
4 | // license that can be found in the LICENSE file.
5 | // +build sqlite_omit_load_extension
6 |
7 | package sqlite3
8 |
9 | /*
10 | #cgo CFLAGS: -DSQLITE_OMIT_LOAD_EXTENSION
11 | */
12 | import "C"
13 | import (
14 | "errors"
15 | )
16 |
17 | func (c *SQLiteConn) loadExtensions(extensions []string) error {
18 | return errors.New("Extensions have been disabled for static builds")
19 | }
20 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/mattn/go-sqlite3/sqlite3_other.go:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2014 Yasuhiro Matsumoto .
2 | //
3 | // Use of this source code is governed by an MIT-style
4 | // license that can be found in the LICENSE file.
5 | // +build !windows
6 |
7 | package sqlite3
8 |
9 | /*
10 | #cgo CFLAGS: -I.
11 | #cgo linux LDFLAGS: -ldl
12 | */
13 | import "C"
14 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/mattn/go-sqlite3/sqlite3_windows.go:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2014 Yasuhiro Matsumoto .
2 | //
3 | // Use of this source code is governed by an MIT-style
4 | // license that can be found in the LICENSE file.
5 | // +build windows
6 |
7 | package sqlite3
8 |
9 | /*
10 | #cgo CFLAGS: -I. -fno-stack-check -fno-stack-protector -mno-stack-arg-probe
11 | #cgo windows,386 CFLAGS: -D_localtime32=localtime
12 | #cgo LDFLAGS: -lmingwex -lmingw32
13 | */
14 | import "C"
15 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/op/go-logging/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | ## 2.0.0-rc1 (2016-02-11)
4 |
5 | Time flies and it has been three years since this package was first released.
6 | There have been a couple of API changes I have wanted to do for some time but
7 | I've tried to maintain backwards compatibility. Some inconsistencies in the
8 | API have started to show, proper vendor support in Go out of the box and
9 | the fact that `go vet` will give warnings -- I have decided to bump the major
10 | version.
11 |
12 | * Make eg. `Info` and `Infof` do different things. You want to change all calls
13 | to `Info` with a string format go to `Infof` etc. In many cases, `go vet` will
14 | guide you.
15 | * `Id` in `Record` is now called `ID`
16 |
17 | ## 1.0.0 (2013-02-21)
18 |
19 | Initial release
20 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/op/go-logging/CONTRIBUTORS:
--------------------------------------------------------------------------------
1 | Alec Thomas
2 | Guilhem Lettron
3 | Ivan Daniluk
4 | Nimi Wariboko Jr
5 | Róbert Selvek
6 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/opencontainers/runc/NOTICE:
--------------------------------------------------------------------------------
1 | runc
2 |
3 | Copyright 2012-2015 Docker, Inc.
4 |
5 | This product includes software developed at Docker, Inc. (http://www.docker.com).
6 |
7 | The following is courtesy of our legal counsel:
8 |
9 |
10 | Use and transfer of Docker may be subject to certain restrictions by the
11 | United States and other governments.
12 | It is your responsibility to ensure that your use and/or transfer does not
13 | violate applicable laws.
14 |
15 | For more information, please see http://www.bis.doc.gov
16 |
17 | See also http://www.apache.org/dev/crypto.html and/or seek legal counsel.
18 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/opencontainers/runc/libcontainer/user/MAINTAINERS:
--------------------------------------------------------------------------------
1 | Tianon Gravi (@tianon)
2 | Aleksa Sarai (@cyphar)
3 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/opencontainers/runc/libcontainer/user/lookup_unix.go:
--------------------------------------------------------------------------------
1 | // +build darwin dragonfly freebsd linux netbsd openbsd solaris
2 |
3 | package user
4 |
5 | import (
6 | "io"
7 | "os"
8 | )
9 |
10 | // Unix-specific path to the passwd and group formatted files.
11 | const (
12 | unixPasswdPath = "/etc/passwd"
13 | unixGroupPath = "/etc/group"
14 | )
15 |
16 | func GetPasswdPath() (string, error) {
17 | return unixPasswdPath, nil
18 | }
19 |
20 | func GetPasswd() (io.ReadCloser, error) {
21 | return os.Open(unixPasswdPath)
22 | }
23 |
24 | func GetGroupPath() (string, error) {
25 | return unixGroupPath, nil
26 | }
27 |
28 | func GetGroup() (io.ReadCloser, error) {
29 | return os.Open(unixGroupPath)
30 | }
31 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/opencontainers/runc/libcontainer/user/lookup_unsupported.go:
--------------------------------------------------------------------------------
1 | // +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris
2 |
3 | package user
4 |
5 | import "io"
6 |
7 | func GetPasswdPath() (string, error) {
8 | return "", ErrUnsupported
9 | }
10 |
11 | func GetPasswd() (io.ReadCloser, error) {
12 | return nil, ErrUnsupported
13 | }
14 |
15 | func GetGroupPath() (string, error) {
16 | return "", ErrUnsupported
17 | }
18 |
19 | func GetGroup() (io.ReadCloser, error) {
20 | return nil, ErrUnsupported
21 | }
22 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra/command_notwin.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package cobra
4 |
5 | var preExecHookFn func(*Command)
6 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra/command_win.go:
--------------------------------------------------------------------------------
1 | // +build windows
2 |
3 | package cobra
4 |
5 | import (
6 | "os"
7 | "time"
8 |
9 | "github.com/inconshreveable/mousetrap"
10 | )
11 |
12 | var preExecHookFn = preExecHook
13 |
14 | // enables an information splash screen on Windows if the CLI is started from explorer.exe.
15 | var MousetrapHelpText string = `This is a command line tool
16 |
17 | You need to open cmd.exe and run it from there.
18 | `
19 |
20 | func preExecHook(c *Command) {
21 | if mousetrap.StartedByExplorer() {
22 | c.Print(MousetrapHelpText)
23 | time.Sleep(5 * time.Second)
24 | os.Exit(1)
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/stretchr/objx/README.md:
--------------------------------------------------------------------------------
1 | # objx
2 |
3 | * Jump into the [API Documentation](http://godoc.org/github.com/stretchr/objx)
4 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/stretchr/objx/constants.go:
--------------------------------------------------------------------------------
1 | package objx
2 |
3 | const (
4 | // PathSeparator is the character used to separate the elements
5 | // of the keypath.
6 | //
7 | // For example, `location.address.city`
8 | PathSeparator string = "."
9 |
10 | // SignatureSeparator is the character that is used to
11 | // separate the Base64 string from the security signature.
12 | SignatureSeparator = "_"
13 | )
14 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/stretchr/objx/security.go:
--------------------------------------------------------------------------------
1 | package objx
2 |
3 | import (
4 | "crypto/sha1"
5 | "encoding/hex"
6 | )
7 |
8 | // HashWithKey hashes the specified string using the security
9 | // key.
10 | func HashWithKey(data, key string) string {
11 | hash := sha1.New()
12 | hash.Write([]byte(data + ":" + key))
13 | return hex.EncodeToString(hash.Sum(nil))
14 | }
15 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/stretchr/objx/tests.go:
--------------------------------------------------------------------------------
1 | package objx
2 |
3 | // Has gets whether there is something at the specified selector
4 | // or not.
5 | //
6 | // If m is nil, Has will always return false.
7 | func (m Map) Has(selector string) bool {
8 | if m == nil {
9 | return false
10 | }
11 | return !m.Get(selector).IsNil()
12 | }
13 |
14 | // IsNil gets whether the data is nil or not.
15 | func (v *Value) IsNil() bool {
16 | return v == nil || v.data == nil
17 | }
18 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl:
--------------------------------------------------------------------------------
1 | {{.CommentWithoutT "a"}}
2 | func (a *Assertions) {{.DocInfo.Name}}({{.Params}}) bool {
3 | return {{.DocInfo.Name}}(a.t, {{.ForwardedParams}})
4 | }
5 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/stretchr/testify/assert/errors.go:
--------------------------------------------------------------------------------
1 | package assert
2 |
3 | import (
4 | "errors"
5 | )
6 |
7 | // AnError is an error instance useful for testing. If the code does not care
8 | // about error specifics, and only needs to return the error for example, this
9 | // error should be used to make the test code more readable.
10 | var AnError = errors.New("assert.AnError general error for testing")
11 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/stretchr/testify/assert/forward_assertions.go:
--------------------------------------------------------------------------------
1 | package assert
2 |
3 | // Assertions provides assertion methods around the
4 | // TestingT interface.
5 | type Assertions struct {
6 | t TestingT
7 | }
8 |
9 | // New makes a new Assertions object for the specified TestingT.
10 | func New(t TestingT) *Assertions {
11 | return &Assertions{
12 | t: t,
13 | }
14 | }
15 |
16 | //go:generate go run ../_codegen/main.go -output-package=assert -template=assertion_forward.go.tmpl
17 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/stretchr/testify/require/forward_requirements.go:
--------------------------------------------------------------------------------
1 | package require
2 |
3 | // Assertions provides assertion methods around the
4 | // TestingT interface.
5 | type Assertions struct {
6 | t TestingT
7 | }
8 |
9 | // New makes a new Assertions object for the specified TestingT.
10 | func New(t TestingT) *Assertions {
11 | return &Assertions{
12 | t: t,
13 | }
14 | }
15 |
16 | //go:generate go run ../_codegen/main.go -output-package=require -template=require_forward.go.tmpl
17 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/stretchr/testify/require/require.go.tmpl:
--------------------------------------------------------------------------------
1 | {{.Comment}}
2 | func {{.DocInfo.Name}}(t TestingT, {{.Params}}) {
3 | if !assert.{{.DocInfo.Name}}(t, {{.ForwardedParams}}) {
4 | t.FailNow()
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/stretchr/testify/require/require_forward.go.tmpl:
--------------------------------------------------------------------------------
1 | {{.CommentWithoutT "a"}}
2 | func (a *Assertions) {{.DocInfo.Name}}({{.Params}}) {
3 | {{.DocInfo.Name}}(a.t, {{.ForwardedParams}})
4 | }
5 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/stretchr/testify/require/requirements.go:
--------------------------------------------------------------------------------
1 | package require
2 |
3 | // TestingT is an interface wrapper around *testing.T
4 | type TestingT interface {
5 | Errorf(format string, args ...interface{})
6 | FailNow()
7 | }
8 |
9 | //go:generate go run ../_codegen/main.go -output-package=require -template=require.go.tmpl
10 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/tecbot/gorocksdb/cache.go:
--------------------------------------------------------------------------------
1 | package gorocksdb
2 |
3 | // #include "rocksdb/c.h"
4 | import "C"
5 |
6 | // Cache is a cache used to store data read from data in memory.
7 | type Cache struct {
8 | c *C.rocksdb_cache_t
9 | }
10 |
11 | // NewLRUCache creates a new LRU Cache object with the capacity given.
12 | func NewLRUCache(capacity int) *Cache {
13 | return NewNativeCache(C.rocksdb_cache_create_lru(C.size_t(capacity)))
14 | }
15 |
16 | // NewNativeCache creates a Cache object.
17 | func NewNativeCache(c *C.rocksdb_cache_t) *Cache {
18 | return &Cache{c}
19 | }
20 |
21 | // Destroy deallocates the Cache object.
22 | func (c *Cache) Destroy() {
23 | C.rocksdb_cache_destroy(c.c)
24 | c.c = nil
25 | }
26 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/tecbot/gorocksdb/dynflag.go:
--------------------------------------------------------------------------------
1 | // !build embed
2 |
3 | package gorocksdb
4 |
5 | // #cgo LDFLAGS: -lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy
6 | import "C"
7 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/tecbot/gorocksdb/embedflag.go:
--------------------------------------------------------------------------------
1 | // +build embed
2 |
3 | package gorocksdb
4 |
5 | // #cgo CXXFLAGS: -std=c++11
6 | // #cgo CPPFLAGS: -I${SRCDIR}/../../cockroachdb/c-lz4/internal/lib
7 | // #cgo CPPFLAGS: -I${SRCDIR}/../../cockroachdb/c-rocksdb/internal/include
8 | // #cgo CPPFLAGS: -I${SRCDIR}/../../cockroachdb/c-snappy/internal
9 | // #cgo LDFLAGS: -lstdc++
10 | // #cgo darwin LDFLAGS: -Wl,-undefined -Wl,dynamic_lookup
11 | // #cgo !darwin LDFLAGS: -Wl,-unresolved-symbols=ignore-all -lrt
12 | import "C"
13 |
14 | import (
15 | _ "github.com/cockroachdb/c-lz4"
16 | _ "github.com/cockroachdb/c-rocksdb"
17 | _ "github.com/cockroachdb/c-snappy"
18 | )
19 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/tecbot/gorocksdb/options_compression.go:
--------------------------------------------------------------------------------
1 | package gorocksdb
2 |
3 | // CompressionOptions represents options for different compression algorithms like Zlib.
4 | type CompressionOptions struct {
5 | WindowBits int
6 | Level int
7 | Strategy int
8 | }
9 |
10 | // NewDefaultCompressionOptions creates a default CompressionOptions object.
11 | func NewDefaultCompressionOptions() *CompressionOptions {
12 | return NewCompressionOptions(-14, -1, 0)
13 | }
14 |
15 | // NewCompressionOptions creates a CompressionOptions object.
16 | func NewCompressionOptions(windowBits, level, strategy int) *CompressionOptions {
17 | return &CompressionOptions{
18 | WindowBits: windowBits,
19 | Level: level,
20 | Strategy: strategy,
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/github.com/tecbot/gorocksdb/snapshot.go:
--------------------------------------------------------------------------------
1 | package gorocksdb
2 |
3 | // #include "rocksdb/c.h"
4 | import "C"
5 |
6 | // Snapshot provides a consistent view of read operations in a DB.
7 | type Snapshot struct {
8 | c *C.rocksdb_snapshot_t
9 | cDb *C.rocksdb_t
10 | }
11 |
12 | // NewNativeSnapshot creates a Snapshot object.
13 | func NewNativeSnapshot(c *C.rocksdb_snapshot_t, cDb *C.rocksdb_t) *Snapshot {
14 | return &Snapshot{c, cDb}
15 | }
16 |
17 | // Release removes the snapshot from the database's list of snapshots.
18 | func (s *Snapshot) Release() {
19 | C.rocksdb_release_snapshot(s.cDb, s.c)
20 | s.c, s.cDb = nil, nil
21 | }
22 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/crypto/sha3/register.go:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build go1.4
6 |
7 | package sha3
8 |
9 | import (
10 | "crypto"
11 | )
12 |
13 | func init() {
14 | crypto.RegisterHash(crypto.SHA3_224, New224)
15 | crypto.RegisterHash(crypto.SHA3_256, New256)
16 | crypto.RegisterHash(crypto.SHA3_384, New384)
17 | crypto.RegisterHash(crypto.SHA3_512, New512)
18 | }
19 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/crypto/sha3/xor.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build !amd64,!386 appengine
6 |
7 | package sha3
8 |
9 | var (
10 | xorIn = xorInGeneric
11 | copyOut = copyOutGeneric
12 | xorInUnaligned = xorInGeneric
13 | copyOutUnaligned = copyOutGeneric
14 | )
15 |
16 | const xorImplementationUnaligned = "generic"
17 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build darwin dragonfly freebsd netbsd openbsd
6 |
7 | package terminal
8 |
9 | import "syscall"
10 |
11 | const ioctlReadTermios = syscall.TIOCGETA
12 | const ioctlWriteTermios = syscall.TIOCSETA
13 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package terminal
6 |
7 | // These constants are declared here, rather than importing
8 | // them from the syscall package as some syscall packages, even
9 | // on linux, for example gccgo, do not declare them.
10 | const ioctlReadTermios = 0x5401 // syscall.TCGETS
11 | const ioctlWriteTermios = 0x5402 // syscall.TCSETS
12 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/.gitattributes:
--------------------------------------------------------------------------------
1 | # Treat all files in this repo as binary, with no git magic updating
2 | # line endings. Windows users contributing to Go will need to use a
3 | # modern version of git and editors capable of LF line endings.
4 | #
5 | # We'll prevent accidental CRLF line endings from entering the repo
6 | # via the git-review gofmt checks.
7 | #
8 | # See golang.org/issue/9281
9 |
10 | * -text
11 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/.gitignore:
--------------------------------------------------------------------------------
1 | # Add no patterns to .hgignore except for files generated by the build.
2 | last-change
3 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/AUTHORS:
--------------------------------------------------------------------------------
1 | # This source code refers to The Go Authors for copyright purposes.
2 | # The master list of authors is in the main Go distribution,
3 | # visible at http://tip.golang.org/AUTHORS.
4 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/CONTRIBUTORS:
--------------------------------------------------------------------------------
1 | # This source code was written by the Go contributors.
2 | # The master list of contributors is in the main Go distribution,
3 | # visible at http://tip.golang.org/CONTRIBUTORS.
4 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/README:
--------------------------------------------------------------------------------
1 | This repository holds supplementary Go networking libraries.
2 |
3 | To submit changes to this repository, see http://golang.org/doc/contribute.html.
4 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/bpf/testdata/all_instructions.bpf:
--------------------------------------------------------------------------------
1 | 50,0 0 0 42,1 0 0 42,96 0 0 3,97 0 0 3,48 0 0 42,40 0 0 42,32 0 0 42,80 0 0 42,72 0 0 42,64 0 0 42,177 0 0 42,128 0 0 0,32 0 0 4294963200,32 0 0 4294963204,32 0 0 4294963256,2 0 0 3,3 0 0 3,4 0 0 42,20 0 0 42,36 0 0 42,52 0 0 42,68 0 0 42,84 0 0 42,100 0 0 42,116 0 0 42,148 0 0 42,164 0 0 42,12 0 0 0,28 0 0 0,44 0 0 0,60 0 0 0,76 0 0 0,92 0 0 0,108 0 0 0,124 0 0 0,156 0 0 0,172 0 0 0,132 0 0 0,5 0 0 10,21 8 9 42,21 0 8 42,53 0 7 42,37 0 6 42,37 4 5 42,53 3 4 42,69 2 3 42,7 0 0 0,135 0 0 0,22 0 0 0,6 0 0 0,
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/codereview.cfg:
--------------------------------------------------------------------------------
1 | issuerepo: golang/go
2 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_17_test.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build !plan9,go1.7
6 |
7 | package ctxhttp
8 |
9 | import (
10 | "io"
11 | "net/http"
12 | "net/http/httptest"
13 | "testing"
14 |
15 | "context"
16 | )
17 |
18 | func TestGo17Context(t *testing.T) {
19 | ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
20 | io.WriteString(w, "ok")
21 | }))
22 | ctx := context.Background()
23 | resp, err := Get(ctx, http.DefaultClient, ts.URL)
24 | if resp == nil || err != nil {
25 | t.Fatalf("error received from client: %v %v", err, resp)
26 | }
27 | resp.Body.Close()
28 | }
29 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/context/withtimeout_test.go:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package context_test
6 |
7 | import (
8 | "fmt"
9 | "time"
10 |
11 | "golang.org/x/net/context"
12 | )
13 |
14 | func ExampleWithTimeout() {
15 | // Pass a context with a timeout to tell a blocking function that it
16 | // should abandon its work after the timeout elapses.
17 | ctx, _ := context.WithTimeout(context.Background(), 100*time.Millisecond)
18 | select {
19 | case <-time.After(200 * time.Millisecond):
20 | fmt.Println("overslept")
21 | case <-ctx.Done():
22 | fmt.Println(ctx.Err()) // prints "context deadline exceeded"
23 | }
24 | // Output:
25 | // context deadline exceeded
26 | }
27 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/html/charset/testdata/README:
--------------------------------------------------------------------------------
1 | These test cases come from
2 | http://www.w3.org/International/tests/repository/html5/the-input-byte-stream/results-basics
3 |
4 | Distributed under both the W3C Test Suite License
5 | (http://www.w3.org/Consortium/Legal/2008/04-testsuite-license)
6 | and the W3C 3-clause BSD License
7 | (http://www.w3.org/Consortium/Legal/2008/03-bsd-license).
8 | To contribute to a W3C Test Suite, see the policies and contribution
9 | forms (http://www.w3.org/2004/10/27-testcases).
10 |
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/html/charset/testdata/UTF-16BE-BOM.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/html/charset/testdata/UTF-16BE-BOM.html
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/html/charset/testdata/UTF-16LE-BOM.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IBM-Blockchain-Archive/SDK-Demo/5d81c0cfb0260b384eea99abdd7eb5baa2f4d4c1/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/html/charset/testdata/UTF-16LE-BOM.html
--------------------------------------------------------------------------------
/src/chaincode/vendor/github.com/hyperledger/fabric/vendor/golang.org/x/net/html/testdata/webkit/adoption02.dat:
--------------------------------------------------------------------------------
1 | #data
2 | 1234
3 | #errors
4 | #document
5 | |
6 | |
7 | |
8 | |
9 | | "1"
10 | |
11 | | "2"
12 | |
13 | |
14 | |
15 | | "3"
16 | | "4"
17 |
18 | #data
19 |