{"id":19838911,"url":"https://github.com/supermap/atlab-fabricfaster-sdk-java","last_synced_at":"2026-03-19T11:59:48.484Z","repository":{"id":45107201,"uuid":"264080579","full_name":"SuperMap/ATLab-FabricFaster-SDK-JAVA","owner":"SuperMap","description":"FabricFaster JAVA SDK based on fabric-sdk-java v1.4.4","archived":false,"fork":false,"pushed_at":"2022-12-14T20:40:07.000Z","size":2693,"stargazers_count":1,"open_issues_count":7,"forks_count":1,"subscribers_count":4,"default_branch":"fasterfabric","last_synced_at":"2025-01-11T11:19:21.656Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SuperMap.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-15T02:54:01.000Z","updated_at":"2023-02-27T12:34:55.000Z","dependencies_parsed_at":"2023-01-29T01:00:46.735Z","dependency_job_id":null,"html_url":"https://github.com/SuperMap/ATLab-FabricFaster-SDK-JAVA","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuperMap%2FATLab-FabricFaster-SDK-JAVA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuperMap%2FATLab-FabricFaster-SDK-JAVA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuperMap%2FATLab-FabricFaster-SDK-JAVA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuperMap%2FATLab-FabricFaster-SDK-JAVA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SuperMap","download_url":"https://codeload.github.com/SuperMap/ATLab-FabricFaster-SDK-JAVA/tar.gz/refs/heads/fasterfabric","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241209528,"owners_count":19927734,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T12:19:32.274Z","updated_at":"2026-02-24T21:34:18.603Z","avatar_url":"https://github.com/SuperMap.png","language":null,"readme":"# Java SDK for Hyperledger Fabric 1.4\nWelcome to Java SDK for Hyperledger project. The SDK helps facilitate Java applications to manage the lifecycle of\n Hyperledger channels  and user chaincode. The SDK also provides a means to execute\n  user chaincode, query blocks\n and transactions on the channel, and monitor events on the channel.\n\nThe SDK acts on behave of a particular User which is defined by the embedding application through the implementation\n of the SDK's `User` interface.\n\nNote, the SDK does ***not*** provide a means of persistence\n  for the application defined channels and user artifacts on the client. This is left for the embedding application to best manage.\n  Channels may be serialized via Java serialization in the context of a client.\n  Channels deserialized are not in an initialized state.\n  Applications need to handle migration of serialized files between versions.\n\nThe SDK also provides a client for Hyperledger's certificate authority.  The SDK is however not dependent on this\nparticular implementation of a certificate authority. Other Certificate authority's maybe used by implementing the\nSDK's `Enrollment` interface.\n\n This provides a summary of steps required to get you started with building and using the Java SDK.\n Please note that this is not the API documentation or a tutorial for the SDK, this will\n  only help you familiarize to get started with the SDK if you are new in this domain.\n\n\n## Release notes\n\n|Release | Notes |Summary|\n|--------|:------|:------|\n|1.4     | None | Minor updates no Fabric changes|\n|1.3     | [v1.3 release notes](./docs/release_v1.3.0_notes.md)|\u003cul\u003e\u003cli\u003eJava chaincode support\u003c/li\u003e\u003cli\u003eQuery chaincode collection configuration\u003c/li\u003e\u003cli\u003eIdentity Mixer transaction unlinkabilty support\u003c/li\u003e\u003c/ul\u003e |\n|1.2     | [v1.2 release notes](./docs/release_v1.2.0_notes.md)|\u003cul\u003e\u003cli\u003ePrivate data collection support\u003c/li\u003e\u003cli\u003eService discovery\u003c/li\u003e\u003cli\u003eFabric CA certificate API \u003c/ul\u003e|\n|1.1     | [v1.1 release notes](./docs/release_v1.1.0_notes.md)|\u003cul\u003e\u003cli\u003eChannel service events\u003c/li\u003e\u003cli\u003eFilterBlocks\u003c/li\u003e\u003cli\u003eJCA/JCE compliance\u003c/li\u003e\u003cli\u003eChaincode events\u003c/li\u003e\u003cli\u003eNode chaincode\u003c/li\u003e\u003c/ul\u003e|\n\n\n\n## Checkout SDK from Github\n```\ngit clone https://github.com/hyperledger/fabric-sdk-java.git\ncd fabric-sdk-java/\ngit checkout -b release-1.4\n```\n\n## Java applications\nFor Java applications use the latest published v1.4.x releases:\n```\n     \u003c!-- https://mvnrepository.com/artifact/org.hyperledger.fabric-sdk-java/fabric-sdk-java --\u003e\n     \u003cdependency\u003e\n         \u003cgroupId\u003eorg.hyperledger.fabric-sdk-java\u003c/groupId\u003e\n         \u003cartifactId\u003efabric-sdk-java\u003c/artifactId\u003e\n         \u003cversion\u003e1.4.1\u003c/version\u003e\n     \u003c/dependency\u003e\n\n```\n\n## Known limitations and restrictions\n\n* TCerts are not supported: JIRA FAB-1401\n* HSM not supported. JIRA FAB-3137\n\n\u003cp \u0026nbsp; /\u003e\n\u003cp \u0026nbsp; /\u003e\n\n\n`*************************************************`\n\n\n## Latest Fabric Builds.\nLatest Fabric builds are seldom needed except for those working on the very latest Fabric features.\nSome information to help with that can been found in [Developer Instructions](./docs/DeveloperInstructions.md)\n\n## Latest builds of Fabric and Fabric-ca v1.4.0\n\nTo get a functioning Fabric v1.4.0 network needed by the SDK Integration tests once it's built.\nIn the directory `src/test/fixture/sdkintegration` issue :\n\n`./fabric.sh restart`\n\nThis command needs to be rerun each time the Integration tests are run.\n\n### Setting Up Eclipse\nTo get started using the Fabric Java SDK with Eclipse, refer to the instructions at: ./docs/EclipseSetup.md\n\n## SDK dependencies\nSDK depends on few third party libraries that must be included in your classpath when using the JAR file. To get a list of dependencies, refer to pom.xml file or run\n\u003ccode\u003emvn dependency:tree\u003c/code\u003e or \u003ccode\u003emvn dependency:list\u003c/code\u003e.\nAlternatively, \u003ccode\u003e mvn dependency:analyze-report \u003c/code\u003e will produce a report in HTML format in target directory listing all the dependencies in a more readable format.\n\nTo build this project, the following dependencies must be met\n * JDK 1.8 or above\n * Apache Maven 3.5.0\n\nTo run the integration tests Fabric and Fabric CA is needed which require\n * Docker 18.03\n * Docker compose 1.21.2\n\n## Using the SDK\n\n### Compiling\n\nOnce your JAVA_HOME points to your installation of JDK 1.8 (or above) and JAVA_HOME/bin and Apache maven are in your PATH, issue the following command to build the jar file:\n\u003ccode\u003e\n  mvn install\n\u003c/code\u003e\nor\n\u003ccode\u003e\n  mvn install -DskipTests\n\u003c/code\u003e if you don't want to run the unit tests\n\n### Running the unit tests\nTo run the unit tests, please use \u003ccode\u003emvn install\u003c/code\u003e which will run the unit tests and build the jar file.\n\n**Many unit tests will test failure condition's resulting in exceptions and stack traces being displayed. This is not an indication of failure!**\n\n**[INFO] BUILD SUCCESS**  **_At the end is usually a very reliable indication that all tests have passed successfully!_**\n\n### Running the integration tests\nYou must be running local instances of Fabric-ca, Fabric peers, and Fabric orderers to be able to run the integration tests. See above for for how to get a Fabric network running.\nUse this `maven` command to run the integration tests:\n * _mvn clean install -DskipITs=false -Dmaven.test.failure.ignore=false javadoc:javadoc_\n\n### End to end test scenario\n\n Following the below integration tests/example code shows almost all that the SDK can do.\n To learn the SDK you must have some understanding first of Fabric Hyperledger. Then it's best to study the integrations tests and better yet work with them in a debugger to follow the code ( *a live demo* ).\n Start first with End2endIT.java and then End2endAndBackAgainIT.java samples before exploring the other samples.\n Then once you understand them you can cut and paste from there to your own application. ( _the code is done for you!_ )\n\n **Note** These samples are for testing, validating your environment and showing how to use the APIs. Most show a **simple** balance transfer.\n  **They are not meant to represent best practices in design or use of chaincode or the use of the SDK**.\n\n\n |Integration Test | Summary and notes|\n |--------|:------|\n |[End2endIT.java](https://github.com/hyperledger/fabric-sdk-java/blob/8044bac1bfe9baf9d6360b067e0d6b5445cc953d/src/test/java/org/hyperledger/fabric/sdkintegration/End2endIT.java)|\u003cul\u003e\u003cli\u003eRegister and enroll users with Fabric certificate authority.\u003c/li\u003e\u003cli\u003eConstructing channel first time.\u003c/li\u003e\u003cli\u003eInstalling chaincode.\u003c/li\u003e\u003cli\u003eInstantiating chaincode.\u003c/li\u003e\u003cli\u003eExecuting chaincode.\u003c/li\u003e\u003cli\u003eQuerying channel for block information.\u003c/li\u003e\u003cli\u003eChaincode event listener\u003c/li\u003e\u003cli\u003eTraversing block for information.\u003c/li\u003e\u003cli\u003ePrerequisite for all other testcases.\u003c/li\u003e\u003c/ul\u003e |\n |[End2endAndBackAgainIT.java](https://github.com/hyperledger/fabric-sdk-java/blob/8044bac1bfe9baf9d6360b067e0d6b5445cc953d/src/test/java/org/hyperledger/fabric/sdkintegration/End2endAndBackAgainIT.java)| \u003cul\u003e\u003cli\u003eRecreate channel.\u003c/li\u003e\u003cli\u003eUpdate chaincode.\u003c/li\u003e\u003cli\u003eChecking installed and instantiated chaincode.\u003c/li\u003e\u003c/ul\u003e |\n |[End2endNodeIT.java](https://github.com/hyperledger/fabric-sdk-java/blob/8044bac1bfe9baf9d6360b067e0d6b5445cc953d/src/test/java/org/hyperledger/fabric/sdkintegration/End2endNodeIT.java)| \u003cul\u003e\u003cli\u003eShows running End2endIT.java but with Node chaincode.\u003c/li\u003e\u003cli\u003eNote subclasses En2endIT class.\u003c/li\u003e\u003c/ul\u003e |\n |[End2endJavaIT.java](https://github.com/hyperledger/fabric-sdk-java/blob/8044bac1bfe9baf9d6360b067e0d6b5445cc953d/src/test/java/org/hyperledger/fabric/sdkintegration/End2endJavaIT.java)| \u003cul\u003e\u003cli\u003eShows running End2endIT.java but with Java chaincode.\u003c/li\u003e\u003cli\u003eNote subclasses En2endIT class.\u003c/li\u003e\u003c/ul\u003e |\n |[End2endIdemixIT.java](https://github.com/hyperledger/fabric-sdk-java/blob/8044bac1bfe9baf9d6360b067e0d6b5445cc953d/src/test/java/org/hyperledger/fabric/sdkintegration/End2endIdemixIT.java)| \u003cul\u003e\u003cli\u003eShows running End2endIT.java but with Idemix credentials.\u003c/li\u003e\u003cli\u003eNote subclasses En2endIT class.\u003c/li\u003e\u003c/ul\u003e |\n |[NetworkConfigIT.java](https://github.com/hyperledger/fabric-sdk-java/blob/8044bac1bfe9baf9d6360b067e0d6b5445cc953d/src/test/java/org/hyperledger/fabric/sdkintegration/NetworkConfigIT.java)| \u003cul\u003e\u003cli\u003eShows recreating channel with [common connection profile](https://jira.hyperledger.org/browse/FABN-808).\u003c/li\u003e\u003c/ul\u003e |\n |[PrivateDataIT.java](https://github.com/hyperledger/fabric-sdk-java/blob/8044bac1bfe9baf9d6360b067e0d6b5445cc953d/src/test/java/org/hyperledger/fabric/sdkintegration/PrivateDataIT.java)| \u003cul\u003e\u003cli\u003eShows instantiating and installing chaincode that defines private data.\u003c/li\u003e\u003cli\u003eInformation on Fabric private data can be found [read the docs.](https://hyperledger-fabric.readthedocs.io/en/release-1.2/private-data/private-data.html)\u003c/li\u003e\u003c/ul\u003e |\n |[UpdateChannelIT.java](https://github.com/hyperledger/fabric-sdk-java/blob/8044bac1bfe9baf9d6360b067e0d6b5445cc953d/src/test/java/org/hyperledger/fabric/sdkintegration/UpdateChannelIT.java)| \u003cul\u003e\u003cli\u003eShows updating channel configuration.\u003c/li\u003e\u003cli\u003eDetails on channel configurations can be found on read the docs [Channel Configuration](https://hyperledger-fabric.readthedocs.io/en/release-1.2/configtx.html#)\u003c/li\u003e\u003c/ul\u003e |\n |[ServiceDiscoveryIT.java](https://github.com/hyperledger/fabric-sdk-java/blob/8044bac1bfe9baf9d6360b067e0d6b5445cc953d/src/test/java/org/hyperledger/fabric/sdkintegration/ServiceDiscoveryIT.java)| \u003cul\u003e\u003cli\u003eShows service discovery.\u003c/li\u003e\u003cli\u003eDetails on service discovery can be found on read the docs [Service Discovery](https://hyperledger-fabric.readthedocs.io/en/release-1.3/discovery-overview.html)\u003c/li\u003e\u003cli\u003eNote: requires adding entries in host file to remap docker fabric Peer and Orderers address to localhost\u003c/li\u003e\u003c/ul\u003e |\n\n### End to end test environment\nThe test defines one Fabric orderer and two organizations (peerOrg1, peerOrg2), each of which has 2 peers, one fabric-ca service.\n\n#### Certificates and other cryptography artifacts\n\nFabric requires that each organization has private keys and certificates for use in signing and verifying messages going to and from clients, peers and orderers.\nEach organization groups these artifacts in an **MSP** (Membership Service Provider) with a corresponding unique _MSPID_ .\n\nFurthermore, each organization is assumed to generate these artifacts independently. The *fabric-ca* project is an example of such a certificate generation service.\nFabric also provides the `cryptogen` tool to automatically generate all cryptographic artifacts needed for the end to end test.\nIn the directory src/test/fixture/sdkintegration/e2e-2Orgs/channel\n\n  The command used to generate end2end `crypto-config` artifacts:\u003c/br\u003e\n\n  v1.0 ```build/bin/cryptogen generate --config crypto-config.yaml --output=crypto-config```\n\n  v1.1 ```cryptogen generate --config crypto-config.yaml --output=v1.1/crypto-config```\n\nFor ease of assigning ports and mapping of artifacts to physical files, all peers, orderers, and fabric-ca are run as Docker containers controlled via a docker-compose configuration file.\n\nThe files used by the end to end are:\n * _src/test/fixture/sdkintegration/e2e-2Orgs/vX.0_  (everything needed to bootstrap the orderer and create the channels)\n * _src/test/fixture/sdkintegration/e2e-2Orgs/vX.0crypto-config_ (as-is. Used by `configtxgen` and `docker-compose` to map the MSP directories)\n * _src/test/fixture/sdkintegration/docker-compose.yaml_\n\n\nThe end to end test case artifacts are stored under the directory _src/test/fixture/sdkintegration/e2e-2Org/channel_ .\n\n### TLS connection to Orderer and Peers\n\nIBM Java needs the following properties defined to use TLS 1.2 to get an HTTPS connections to Fabric CA.\n```\n-Dcom.ibm.jsse2.overrideDefaultTLS=true   -Dhttps.protocols=TLSv1.2\n```\n\nCurrently, the pom.xml is set to use netty-tcnative-boringssl for TLS connection to Orderer and Peers, however, you can change the pom.xml (uncomment a few lines) to use an alternative TLS connection via ALPN.\n\n### TLS Environment for SDK Integration Tests\nThe SDK Integration tests can be enabled by adding before the ./fabric restart the follow as:\n\nORG_HYPERLEDGER_FABRIC_SDKTEST_INTEGRATIONTESTS_TLS=true ORG_HYPERLEDGER_FABRIC_SDKTEST_INTEGRATIONTESTS_CA_TLS=--tls.enabled ./fabric.sh restart\n\nThen run the Integration tests with:\n\nORG_HYPERLEDGER_FABRIC_SDKTEST_INTEGRATIONTESTS_TLS=true mvn clean install -DskipITs=false -Dmaven.test.failure.ignore=false javadoc:javadoc\n\n### Chaincode endorsement policies\nPolicies are described in the [Fabric Endorsement Policies document](https://gerrit.hyperledger.org/r/gitweb?p=fabric.git;a=blob;f=docs/endorsement-policies.md;h=1eecf359c12c3f7c1ddc63759a0b5f3141b07f13;hb=HEAD).\nYou create a policy using a Fabric tool ( an example is shown in [JIRA issue FAB-2376](https://jira.hyperledger.org/browse/FAB-2376?focusedCommentId=21121\u0026page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-21121))\nand give it to the SDK either as a file or a byte array. The SDK, in turn, will use the policy when it creates chaincode instantiation requests.\n\n\nTo input a policy to the SDK, use the **ChaincodeEndorsementPolicy** class.\n\nFor testing purposes, there are 2 policy files in the _src/test/resources_ directory\n  * _policyBitsAdmin_ ( which has policy **AND(DEFAULT.admin)** meaning _1 signature from the DEFAULT MSP admin' is required_ )\n  * _policyBitsMember_ ( which has policy **AND(DEFAULT.member)** meaning _1 signature from a member of the DEFAULT MSP is required_ )\n\nand one file in the _src/test/fixture/sdkintegration/e2e-2Orgs/channel_ directory specifically for use in the end to end test scenario\n  * _members_from_org1_or_2.policy_ ( which has policy **OR(peerOrg1.member, peerOrg2.member)** meaning  _1 signature from a member of either organizations peerOrg1, PeerOrg2 is required_)\n\n Alternatively, you can also use ChaincodeEndorsementPolicy class by giving it a YAML file that has the policy defined in it.\n See examples of this in the End2endIT testcases that use _src/test/fixture/sdkintegration/chaincodeendorsementpolicy.yaml_\n The file chaincodeendorsementpolicy.yaml has comments that help understand how to create these policies. The first section\n lists all the signature identities you can use in the policy. Currently, only ROLE types are supported.\n The policy section is comprised of `n-of` and `signed-by` elements.  Then n-of (`1-of` `2-of`) require that many (`n`) in that\n section to be true. The `signed-by` references an identity in the identities section.\n\n### Channel creation artifacts\nChannel configuration files and orderer bootstrap files ( see directory _src/test/fixture/sdkintegration/e2e-2Orgs_ ) are needed when creating a new channel.\nThis is created with the Hyperledger Fabric `configtxgen` tool.  This must be run after `cryptogen` and the directory you're\nrunning in **must** have a generated `crypto-config` directory.\n\nIf `build/bin/configtxgen` tool is not present  run `make configtxgen`\n\nFor v1.0 integration test the commands are:\n\n * build/bin/configtxgen -outputCreateChannelTx foo.tx -profile TwoOrgsChannel -channelID foo\n * build/bin/configtxgen -outputCreateChannelTx bar.tx -profile TwoOrgsChannel -channelID bar\n\nFor v1.1 integration the commands use the v11 profiles in configtx.yaml.\n  You need to for now copy the configtx.yaml in `e2e-20orgs` to the v1.1 directory and run from there:\n * configtxgen -outputBlock orderer.block -profile TwoOrgsOrdererGenesis_v11\n * configtxgen -outputCreateChannelTx bar.tx -profile TwoOrgsChannel_v11 -channelID bar\n * configtxgen -outputCreateChannelTx foo.tx -profile TwoOrgsChannel_v11 -channelID foo\n\nFor v1.2 integration the commands use the v12 profiles in configtx.yaml.\n * configtxgen --configPath . -outputBlock orderer.block -profile TwoOrgsOrdererGenesis_v12\n * configtxgen --configPath .  -outputCreateChannelTx bar.tx -profile TwoOrgsChannel_v12 -channelID bar\n * configtxgen --configPath .  -outputCreateChannelTx foo.tx -profile TwoOrgsChannel_v12 -channelID foo\n This should produce in the `v1.2` directory: bar.tx,foo.tx, orderer.block\n\nFor v1.3 and 1.4 integration, cd to the `src/test/fixture/sdkintegration/e2e-2Orgs/v1.3` directory\nand execute the following commands:\n * configtxgen --configPath . -outputBlock orderer.block -profile TwoOrgsOrdererGenesis_v13\n * configtxgen --configPath . -outputCreateChannelTx foo.tx -profile TwoOrgsChannel_v13 -channelID foo\n * configtxgen --configPath . -outputCreateChannelTx bar.tx -profile TwoOrgsChannel_v13 -channelID bar\n\n This should produce the following files in the same directory: orderer.block, foo.tx, and bar.tx\n\n **Note:** The above describes how this was done. If you redo this there are private key files\n which are produced with unique names which won't match what's expected in the integration tests.\n One example of this is the docker-compose.yaml (search for **_sk**)\n\n\n### GO Lang chaincode\nGo lang chaincode dependencies must be contained in vendor folder.\n For an explanation of this see [Vendor folder explanation](https://blog.gopheracademy.com/advent-2015/vendor-folder/)\n\n\n## Basic Troubleshooting and frequently asked questions:\n\n### Where can I find the Javadoc?\n\nLook in the [Maven repository](http://central.maven.org/maven2/org/hyperledger/fabric-sdk-java/fabric-sdk-java/)\nfor the release in question there should be a file fabric-sdk-java-_\u0026lt;release\u0026gt;_-javadoc.jar\n\nFor SNAPSHOT builds look in [Sonatype repository](https://oss.sonatype.org/content/repositories/snapshots/org/hyperledger/fabric-sdk-java/fabric-sdk-java/)\nFind the release _\u0026lt;release\u0026gt;_-SNAPSHOT directory then search for the latest fabric-sdk-java-\u0026lt;_release_\u0026gt;\u0026#45;_\u0026lt;latest timestamp\u0026gt;_-javadoc.jar\n\n\n### Is Android supported?\nNo.\n\n### Is there an API to query for all channels that exist?\nNo.\n\n### Firewalls, load balancers, network proxies\n\nThese can sometimes silently kill a network connections and prevent them from auto reconnecting. To fix this look at\nadding to Peers, EventHub's and Orderer's connection properties:\n`grpc.NettyChannelBuilderOption.keepAliveTime`, `grpc.NettyChannelBuilderOption.keepAliveTimeout`,\n`grpc.NettyChannelBuilderOption.keepAliveWithoutCalls`. Examples of this are in End2endIT.java\n\n### grpc message frame size exceeds maximum\n\nThe message being returned from the fabric server is too large for the default grpc frame size.\nOn the Peer, Orderer, orEventHub add the property `grpc.NettyChannelBuilderOption.maxInboundMessageSize`\nSee [End2endIT's constructChannel](https://github.com/hyperledger/fabric-sdk-java/blob/b649868113e969d851720c972f660114b64247bc/src/test/java/org/hyperledger/fabric/sdkintegration/End2endIT.java#L846)\n\n\n### Configuration and setting default values - timeouts etc\n\nThe SDK's defaults are all in the file [Config.java](https://github.com/hyperledger/fabric-sdk-java/blob/a2140f9bba57a63c58d9ee8579fea7164bf3beb2/src/main/java/org/hyperledger/fabric/sdk/helper/Config.java#L33-L40)\nThe [config.properties](https://github.com/hyperledger/fabric-sdk-java/blob/a2140f9bba57a63c58d9ee8579fea7164bf3beb2/config.properties)\nalso has some descriptions on what they do.  Most server timeout request can be overridden with the specific request too.\n\n### java.security.InvalidKeyException: Illegal key size\n\nIf you get this error, this means your JDK does not capable of handling unlimited strength crypto algorithms. To fix this issue, You will need to download the JCE libraries for your version of JDK. Please follow the instructions \u003ca href=\"http://stackoverflow.com/questions/6481627/java-security-illegal-key-size-or-default-parameters\"\u003ehere\u003c/a\u003e to download and install the JCE for your version of the JDK.\n\n## Communicating with developers and fellow users.\n Sign into \u003ca href=\"https://chat.hyperledger.org/\"\u003eHyperledger project's Rocket chat\u003c/a\u003e\n For this you will also need a \u003ca href=\"https://identity.linuxfoundation.org/\"\u003eLinux Foundation ID\u003c/a\u003e\n\n Join the \u003cb\u003efabric-sdk-java\u003c/b\u003e channel.\n\n## Reporting Issues\nIf your issue is with building Fabric development environment please discuss this on rocket.chat's #fabric-dev-env channel.\n\nTo report an issue please use: \u003ca href=\"http://jira.hyperledger.org/\"\u003eHyperledger's JIRA\u003c/a\u003e.\nTo login you will need a Linux Foundation ID (LFID) which you get at \u003ca href=\"https://identity.linuxfoundation.org/\"\u003eThe Linux Foundation\u003c/a\u003e\nif you don't already have one.\n\nJIRA Fields should be:\n\u003cdl\u003e\n  \u003cdt\u003eType\u003c/dt\u003e\n  \u003cdd\u003eBug \u003ci\u003eor\u003c/i\u003e New Feature\u003c/dd\u003e\n\n  \u003cdt\u003eComponent\u003c/dt\u003e\n  \u003cdd\u003efabric-sdk-java\u003c/dd\u003e\n  \u003cdt\u003eFix Versions\u003c/dt\u003e\n    \u003cdd\u003ev1.4\u003c/dd\u003e\n\u003c/dl\u003e\n\nPleases provide as much information that you can with the issue you're experiencing: stack traces logs.\n\nPlease provide the output of **java -XshowSettings:properties -version**\n\n### Logging for the SDK can be enabled with setting environment variables:\n\nORG_HYPERLEDGER_FABRIC_SDK_LOGLEVEL=TRACE\n\nORG_HYPERLEDGER_FABRIC_CA_SDK_LOGLEVEL=TRACE\n\nORG_HYPERLEDGER_FABRIC_SDK_DIAGNOSTICFILEDIR=\u0026lt;*full path to directory*\u0026gt; \u0026#35; *dumps protobuf and diagnostic data. Can be produce large amounts of data!*\n\n### Fabric debug\nFabric debug is by default enabled in the SDK docker-compose.yaml file with\n\nOn Orderer:\n\nORDERER_GENERAL_LOGLEVEL=debug\n\nOn peers:\nCORE_LOGGING_LEVEL=DEBUG\n\nFabric CA\nby starting command have the -d parameter.\n\nUpload full logs to the JIRA not just where the issue occurred if possible\n\n\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by/4.0/\"\u003e\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by/4.0/88x31.png\" /\u003e\u003c/a\u003e\u003cbr /\u003eThis work is licensed under a \u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by/4.0/\"\u003eCreative Commons Attribution 4.0 International License\u003c/a\u003e.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupermap%2Fatlab-fabricfaster-sdk-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsupermap%2Fatlab-fabricfaster-sdk-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupermap%2Fatlab-fabricfaster-sdk-java/lists"}