some files are missing from the Fabric samples, docker images, and binaries download like the first-network folder and others. how do I get the missing files imported on vscode?
At the time of writing, first-network no longer exists as a Hyperledger Fabric sample. If you are using an old versions of Fabric (for example, v1.4) and the corresponding documentation, which does describe first-network, you will need to make sure you specify the appropriate version when installing Fabric components so it pulls the samples from the correct branch of the samples repository. For Fabric v1.4, that would be this branch:
https://github.com/hyperledger/fabric-samples/tree/release-1.4
If you are using the latest version of the Fabric and its documentation, test-network is now used to deploy a sample network and chaincode.
Related
I am trying to install and deploy the chaincode as external service following the instructions here
I have created the couchdb indexes following the instructions here and package the chaincode as:
package the META-INF directory along with the connection.json which outputs "code.tar.gz"
package the META-INF directory along with "code.tar.gz" and "metadata.json" which outputs "cc_name.tgz"
Both of these methods resulted in error while installing the chaincode using peer lifecycle command.
I installed the chaincode without packaging the META-INF (couchd indexes) and everything works as expected. But for blockchain application I have few situations where I need to query data from couchdb and update the assets in the ledger.
What's the correct way to package the couchdb indexes when deploying the chaincode externally?
Inside code.tar.gz:
mychaincode#0.0.1.tar.gz -> code.tar.gz-> META-INF/statedb/couchdb/indexes/myindex.json.
Anyway, I would advise to use IBM Blockchain Platform VSCode extension to ease the packaging and other kind of operations.
To make use of your indexes, use use_index in your rich queries (https://docs.couchdb.org/en/3.1.1/api/database/find.html).
We have just migrated to Fabric 2.0 and all of our components (peer, orderer, binaries) are at v2.0.0.
Our Fabric Node SDK is still at v1.4.8 and most of its functions are working such as
createChannel, updateChannel, installChaincode etc.
However, when I try to use Channel.sendInstantiateProposal, I get an error
"Channel <channel_name> has been migrated to the new lifecycle. LSCC is now read only".
I get the fact that this is likely a mismatch between the SDK and the Fabric components, however, is there any way to get this to work besides upgrading to Fabric Node SDK 2.0?
The configtx.yaml file used to bring up the network has capabilities all set to V2.0:true. The notes indicate that V2.0 capabilities are non-backward compatible so I am assuming I cannot set them to V1.4 and still work with Fabric 2.0 components.
Thanks
In this case, the v1.4 SDK is compatible with v2, but the new chaincode architecture in v2 does not have an instantiation of the chaincode as part of its lifecycle. Instead, it uses a new, four-step process as defined in the official documentation. This is why the v1.4 SDK is failing at that line in particular, where you call Channel.sendInstantiateProposal(). The SDK is working fine, but that operation is not supported by the new chaincode lifecycle.
As for a solution, unfortunately, in v2 SDK there is no way to perform administrative tasks, and you have to use the Peer CLI for such operations.
The official documentation seems to confirm your assumption that SDKs are not necessarily forward-compatible when it comes to new features, such as the new chaincode lifecycle (see the blue 'Note' box).
Problem:
I am very new to Hyperledger Fabric. I have cloned the fabric-samples repository and built a network using it. The problem I have is, should I place chaincode inside the chaincode folder of the fabric-samples?.
Yes, you should if you are using the examples but you can change the path as you like.
I recommend you to read the documentation first.
Choosing a Location for the Code
I am quite new to Hyperledger Blockchain and have started with exploring 2 sample codes.
(1) https://medium.freecodecamp.org/ultimate-end-to-end-tutorial-to-create-an-application-on-blockchain-using-hyperledger-3a83a80cbc71 - where creating an application using hyperledger was taught - through creating .bna, .card files, deploying them etc. Also saw that an Angular extension is supported, giving the UI.
(2) Classic first-network http://hyperledger-fabric.readthedocs.io/en/release-1.1/build_network.html - where chaincode was deployed etc.
My question is, how can I get a UI for (2),like I did in (1)? It was quite convenient.
In the First tutorial, you used Hyperledger Composer to create a BNA which is a friendly way to create chaincode, and there is an Angular Application generator included.
In the second you directly installed some chaincode on to Fabric without a UI (and without using Composer. In this case you would have to write the UI yourself. In the first example you can build your own app by extending the generated app.
Composer is a tool that makes it easy and fast to create chaincode and applications to run on Fabric. If you don't use Composer you do have some more flexibility, but you have to do more work yourself.
My version of composer-cli is 0.18.1
I found connection.json in fabric-tools's subDictionary didn't have grpcOptions and tlsCACerts option.
And
connection.json in the demo of first-network have.
So,I want to what determines it ?
fabric-tools `subDirectory' you mean ? The connection profile provided for the starter Dev Fabric network (to enable you to get going with Composer) is a simple connection.json file for a singular, simple org - its used for the Dev bootstrap 'PeerAdmin' card built here in 'Steps Three' to 'Step Five' - so that it can deploy a sample Composer business network on the Fabric channel the connection.json is configured to use.
Fabric is the underlying blockchain infrastructure - and first-network is a sample of that to generate the necessary Fabric crypto material and containers. You will see use of grpcOptions in the 'next' stream docs - see multi-org tutorial here -> https://hyperledger.github.io/composer/next/tutorials/deploy-to-fabric-multi-org