fabric@lists.hyperledger.org Calendar <noreply@...>
Hyperledger Project Quarterly Update Due #tsc-project-update
When:
Thursday, 9 July 2020
Organizer:
community-architects@...
Description:
Please file a project status report for the TSC here:
https://wiki.hyperledger.org/display/TSC/Project+Status+Updates
|
|
Re: Critical: Chaincode package Installation error in Openshift Platform with Fabric v2.1.0 using external chaincode service
#fabric
#externalbuilders
Brett T Logan <brett.t.logan@...>
This is correct. Docker is still the default implementation if none of the externalBuilders you set pass validation. You would need to do more debugging to figure out why the externalBuidlers you specified in `core.yaml` were not picked up (and as such the peer fell back to its default behavior).
Brett Logan
Software Engineer, IBM Blockchain
toggle quoted message
Show quoted text
----- Original message ----- From: keerthycbe@... Sent by: fabric@... To: fabric@... Cc: Subject: [EXTERNAL] [Hyperledger Fabric] Critical: Chaincode package Installation error in Openshift Platform with Fabric v2.1.0 using external chaincode service #fabric #externalbuilders Date: Thu, Jul 9, 2020 12:44 PM Hi All,
We are trying to deploy fabric nodes with external chaincode service option in Openshift platform 4.3. As the Openshift platform doesn't have access to docker daemon for peer to create chaincode container, we are using the external chaincode service feature provided in version 2.0. All our nodes are running 2.1.0 but getting the following error while installing chaincode in peer nodes from the cli container. There should not be any docker dependency as we have moved to the external chainocde option. Please find below the screenshot for error details. Appreciate any help on this.

Thanks and Regards Keerthi
|
|
Critical: Chaincode package Installation error in Openshift Platform with Fabric v2.1.0 using external chaincode service
#fabric
#externalbuilders
Hi All, We are trying to deploy fabric nodes with external chaincode service option in Openshift platform 4.3. As the Openshift platform doesn't have access to docker daemon for peer to create chaincode container, we are using the external chaincode service feature provided in version 2.0. All our nodes are running 2.1.0 but getting the following error while installing chaincode in peer nodes from the cli container. There should not be any docker dependency as we have moved to the external chainocde option. Please find below the screenshot for error details. Appreciate any help on this.  Thanks and Regards Keerthi
|
|
Re: Chain code install approval and commit on existing channel .
Yeah what about when 2 organizations exist on separate servers ? You have to exchange tls keys with secure copy and then run the commit command on one of the servers ?
|
|
Re: Chain code install approval and commit on existing channel .
This document walks you through exactly what you need to do to deploy a chaincode across two orgs with a policy of majority: https://hyperledger-fabric.readthedocs.io/en/latest/deploy_chaincode.html It also includes a troubleshooting section for errors such as yours.
In a nutshell: - org1 admin installs and approves on org1 peer. - org2 admin installs and approves on org2 peer. - either admin can then send the final commit request to both peers.
Each of the approval transactions, and the final commit transaction, get submitted to ordering service to record the transactions on the channel.
Dave Enyeart
p.kirkinezis---07/09/2020 04:25:40 AM---I have a channel with 2 organizations Server 1 Org1 and Server 2 Org2 . My endorsement policy and li
From: p.kirkinezis@... To: fabric@... Date: 07/09/2020 04:25 AM Subject: [EXTERNAL] [Hyperledger Fabric] Chain code install approval and commit on existing channel . Sent by: fabric@...
I have a channel with 2 organizations Server 1 Org1 and Server 2 Org2 . My endorsement policy and lifecycle policy is set to majority . What approach should I apply for approval distribution ? I have to approve the same package id in both server 1 and server 2 and orderer will distribute approval ? Because i am a little confused i only tried the concept on local host. I tried many times but I end up getting endorsement policy failure 2020-07-09 07:38:42.239 UTC [chaincodeCmd] ClientWait -> INFO 001 txid [1e2e5a9c1717f2546fc520d0760012281b2c137f23e4457405aa469f66a96bfd] committed with status (ENDORSEMENT_POLICY_FAILURE) at 192.168.69.20:7001 Error: transaction invalidated with status (ENDORSEMENT_POLICY_FAILURE)
|
|
two proposal responses and failure on commit?
Hello,
I have a contract with one transaction returning a boolean. The transaction is endorsed to just one peer ( peer0.org1.example.com). The transaction executes correctly until the end and returns true, but it fails to commit with the following error:
I noticed that submit(...) generated two proposals (for two peers at peer0.org1.example.com:7051 with different IDs). The method validatePeerResponses returns just one of these proposals as valid, but it fails to commit it by the CommitHandler (it has again two peers of org1!!).
My network is formed by 2 peers, one orderer, and the endorsement policy is majority for all.
Does anyone can explain this behaivour?
Many thanks, Roxana
|
|
Hello,
I have a chaincode with two contracts such that the second contract invoke a transaction of the first one as follows:
class ContractA implements ContractInterface{
.....
@Transaction
public boolean trans1(MyContext ctx, String data) {
...
return result;
}
}
class ContractB implements ContractInterface{
.....
@Transaction
public boolean trans2(MyContext ctx, String data) {
...
Chaincode.Response response = ctx.getStub().invokeChaincode(chaincodeId,
new String[]{ContractA:trans1, "data"});
...
}
}
During the execution of trans2, the invokeChaincode fails with the error: "INVOKE_CHAINCODE failed: transaction ID exists". According to the documentation,
no other transaction will be created by calling invokeChaincode,
therefore, it is correct that the invocation is created with the same
transaction ID.
Is it a bug or am I doing something incorrect in my design?
Many thanks in advance,
Roxana
|
|
Chain code install approval and commit on existing channel .
I have a channel with 2 organizations Server 1 Org1 and Server 2 Org2 . My endorsement policy and lifecycle policy is set to majority .
What approach should I apply for approval distribution ? I have to approve the same package id in both server 1 and server 2 and orderer will distribute approval ? Because i am a little confused i only tried the concept on local host. I tried many times but I end up getting endorsement policy failure 2020-07-09 07:38:42.239 UTC [chaincodeCmd] ClientWait -> INFO 001 txid [1e2e5a9c1717f2546fc520d0760012281b2c137f23e4457405aa469f66a96bfd] committed with status (ENDORSEMENT_POLICY_FAILURE) at 192.168.69.20:7001 Error: transaction invalidated with status (ENDORSEMENT_POLICY_FAILURE)
|
|
Upcoming Event: Hyperledger Fabric Documentation Workgroup call - Eastern hemisphere - Fri, 07/10/2020 6:00am-7:00am
#cal-reminder
fabric@lists.hyperledger.org Calendar <fabric@...>
Reminder: Hyperledger Fabric Documentation Workgroup call - Eastern hemisphere
When:
Friday, 10 July 2020, 6:00am to 7:00am,
(GMT+01:00) Europe/London
Where:https://zoom.us/j/6223336701
View Event
Organizer: Anthony O'Dowd
a_o-dowd@...
+441962816761
Description: Documentation workgroup call. Agenda, minutes and recordings: https://wiki.hyperledger.org/display/fabric/Documentation+Working+Group
|
|
Re: RFC for ledger checkpointing
Let's move this RFC to final comment period. Please provide any remaining feedback in the next week so that we can merge the RFC and plan the delivery for a subsequent Fabric release.
Thanks,
Dave Enyeart
"Manish" ---04/22/2020 12:11:36 PM---Hi folks, An RFC for ledger checkpointing is available now in this PR -
From: "Manish" <manish.sethi@...> To: fabric@... Date: 04/22/2020 12:11 PM Subject: [EXTERNAL] [Hyperledger Fabric] RFC for ledger checkpointing Sent by: fabric@...
Hi folks, An RFC for ledger checkpointing is available now in this PR - https://github.com/hyperledger/fabric-rfcs/pull/27. Any feedback is appreciated. Thanks, Manish
|
|
How to get block with fabric-network 2.0?
v1.x of fabric-client used to have methods using which one could get block by number or hash. For example:
let response_payload =
await channel.queryBlock(parseInt(blockNumber),
peer);
How does one do the same thing using fabric-network API?
|
|
Re: Install Hyperledger Fabric in Raspberry Pi
#fabric
We don't publish images for ARM but it's very easy to build fabric from source. And yes, it is possible to run Fabric on a Pi but only on 64 bit systems as one of the crypto packages used in Fabric only supports 64 bit.
toggle quoted message
Show quoted text
Hello Community, I am trying to set up hyperledger fabric on raspberry Pi armv7 archItecture, raspbian OS, following the instructions of the doc https://hyperledger-fabric.readthedocs.io/en/release-2.1/install.html to install platform specific binaries and docker iamges. But when I run the command
curl -sSL https://bit.ly/2ysbOFE | bash -
I get the following error: Downloading: https://github.com/hyperledger/fabric/releases/download/v2.1.1/hyperledger-fabric-linux-armv7l-2.1.1.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 9 100 9 0 0 24 0 --:--:-- --:--:-- --:--:-- 24
gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now ==> There was an error downloading the binary file.
------> 2.1.1 platform specific fabric binary is not available to download <----
It seems that there is no fabric binary available for armv7 architecture of raspberry. Does anyone know how it is possible to set up hyperledger fabric on raspberry pi? I need 64-bit architecture raspberry and 64-bit OS to isntall it? If I use other SDKs to set up it, it will be ok? Thank you in advance.
|
|
Re: When I run `peer lifecycle chaincode approveformyorg`, I always get the error: ENDORSEMENT_POLICY_FAILURE
Nik
-----fabric@... wrote: -----To: fabric@...From: "Pam Andrejko" Sent by: fabric@...Date: 07/06/2020 08:16AM Subject: [EXTERNAL] Re: [Hyperledger Fabric] When I run `peer lifecycle chaincode approveformyorg`, I always get the error: ENDORSEMENT_POLICY_FAILURE I think the problem here is that you are using org1’s admin identity to execute peer lifecycle chaincode approveformyorg
The approval needs to be done by a peer.
See the new channel tutorial: https://hyperledger-fabric.readthedocs.io/en/latest/create_channel/channel_policies.html#signature-policies The Admins policy can only be satisfied by transactions submitted by an identity with an admin role, while only identities with a peer role can satisfy the Endorsement policy.
Pam
|
|
Re: When I run `peer lifecycle chaincode approveformyorg`, I always get the error: ENDORSEMENT_POLICY_FAILURE
Chris Gabriel <alaskadd@...>
This error can also be seen if you commit chaincode BEFORE approving for each org after installation. The way the sample is written, this is easy to do because most want to install, approve, and commit before exporting the env variables for the next peer org. I made this same mistake the first time I ran the tutorial. I recommend you ./network down and then start again, following the tutorial exactly as written and it should solve your error.
toggle quoted message
Show quoted text
On Jul 6, 2020, at 7:16 AM, Pam Andrejko <pama@...> wrote:
I think the problem here is that you are using org1’s admin identity to execute peer lifecycle chaincode approveformyorg
The approval needs to be done by a peer.
See the new channel tutorial: https://hyperledger-fabric.readthedocs.io/en/latest/create_channel/channel_policies.html#signature-policies
The Admins policy can only be satisfied by transactions submitted by an identity with an admin role, while only identities with a peer role can satisfy the Endorsement policy.
Pam
|
|
Re: When I run `peer lifecycle chaincode approveformyorg`, I always get the error: ENDORSEMENT_POLICY_FAILURE
I think the problem here is that you are using org1’s admin identity to execute peer lifecycle chaincode approveformyorg
The approval needs to be done by a peer.
See the new channel tutorial: https://hyperledger-fabric.readthedocs.io/en/latest/create_channel/channel_policies.html#signature-policies
The Admins policy can only be satisfied by transactions submitted by an identity with an admin role, while only identities with a peer role can satisfy the Endorsement policy.
Pam
|
|
Next Hyperledger Fabric Application Developer Community call -- this Thursday 9th July @ 3pm UTC time: 4pm UK, 11am ET, 8am PT
Paul O'Mahoney <mahoney@...>
dear Fabric Application
Developer,
the next Fabric
Application Developer community call is: Thursday
9th July - 3pm UTC, 4pm UK time (+1), 11am ET (-5 hrs), 8am PT (-8
hrs)
- other
time zones
here. It lasts approx 30-60 mins FYI.
The agenda will
be posted here -> https://wiki.hyperledger.org/display/fabric/Agendas%3A+Fabric+Application+Developer+Community+Call+Meetings
This community
call is held bi-weekly via Zoom
webconference
and is aimed at :
-
helping the worldwide Hyperledger Fabric Application Developer community
grow (eg. developing applications, smart contracts, client apps using the
SDKs, tutorials/demos etc - eg using NodeJS/TypeScript, Java, Go
etc etc)
- helping app developers understand / hear more about exciting new things
in Fabric, eg. features upcoming or work in progress - ie things that appeal
to the developer
- foster more interest, best practices etc in developing applications (eg
developing solutions, use cases) with Hyperledger Fabric.
- opportunity to ask questions of the Fabric team eg. you may have feedback/questions
on your experiences developing solutions with Fabric
- to share stuff you've done with the community, eg sample code / sample
use cases that others may be interested in
If
you wish to share content on a call, just let me know via email direct
or DM me on Rocketchat (ID: mahoney1) and I'll put an item on the agenda.
Provide the following:
- the topic (state whether its presentation, or demo etc)
- the full name of the presenter, and
- approx length of your pitch in minutes
The Zoom webconference
ID is https://zoom.us/my/hyperledger.community
More information
can be found on the community page -> https://wiki.hyperledger.org/display/fabric/Fabric+Application+Developer+Community+Calls
You can get calendar
invites (eg iCal) here
many thanks for
your time - feel free to forward this email if you think it is of interest
to a colleague.
Paul O'Mahony
Community Lead
- Hyperledger Fabric Developer Community
RocketChat: mahoney1
mahoney@...
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
|
|
Re: When I run `peer lifecycle chaincode approveformyorg`, I always get the error: ENDORSEMENT_POLICY_FAILURE
You are submitting from Org1, but your log shows Org2 peer endorsed. You need to submit the approveformyorg transaction from an Org1 admin to an Org1 peer. Then from an Org2 admin to an Org2 peer.
Dave Enyeart
"Mind" ---07/03/2020 05:19:36 AM---I have a network with 3 org. org0 is the orderer, org1 & org2 has 1 peerWhen I install the chaincod
From: "Mind" <shenbin0252@...> To: "fabric" <fabric@...> Date: 07/03/2020 05:19 AM Subject: [EXTERNAL] [Hyperledger Fabric] When I run `peer lifecycle chaincode approveformyorg`, I always get the error: ENDORSEMENT_POLICY_FAILURE Sent by: fabric@...
I have a network with 3 org. org0 is the orderer, org1 & org2 has 1 peerWhen I install the chaincode with each peer. And I use org1’s admin identity to execute the follow common:```peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer1-org0 --channelID mychannel --name iotmanager --version 1.0 --package-id iot_1:5b6d649d9aaa9b19a1d03612b6a4a644574bd1632f12a0524a263fafe4b85100 --sequence 1 --tls true --cafile $PWD/tlscacerts/tls-0-0-0-0-7052.pem```I always get the error like this:``` INFO 001 txid [cf6051d0a0fc825cf683394e00ada5505768bebde6688772694816e25826bcf5] committed with status (ENDORSEMENT_POLICY_FAILURE) atError: transaction invalidated with status (ENDORSEMENT_POLICY_FAILURE)```And this is the peer’s log:```peer1-org2 | 2020-07-03 09:07:47.445 UTC [lifecycle] ApproveChaincodeDefinitionForOrg -> INFO 056 Successfully endorsed chaincode approval with name 'iotmanager', package ID 'iot_1:5b6d649d9aaa9b19a1d03612b6a4a644574bd1632f12a0524a263fafe4b85100', on channel 'mychannel' with definition {sequence: 1, endorsement info: (version: '1.0', plugin: 'escc', init required: false), validation info: (plugin: 'vscc', policy: '12202f4368616e6e656c2f4170706c69636174696f6e2f456e646f7273656d656e74'), collections: ()}peer1-org2 | 2020-07-03 09:07:47.445 UTC [endorser] callChaincode -> INFO 057 finished chaincode: _lifecycle duration: 1ms channel=mychannel txID=9485f26cpeer1-org2 | 2020-07-03 09:07:47.450 UTC [comm.grpc.server] 1 -> INFO 058 unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.19.0.1:32864 grpc.code=OK grpc.call_duration=7.15544mspeer1-org2 | 2020-07-03 09:07:49.471 UTC [gossip.privdata] StoreBlock -> INFO 059 [mychannel] Received block [4] from bufferpeer1-org2 | 2020-07-03 09:07:49.472 UTC [vscc] Validate -> ERRO 05a VSCC error: stateBasedValidator.Validate failed, err validation of endorsement policy for collection _implicit_org_ca-org2 chaincode _lifecycle in tx 4:0 failed: signature set did not satisfy policypeer1-org2 | 2020-07-03 09:07:49.473 UTC [committer.txvalidator] validateTx -> ERRO 05b Dispatch for transaction txId = 9485f26c175008f5e4e2bc92234e8f3ae3d8320acf221f2bed7b685e0d9eec37 returned error: validation of endorsement policy for collection _implicit_org_ca-org2 chaincode _lifecycle in tx 4:0 failed: signature set did not satisfy policypeer1-org2 | 2020-07-03 09:07:49.473 UTC [committer.txvalidator] Validate -> INFO 05c [mychannel] Validated block [4] in 1mspeer1-org2 | 2020-07-03 09:07:49.473 UTC [gossip.privdata] prepareBlockPvtdata -> INFO 05d Successfully fetched all eligible collection private write sets for block [4] channel=mychannelpeer1-org2 | 2020-07-03 09:07:49.473 UTC [valimpl] preprocessProtoBlock -> WARN 05e Channel [mychannel]: Block [4] Transaction index [0] TxId [9485f26c175008f5e4e2bc92234e8f3ae3d8320acf221f2bed7b685e0d9eec37] marked as invalid by committer. Reason code [ENDORSEMENT_POLICY_FAILURE]peer1-org2 | 2020-07-03 09:07:49.484 UTC [kvledger] CommitLegacy -> INFO 05f [mychannel] Committed block [4] with 1 transaction(s) in 10ms (state_validation=0ms block_and_pvtdata_commit=6ms state_commit=1ms) commitHash=[04cbc8cfcf0030fed952b77a2cc7d5df59a9960fec9b475819bfd98525952f9b]peer1-org2 | 2020-07-03 09:07:49.489 UTC [comm.grpc.server] 1 -> INFO 060 streaming call completed grpc.service=protos.Deliver grpc.method=DeliverFiltered grpc.request_deadline=2020-07-03T09:08:17.454Z grpc.peer_address=172.19.0.1:32868 error="context finished before block retrieved: context canceled" grpc.code=Unknown grpc.call_duration=2.03508306s```This is the orderer’s log:```orderer1-org0 | 2020-07-03 09:07:49.459 UTC [orderer.consensus.etcdraft] propose -> INFO 056 Created block [4], there are 0 blocks in flight channel=mychannel node=1orderer1-org0 | 2020-07-03 09:07:49.464 UTC [orderer.consensus.etcdraft] writeBlock -> INFO 057 Writing block [4] (Raft index: 6) to ledger channel=mychannel node=1orderer1-org0 | 2020-07-03 09:07:49.491 UTC [orderer.common.broadcast] Handle -> WARN 058 Error reading from 172.19.0.1:39116: rpc error: code = Canceled desc = context canceledorderer1-org0 | 2020-07-03 09:07:49.491 UTC [comm.grpc.server] 1 -> INFO 059 streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Broadcast grpc.peer_address=172.19.0.1:39116 error="rpc error: code = Canceled desc = context canceled" grpc.code=Canceled grpc.call_duration=2.049287023s```I've tried everything, nothing seems to work. Can anyoneshed some light?Thanks in advance. Below are the configtx.yaml:```Organizations: - &Org0 Name: ca-org0 ID: ca-org0 MSPDir: orderer1-org0 Policies: Readers: Type: Signature Rule: "OR('ca-org0.member')" Writers: Type: Signature Rule: "OR('ca-org0.member')" Admins: Type: Signature Rule: "OR('ca-org0.admin')" OrdererEndpoints: - orderer1-org0:7050 - &Org1 Name: ca-org1 ID: ca-org1 MSPDir: peer1-org1 Policies: Readers: Type: Signature Rule: "OR('ca-org1.member')" Writers: Type: Signature Rule: "OR('ca-org1.member')" Admins: Type: Signature Rule: "OR('ca-org1.admin')" Endorsement: Type: Signature Rule: "OR('ca-org1.peer')" AnchorPeers: - Host: peer1-org1 Port: 7051 - &Org2 Name: ca-org2 ID: ca-org2 MSPDir: peer1-org2 Policies: Readers: Type: Signature Rule: "OR('ca-org2.member')" Writers: Type: Signature Rule: "OR('ca-org2.member')" Admins: Type: Signature Rule: "OR('ca-org2.admin')" Endorsement: Type: Signature Rule: "OR('ca-org2.peer')" AnchorPeers: - Host: peer1-org2 Port: 7051Capabilities: Channel: &ChannelCapabilities V2_0: true Orderer: &OrdererCapabilities V2_0: true Application: &ApplicationCapabilities V2_0: trueChannel: &ChannelDefaults Policies: Readers: Type: ImplicitMeta Rule: "ANY Readers" Writers: Type: ImplicitMeta Rule: "ANY Writers" Admins: Type: ImplicitMeta Rule: "ANY Admins" Capabilities: <<: *ChannelCapabilitiesApplication: &ApplicationDefaults Organizations: Policies: Readers: Type: ImplicitMeta Rule: "ANY Readers" Writers: Type: ImplicitMeta Rule: "ANY Writers" Admins: Type: ImplicitMeta Rule: "MAJORITY Admins" LifecycleEndorsement: Type: ImplicitMeta Rule: "MAJORITY Endorsement" Endorsement: Type: ImplicitMeta Rule: "MAJORITY Endorsement" Capabilities: <<: *ApplicationCapabilitiesOrderer: &OrdererDefaults OrdererType: etcdraft EtcdRaft: Consenters: - Host: orderer1-org0 Port: 7050 ClientTLSCert: orderer1-org0/tls-msp/signcerts/cert.pem ServerTLSCert: orderer1-org0/tls-msp/signcerts/cert.pem BatchTimeout: 2s BatchSize: MaxMessageCount: 10 AbsoluteMaxBytes: 99 MB PreferredMaxBytes: 512 KB Organizations: Policies: Readers: Type: ImplicitMeta Rule: "ANY Readers" Writers: Type: ImplicitMeta Rule: "ANY Writers" Admins: Type: ImplicitMeta Rule: "MAJORITY Admins" BlockValidation: Type: ImplicitMeta Rule: "ANY Writers"Channel: &ChannelDefaults Policies: Readers: Type: ImplicitMeta Rule: "ANY Readers" Writers: Type: ImplicitMeta Rule: "ANY Writers" Admins: Type: ImplicitMeta Rule: "MAJORITY Admins" Capabilities: <<: *ChannelCapabilitiesProfiles: OrgsOrdererGenesis: <<: *ChannelDefaults Orderer: <<: *OrdererDefaults Organizations: - *Org0 Capabilities: <<: *OrdererCapabilities Consortiums: SampleConsortium: Organizations: - *Org1 - *Org2 OrgsChannel: Consortium: SampleConsortium <<: *ChannelDefaults Application: <<: *ApplicationDefaults Organizations: - *Org1 - *Org2 Capabilities: <<: *ApplicationCapabilities```
|
|
Re: Test cases for Chaincode written with fabric-contract-api
Brett T Logan <brett.t.logan@...>
With the new chaincode model you can simply use standard mocking tools in your language of choice. While I don't have experience with mocking NodeJS, a quick Google search show's multiple mocking tools that can be used to do the job.
In Golang this looks something like this where I've mocked the actual interface you need to test chaincode:
//go:generate counterfeiter -o mock/transaction.go -fake-name TransactionContext . TransactionContext
type TransactionContext interface {
contractapi.TransactionContextInterface
}
And then you simply call:
"go generate ."
from the directory and you get an auto generated mock you can use for testing. The same general principle applies across languages, just implement it using the language and framework of you choice.
Brett Logan
Software Engineer, IBM Blockchain
toggle quoted message
Show quoted text
----- Original message ----- From: "Abhijeet Bhowmik" <abhijeet@...> Sent by: fabric@... To: fabric@... Cc: Subject: [EXTERNAL] [Hyperledger Fabric] Test cases for Chaincode written with fabric-contract-api Date: Sun, Jul 5, 2020 1:08 PM
Dear all,
Hope everyone is doing well. I have run into a dire situation where I have a bulk of chaincode written but can't find a way to do offline testing. Earlier we used fabric-shim for cc development but now switched to fabric-contract-api due to cleanliness and easy handling of chaincode. But, what we used earlier to write test ''@theledger/fabric-mock-stub" now no longer works as it expects ChaincodeInterface and what we have is a class extending Contract class. So now the question arises, how could we do it for Contract API? Deploying untested chaincode is unaffordable. I have gone through documentation, online forums and other helpful resources but to no avail. Please advise.
Thank you. Regards.
Abhijeet Bhowmik
|
|
Test cases for Chaincode written with fabric-contract-api
Abhijeet Bhowmik <abhijeet@...>
Dear all,
Hope everyone is doing well. I have run into a dire situation where I have a bulk of chaincode written but can't find a way to do offline testing. Earlier we used fabric-shim for cc development but now switched to fabric-contract-api due to cleanliness and easy handling of chaincode. But, what we used earlier to write test ''@theledger/fabric-mock-stub" now no longer works as it expects ChaincodeInterface and what we have is a class extending Contract class. So now the question arises, how could we do it for Contract API? Deploying untested chaincode is unaffordable. I have gone through documentation, online forums and other helpful resources but to no avail. Please advise.
Thank you. Regards. Abhijeet Bhowmik
|
|
Hyperledger Fabric Documentation Workgroup call - Western hemisphere - Fri, 07/03/2020
#cal-notice
fabric@lists.hyperledger.org Calendar <noreply@...>
Hyperledger Fabric Documentation Workgroup call - Western hemisphere
When:
Friday, 3 July 2020
4:00pm to 5:00pm
(GMT+01:00) Europe/London
Where:
https://zoom.us/j/6223336701
Organizer:
a_o-dowd@...
+441962816761
Description:
Documentation workgroup call. Agenda, minutes and recordings :https://wiki.hyperledger.org/display/fabric/Documentation+Working+Group
|
|