smcnamara (Thu, 15 Mar 2018 15:27:15 GMT):
Welcome to Caliper!
VipinB (Thu, 15 Mar 2018 15:56:58 GMT):
Has joined the channel.
VipinB (Thu, 15 Mar 2018 15:57:04 GMT):
Yo!
smcnamara (Thu, 15 Mar 2018 15:58:55 GMT):
Hey @VipinB good to have you here. Thanks for the support earlier.
VipinB (Thu, 15 Mar 2018 15:59:07 GMT):
NP
tkuhrt (Thu, 15 Mar 2018 16:23:10 GMT):
smcnamara
cbf (Thu, 15 Mar 2018 16:51:20 GMT):
Has joined the channel.
tkuhrt (Thu, 15 Mar 2018 16:52:22 GMT):
Being new to Caliper, what are the set of use cases that are supported out of the box?
tkuhrt (Thu, 15 Mar 2018 16:55:19 GMT):
New mailing list created: https://lists.hyperledger.org/mailman/listinfo/hyperledger-caliper
tkuhrt (Thu, 15 Mar 2018 16:55:19 GMT):
New mailing list created: https://lists.hyperledger.org/mailman/listinfo/hyperledger-caliper
tkuhrt (Thu, 15 Mar 2018 16:55:30 GMT):
sstone1 (Thu, 15 Mar 2018 17:14:37 GMT):
Has joined the channel.
sstone1 (Thu, 15 Mar 2018 17:15:45 GMT):
congrats from the composer project! :wave:
sstone1 (Thu, 15 Mar 2018 17:15:51 GMT):
we're big fans of caliper, @nkl199 has been using it to automate our performance testing
nkl199 (Thu, 15 Mar 2018 17:15:51 GMT):
Has joined the channel.
silliman (Thu, 15 Mar 2018 17:37:06 GMT):
Has joined the channel.
ikocsis (Thu, 15 Mar 2018 18:20:48 GMT):
Has joined the channel.
nage (Thu, 15 Mar 2018 18:42:21 GMT):
Has joined the channel.
smcnamara (Thu, 15 Mar 2018 18:59:36 GMT):
Thanks @sstone1 and good to hear you’re getting value from it.
smcnamara (Thu, 15 Mar 2018 19:00:44 GMT):
Bear with us as we transition the project over to HL and then pls jump in with PRs, questions and feedback!
Dan (Thu, 15 Mar 2018 20:24:58 GMT):
Has joined the channel.
minollo (Thu, 15 Mar 2018 20:52:23 GMT):
Has joined the channel.
Dan (Thu, 15 Mar 2018 21:14:56 GMT):
congrats from #sawtooth!
Haojun (Fri, 16 Mar 2018 07:59:23 GMT):
Has joined the channel.
sillysachin (Fri, 16 Mar 2018 10:11:56 GMT):
Has joined the channel.
mwagner (Fri, 16 Mar 2018 19:43:18 GMT):
Has joined the channel.
praspadm (Sat, 17 Mar 2018 04:50:33 GMT):
Has joined the channel.
Senthil1 (Sun, 18 Mar 2018 04:12:03 GMT):
Has joined the channel.
tallharish (Sun, 18 Mar 2018 15:07:39 GMT):
Has joined the channel.
ascatox (Sun, 18 Mar 2018 15:48:59 GMT):
Has joined the channel.
hurf (Mon, 19 Mar 2018 01:11:36 GMT):
Has joined the channel.
MWard 2 (Mon, 19 Mar 2018 12:35:41 GMT):
Has joined the channel.
nkl199 (Mon, 19 Mar 2018 13:05:50 GMT):
+1 to @sstone1 comment above - big fan right here :thumbsup:
mrkiouak (Mon, 19 Mar 2018 13:58:35 GMT):
Has joined the channel.
vanitas92 (Mon, 19 Mar 2018 15:14:28 GMT):
Has joined the channel.
rjones (Tue, 20 Mar 2018 01:55:04 GMT):
Has joined the channel.
Haojun (Tue, 20 Mar 2018 02:02:03 GMT):
Hi @rjones, there are some folks on the original caliper repo, any way to let them auto redirect to the new repo?
Haojun (Tue, 20 Mar 2018 02:02:15 GMT):
fork
rjones (Tue, 20 Mar 2018 02:02:43 GMT):
sadly, no
rjones (Tue, 20 Mar 2018 02:03:18 GMT):
github only gives one redirect, once you create a new repo it breaks it
rjones (Tue, 20 Mar 2018 02:03:46 GMT):
@Haojun what are the github IDs of the people who will have commit access to caliper?
Haojun (Tue, 20 Mar 2018 02:05:15 GMT):
OK... can we restore the archived repo, sign the commits and re-transfer the repo?
rjones (Tue, 20 Mar 2018 02:06:13 GMT):
how are you going to do that? `filter-branch` ?
rjones (Tue, 20 Mar 2018 02:06:41 GMT):
everyone will need to sign each individual commit
rjones (Tue, 20 Mar 2018 02:08:37 GMT):
if you look at https://github.com/hyperledger-archives, you'll see original repos for the `fabric` projects. they all went through the squash commit.
rjones (Tue, 20 Mar 2018 02:08:47 GMT):
also, all of the `sawtooth` repos had this process
Haojun (Tue, 20 Mar 2018 02:08:54 GMT):
OK,I see. Please give commit permission to feihujiang and me
rjones (Tue, 20 Mar 2018 02:09:04 GMT):
what is your github id?
Haojun (Tue, 20 Mar 2018 02:09:09 GMT):
haojun
rjones (Tue, 20 Mar 2018 02:10:21 GMT):
OK invite sent
rjones (Tue, 20 Mar 2018 02:11:09 GMT):
great, I see you accepted.
rjones (Tue, 20 Mar 2018 02:11:36 GMT):
do you want me to walk you through a squash commit?
Haojun (Tue, 20 Mar 2018 02:11:52 GMT):
Sure, that would be helpful
rjones (Tue, 20 Mar 2018 02:12:02 GMT):
OK. I'll do that in PM
rjones (Tue, 20 Mar 2018 02:12:06 GMT):
Haojun
Haojun (Tue, 20 Mar 2018 02:12:07 GMT):
Thanks
rjones (Tue, 20 Mar 2018 03:22:17 GMT):
https://hyperledger.github.io/caliper/
PrashantS (Tue, 20 Mar 2018 03:56:09 GMT):
Has joined the channel.
sillysachin (Tue, 20 Mar 2018 04:25:47 GMT):
how can i help with this project, i am beginner and going through setting up of hyperledger fabric and composer based networks
xcr (Tue, 20 Mar 2018 07:20:14 GMT):
Has joined the channel.
xcr (Tue, 20 Mar 2018 07:23:12 GMT):
hi, i think caliper is an interesting project for benchmarking the own blockchain system. however i am struggling with sawtooth api 0.8 as we use 1.0.1 and i wonder are there are plans to update the sawtooth adapter to the new sdk :) unfortunatelly i don't know nodejs and even then probably could not translate much as i have no idea about the differences of 0.8 and 1.0.1
Haojun (Tue, 20 Mar 2018 07:58:50 GMT):
@sillysachin , thanks for your willing to help. Be free to submit github issues or start a discussion here if you have any ideas to improve the project
Haojun (Tue, 20 Mar 2018 08:01:07 GMT):
@xcr, as far as I know, some people from Sawtooth is testing Caliper and will help to support v1.0
xcr (Tue, 20 Mar 2018 08:02:54 GMT):
it's really hard with so many new techniques and languages. with java i might probably help ;)
StevenXu (Tue, 20 Mar 2018 08:49:17 GMT):
Has joined the channel.
AkshayJindal (Tue, 20 Mar 2018 09:03:50 GMT):
Has joined the channel.
ChrisMcQueenDevelopment (Tue, 20 Mar 2018 10:24:45 GMT):
Has joined the channel.
davidkhala (Tue, 20 Mar 2018 10:49:59 GMT):
Has joined the channel.
davidkhala (Tue, 20 Mar 2018 10:55:43 GMT):
Hi all, glad to know that califer is launched! I am a node-sdk contributor for fabric. Also willing to help on nodejs parts
zhmz1326 (Tue, 20 Mar 2018 11:43:37 GMT):
Has joined the channel.
ricotmo (Tue, 20 Mar 2018 13:07:22 GMT):
Has joined the channel.
jworthington (Tue, 20 Mar 2018 13:08:22 GMT):
Has joined the channel.
rolland (Tue, 20 Mar 2018 14:22:28 GMT):
Has joined the channel.
xcr (Tue, 20 Mar 2018 14:33:27 GMT):
the nodejs part of sawtooth might need some help. i tried but don't understand much there.
btw: is it planned to include this smallbank transaction amily into the tests?
Juanan_Tejero (Tue, 20 Mar 2018 16:27:51 GMT):
Has joined the channel.
davidkhala (Tue, 20 Mar 2018 16:33:02 GMT):
And where will issues be managed, github directly or gerrit?
rjones (Tue, 20 Mar 2018 16:36:52 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=KNnYSjsKmq2ZTNSjD) @davidkhala I think they are using github issues, based on the comment above
Henni (Tue, 20 Mar 2018 16:59:49 GMT):
Has joined the channel.
nkl199 (Tue, 20 Mar 2018 17:31:34 GMT):
@Haojun - I have a somewhat large PR that will be inbound soon containing changes required to automate performance tests for Hyperledger Composer against sample networks that we publish
nkl199 (Tue, 20 Mar 2018 17:31:34 GMT):
@Haojun - I have a somewhat large PR that will be inbound soon containing changes/additions required to automate performance tests for Hyperledger Composer against sample networks that we publish
rjones (Tue, 20 Mar 2018 17:40:22 GMT):
@nkl199 please ensure your commit is signed. `git commit -s ...`
nkl199 (Tue, 20 Mar 2018 17:47:03 GMT):
:thumbsup: always!
ShikarSharma (Tue, 20 Mar 2018 22:35:32 GMT):
Has joined the channel.
Vthot4 (Tue, 20 Mar 2018 23:27:37 GMT):
Has joined the channel.
Haojun (Wed, 21 Mar 2018 01:30:54 GMT):
@davidkhala , great to have a contributor from fabric node-sdk to help review and improve the code! Let's use github issues for now
rjones (Wed, 21 Mar 2018 01:39:50 GMT):
Has left the channel.
klenik (Wed, 21 Mar 2018 10:22:05 GMT):
Has joined the channel.
neewy (Wed, 21 Mar 2018 14:39:38 GMT):
Has joined the channel.
neewy (Wed, 21 Mar 2018 14:41:10 GMT):
@Haojun I've noticed that Caliper is in archives and also in regular repo, how come? :) https://github.com/hyperledger/caliper
neewy (Wed, 21 Mar 2018 14:41:28 GMT):
Also, when TSC call is scheduled for your progress?
neewy (Wed, 21 Mar 2018 14:41:49 GMT):
We are going to get it working with a latest NodeJS and Iroha version, so expect a PR :)
SriniH 1 (Wed, 21 Mar 2018 21:28:56 GMT):
Has joined the channel.
tkuhrt (Thu, 22 Mar 2018 00:35:14 GMT):
@neewy : https://wiki.hyperledger.org/groups/tsc/project-update-schedule I added Caliper to next quarter's report schedule
suntoe (Thu, 22 Mar 2018 03:47:29 GMT):
Has joined the channel.
floatware (Thu, 22 Mar 2018 05:07:59 GMT):
Has joined the channel.
grice_32 (Thu, 22 Mar 2018 14:29:17 GMT):
Has joined the channel.
Akash76 (Thu, 22 Mar 2018 17:43:49 GMT):
Has joined the channel.
grkvlt (Thu, 22 Mar 2018 19:07:37 GMT):
Has joined the channel.
floatware (Thu, 22 Mar 2018 21:03:36 GMT):
Has left the channel.
CarlXK (Fri, 23 Mar 2018 07:41:04 GMT):
Has joined the channel.
amit_agarwal (Fri, 23 Mar 2018 09:57:22 GMT):
Has joined the channel.
indira.kalagara (Fri, 23 Mar 2018 12:51:34 GMT):
Has joined the channel.
mogamboizer (Fri, 23 Mar 2018 17:42:45 GMT):
Has joined the channel.
silliman (Fri, 23 Mar 2018 18:39:29 GMT):
What does NBI stand for?
klenik (Fri, 23 Mar 2018 18:41:43 GMT):
North Bound Interface. It is an abstraction layer above the different blockchain platforms, so the callback modules can be implemented in a blockchain platform-independent way.
silliman (Fri, 23 Mar 2018 18:43:09 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=3zzJgjMW5ueeaEThd) @klenik thank you
wangdong (Sun, 25 Mar 2018 15:24:34 GMT):
Has joined the channel.
chessequality (Mon, 26 Mar 2018 07:11:57 GMT):
Has joined the channel.
jpayne23 (Mon, 26 Mar 2018 14:34:02 GMT):
Has joined the channel.
Tuoba (Mon, 26 Mar 2018 20:34:41 GMT):
Has joined the channel.
sbh (Tue, 27 Mar 2018 07:54:51 GMT):
Has joined the channel.
smcnamara (Tue, 27 Mar 2018 13:34:19 GMT):
@Haojun Can you take a look at the metrics document, in particular the section on transaction latency under case 1 to see if the definitions are useful to caliper
smcnamara (Tue, 27 Mar 2018 13:34:19 GMT):
@Haojun Can you take a look at the metrics document, in particular the section on transaction latency under case 1 to see if the definitions are useful to caliper. it was discussed on the PSWG today. happy to chat offline about it.
smcnamara (Tue, 27 Mar 2018 13:44:40 GMT):
specifically we discussed measuring trx latency from 3 perspectives;
smcnamara (Tue, 27 Mar 2018 13:44:54 GMT):
1. client side / observer - i.e the test harness
smcnamara (Tue, 27 Mar 2018 13:44:54 GMT):
1. client side / observer - i.e measure from the POV of the test harness itself
smcnamara (Tue, 27 Mar 2018 13:45:14 GMT):
2. blocktime - typically defined by the SUT itself
smcnamara (Tue, 27 Mar 2018 13:45:14 GMT):
2. blocktime - typically defined by the SUT itself. this may be fixed or variable based on the specific SUT
smcnamara (Tue, 27 Mar 2018 13:45:45 GMT):
3. trx and block propagation _amongst peers_
smcnamara (Tue, 27 Mar 2018 13:45:45 GMT):
3. trx and block propagation _amongst peers_ - perhaps recorded as the distribution or min/max/avg measurements of the 2 dimensions
punit 4 (Tue, 27 Mar 2018 20:31:32 GMT):
Has joined the channel.
punit 4 (Tue, 27 Mar 2018 20:34:52 GMT):
I want to start contributing to this project. Where can I start with?
About me:
Hello I'm Punit Agarwal, an open-source contributor and a blockchain enthusiast. I am currently pursuing my undergraduate studies at Computer Science Engineering Department of The LNM Institute of Information Technology, India. I have been in programming for 4 years now. I started out with C/C++ in my intermediate studies and moved ahead to try my hand at JavaScript and Go. I have a knowledge on Hyperledger frameworks like Hyperledger Fabric and Hyperledger Composer. I have earned IBM badges for IBM Blockchain Foundation Developer and IBM Blockchain Essentials courses. I successfully completed the blockchain course on EdX, by The Linux Foundation.
Haojun (Wed, 28 Mar 2018 01:35:27 GMT):
@smcnamara , I've read the section before and have no special comments. Point 1 & 2 are what we do in caliper now.
Haojun (Wed, 28 Mar 2018 01:47:15 GMT):
Regarding point 3, what's the meaning of 'recorded as the distribution or ......'? Now caliper get the tx status from a single peer (although different caliper client may select different peers if you use multiple clients at the same time to run the test), and I agree measuring with different peers may give different latency value even for the same transaction.
smcnamara (Wed, 28 Mar 2018 08:53:10 GMT):
thanks for clarifying 1 & 2 @Haojun
smcnamara (Wed, 28 Mar 2018 08:54:10 GMT):
on 3 - there was a discussion about measuring propagation amongst peers. Its not right or wrong - just another metric that might be interesting to measure.
smcnamara (Wed, 28 Mar 2018 08:56:10 GMT):
Perhaps by harvesting all the node/peer logs we could calculate the latencies for trx and block propagation.
wangdong (Wed, 28 Mar 2018 09:11:37 GMT):
there are two dir in benchmark: simple and drm. what is the difference?
Haojun (Wed, 28 Mar 2018 09:48:02 GMT):
@wangdong they are two different test cases. The 'simple' is for a simple bank scenario, and 'drm' is for digital rights management scenario. We plan to provide some out of box test cases for typical DLT scenarios, and users can run the test which they interest in. But we don't have much resource on that now.
wangdong (Wed, 28 Mar 2018 13:36:28 GMT):
@Haojun great, thanks for the explanation.
KOttoni (Wed, 28 Mar 2018 16:50:59 GMT):
Has joined the channel.
karthikworks (Wed, 28 Mar 2018 17:53:24 GMT):
Has joined the channel.
srinivasan23 (Thu, 29 Mar 2018 05:46:24 GMT):
Has joined the channel.
srinivasan23 (Thu, 29 Mar 2018 06:22:57 GMT):
How to integrate a project which was built using hyperledger composer with caliper?
nkl199 (Thu, 29 Mar 2018 07:15:14 GMT):
@srinivasan23 - there is PR pending in Caliper for just that :)
nkl199 (Thu, 29 Mar 2018 07:25:33 GMT):
If you wanted you could pull my branch to try it out, but it will only work for Composer v0.19.0 and above - we recently released (yesterday) with breaking API changes, the PR contains updates to account with those ... there are no more breaking changes planned, if they are I'll make sure the Composer plugin for Caliper can cope with them ;-)
wangdong (Thu, 29 Mar 2018 07:38:56 GMT):
@nkl199 would you please give the link? I did not find the PR link
wangdong (Thu, 29 Mar 2018 07:38:59 GMT):
thanks
nkl199 (Thu, 29 Mar 2018 09:13:14 GMT):
@wangdong - the PR link is [here](https://github.com/hyperledger/caliper/pull/13) but you can go direct to my branch [here](https://github.com/nklincoln/caliper-1/tree/add-composer-plugin) if you wanted to get going before the PR is (hopefully) merged into master
srinivasan23 (Thu, 29 Mar 2018 11:01:31 GMT):
@nkl199 very glad to hear!! great! thanks :)
koshatnik (Thu, 29 Mar 2018 12:56:28 GMT):
Has joined the channel.
dara652 (Sat, 31 Mar 2018 01:51:25 GMT):
Has joined the channel.
gen_el (Sat, 31 Mar 2018 03:54:03 GMT):
Has joined the channel.
mctux (Sat, 31 Mar 2018 15:23:57 GMT):
Has joined the channel.
thalisson (Sun, 01 Apr 2018 02:40:06 GMT):
Has joined the channel.
wangdong (Mon, 02 Apr 2018 01:48:18 GMT):
Thanks. @nkl199
wangdong (Mon, 02 Apr 2018 02:00:22 GMT):
What I want actually is backlog and roadmap of this project.
olutesting (Mon, 02 Apr 2018 02:40:59 GMT):
Has joined the channel.
rock_martin (Mon, 02 Apr 2018 08:10:30 GMT):
Has joined the channel.
wutongtree (Mon, 02 Apr 2018 11:34:35 GMT):
Has joined the channel.
kerokhin (Mon, 02 Apr 2018 15:33:54 GMT):
Has joined the channel.
dklesev (Tue, 03 Apr 2018 23:54:12 GMT):
Has joined the channel.
thomasknoll (Wed, 04 Apr 2018 01:30:57 GMT):
Has joined the channel.
rkrish82 (Wed, 04 Apr 2018 04:10:25 GMT):
Has joined the channel.
nimeshpr (Wed, 04 Apr 2018 23:59:19 GMT):
Has joined the channel.
rkrish82 (Thu, 05 Apr 2018 02:58:08 GMT):
Please some one review this PR - https://github.com/hyperledger/caliper/pull/19
rock_martin (Thu, 05 Apr 2018 11:47:32 GMT):
Hi, I am running caliper on hyperledger fabric 1.0.5 in benchmark folder under caliper by :node main.js -c config-fabric.json -n fabric.json, after that getting failure in childprocess test number 6. ANyone let me know for the help, attaching screenchot too
rock_martin (Thu, 05 Apr 2018 11:47:52 GMT):
Screenshot from 2018-04-05 17-15-03.png
rock_martin (Thu, 05 Apr 2018 11:48:48 GMT):
please let me know if anyone successfully checked it on fabric. Thanks in advance
rock_martin (Thu, 05 Apr 2018 15:19:02 GMT):
It worked anyhow,need to know for zookeeper service ? Can anyone let me know
vivekgovekar (Thu, 05 Apr 2018 20:34:29 GMT):
Has joined the channel.
hey.viv (Thu, 05 Apr 2018 20:50:08 GMT):
Has joined the channel.
sanity404 (Thu, 05 Apr 2018 21:26:48 GMT):
Has joined the channel.
Haojun (Sun, 08 Apr 2018 07:46:00 GMT):
hi @rock_martin , do you still have any problem with the latest version? If you are running benchmark under local model (clients type is set to local in configuration), these's no need to start zookeeper service
rock_martin (Mon, 09 Apr 2018 05:45:24 GMT):
@Haojun Thanks . !!
ChrisMcQueenDevelopment (Mon, 09 Apr 2018 15:35:21 GMT):
Hey,
Struggling to test my own network, can anyone give a bit of clarification?
The example is running fine
I'm following: https://github.com/hyperledger/caliper/blob/master/docs/Composer.md
It says to put the bna under a /contract/composer/bna folder.. But I noticed all the other examples have the lib and models, so I'm guessing it creates the bna for you in those examples?
tkuhrt (Mon, 09 Apr 2018 21:30:16 GMT):
@ChrisMcQueenDevelopment : Was this intended for the #caliper or the #composer channel?
tkuhrt (Mon, 09 Apr 2018 21:30:34 GMT):
Oh...looks like #caliper
tkuhrt (Mon, 09 Apr 2018 21:32:19 GMT):
In https://github.com/hyperledger/caliper/blob/master/docs/Composer.md#testing-your-own-business-network-definition, it looks like the directory should be `src/contract/composer/bna` folder
tkuhrt (Mon, 09 Apr 2018 21:32:19 GMT):
From https://github.com/hyperledger/caliper/blob/master/docs/Composer.md#testing-your-own-business-network-definition, it looks like the directory should be `src/contract/composer/bna` folder
tkuhrt (Mon, 09 Apr 2018 21:37:02 GMT):
You should be able to create the code artifacts for your BNA using `composer generator create`
tkuhrt (Mon, 09 Apr 2018 21:37:02 GMT):
You should be able to create the code artifacts from your BNA using `composer generator create`
AkshayJindal (Tue, 10 Apr 2018 07:35:02 GMT):
Hello.. I have a composer network (v0.16.5) with fabric (v1.0.6). Can I test this using caliper?
nkl199 (Tue, 10 Apr 2018 07:46:52 GMT):
There is a Composer plugin for Caliper, though it is only compatible with v0.19+ and Fabric v1.1
nkl199 (Tue, 10 Apr 2018 07:47:49 GMT):
The business network itself is fine to use "as-is" - it is the Fabric to which you deploy to that is the restriction
nkl199 (Tue, 10 Apr 2018 07:47:49 GMT):
The business network itself is fine to use "as-is" - it is the Fabric version to which you deploy to that is the restriction
nkl199 (Tue, 10 Apr 2018 07:51:19 GMT):
@ChrisMcQueenDevelopment Hi - yes you are correct, the source files are deployed directly from that folder and there is no requirement to use a BNA. Previously it was working from BNA's but a change was made when moving to Composer v0.19 to remove the use of binary files ... i missed the edit on that document when submitting - sorry!
ChrisMcQueenDevelopment (Tue, 10 Apr 2018 08:29:35 GMT):
Hi @nkl199 - no worries and thanks for getting back to me! It's running now :)
Fantastic tool, just came in time for my dissertation write up
ChrisMcQueenDevelopment (Tue, 10 Apr 2018 10:30:12 GMT):
Hey again - my transactions are failing, are there any recommendations to investigate why? I've done printing the results but they just return that they failed and not why.
nkl199 (Tue, 10 Apr 2018 12:05:57 GMT):
It might help to inspect the logs here - you can toggle debug on the `composer.json` file that is specified in the config file (it lives in the /network/fabric-v11 folders) to change the loglevel to "DEBUG". You will also have to remove the "end" command in the config file to prevent the containers from being cleaned up (or ctrl-c the test run once you have hit a failure). Once you have spun the test, you can perform a 'docker logs' on the containers to see what is occurring?
ChrisMcQueenDevelopment (Tue, 10 Apr 2018 12:07:05 GMT):
Clipboard - April 10, 2018 1:07 PM
ChrisMcQueenDevelopment (Tue, 10 Apr 2018 12:07:26 GMT):
Thanks again @nkl199
There seems to be an error throw out of my control from blockhain.js file, any ideas?
nkl199 (Tue, 10 Apr 2018 12:10:36 GMT):
in your test file, how are you submitting a transaction in the 'run' function?
nkl199 (Tue, 10 Apr 2018 12:12:51 GMT):
My first thought is that the error indicates there is an error before `bc.bcObj.submitTransaction` is being submitted, and that the set of results are being populated with an error instead of a transaction result
ChrisMcQueenDevelopment (Tue, 10 Apr 2018 12:13:03 GMT):
Clipboard - April 10, 2018 1:13 PM
ChrisMcQueenDevelopment (Tue, 10 Apr 2018 12:14:16 GMT):
It's strange as now a couple of are passing (although returning null as the result) and the rest are failing with an empty array
nkl199 (Tue, 10 Apr 2018 12:19:55 GMT):
That looks valid, though even if there is a failure, you should be getting back an object. It is likely worth toggling the debug setting to see if something is happening under the covers in the chaincode containers
Haojun (Wed, 11 Apr 2018 00:43:10 GMT):
@ChrisMcQueenDevelopment The `results` should be returned (e.g. return Promise.resolve(results))
ChrisMcQueenDevelopment (Wed, 11 Apr 2018 08:18:45 GMT):
Thanks, @nkl199 privately messaged me and and walked through a solution (big kudos to him). Thanks for all the help everyone. On the right track now
SwatiRaj (Wed, 11 Apr 2018 09:03:41 GMT):
Has joined the channel.
SwatiRaj (Wed, 11 Apr 2018 12:20:02 GMT):
Hi, Today only I came to know about Caliper project,
SwatiRaj (Wed, 11 Apr 2018 12:20:39 GMT):
I tried to run it on default fabric network, that it creates for testing
SwatiRaj (Wed, 11 Apr 2018 12:21:00 GMT):
It performed all the operations step by step,
SwatiRaj (Wed, 11 Apr 2018 12:21:05 GMT):
1. network up
SwatiRaj (Wed, 11 Apr 2018 12:21:12 GMT):
2. create channel
SwatiRaj (Wed, 11 Apr 2018 12:21:16 GMT):
3. join channel
SwatiRaj (Wed, 11 Apr 2018 12:21:22 GMT):
4. install chaincode
SwatiRaj (Wed, 11 Apr 2018 12:21:27 GMT):
5. instantiate chaincode
SwatiRaj (Wed, 11 Apr 2018 12:21:53 GMT):
but after that when it started sending transactions from 5 clients(by default value)
SwatiRaj (Wed, 11 Apr 2018 12:22:20 GMT):
All the transactions are failing, saying no event notification recieved
SwatiRaj (Wed, 11 Apr 2018 12:22:34 GMT):
here is the error to be exact :mountain_bicyclist_tone5:
SwatiRaj (Wed, 11 Apr 2018 12:22:44 GMT):
Invoke chaincode failed, Error: Failed to get valid event notification
at channel.sendTransaction.then.then (/home/azureuser/fabric-samples/caliper/src/fabric/e2eUtils.js:606:14)
at
SwatiRaj (Wed, 11 Apr 2018 12:23:06 GMT):
Has anyone tried this before? Can anyone help
klenik (Wed, 11 Apr 2018 12:36:44 GMT):
It is possible that your machine can't handle the >100 TPS rates during the rounds when everything (Caliper and the Fabric network) is running on the same host. Try lowering the TPS rates to 10 in config.json and let me know how it goes
SwatiRaj (Wed, 11 Apr 2018 12:37:40 GMT):
Thanks I ll try and let you know
klenik (Wed, 11 Apr 2018 12:37:56 GMT):
(In an environment with limited resources, the connections to the eventhubs might be abruptly closed, that's why you don't get the notification)
SwatiRaj (Wed, 11 Apr 2018 12:43:12 GMT):
Thanks @klenik It worked by lowering the transaction rate
SwatiRaj (Wed, 11 Apr 2018 12:44:28 GMT):
What is the recommended resources size in order to handle a larger no of transactions per sec?
klenik (Wed, 11 Apr 2018 13:11:58 GMT):
There is no simple answer for that question. So here is a long "answer" :) And I hope the core devs will correct me if I'm wrong.
Capacity planning/management is a broad topic. The required resource size depends on a lot of things, for example (in the context of Caliper and Fabric):
1) The complexity of the transactions (basically the complexity of the deployed chaincode). Even if you generate thousands of transactions per second with Caliper, the endorsing peers might not be able to keep up with that kind of load.
2) The number of transactions you want to generate per second. If you want a constant 100 TPS load with 1 local Caliper client, then between sending two transaction proposals you can only "waste" 10 ms to run other code, or you won't be able to keep up the 100 TPS (someone correct me if I miscalculate), and that's not a lot of time. So you have to "smear" that TPS across multiple local clients (lets say 5 clients with 20 TPS each, that's 50 ms to waste between transaction proposals). But you are still using the same host machine, and maybe your network connection is not fast enough to generate that kind of TPS. Then you use Caliper with Zookeeper, and face the same challenge on multiple host. :)
3) Same challenges for other Fabric components: orderer service, msp, channels, multiple chaincodes per channel, etc.
You could fill a PhD thesis by taking on these challenges :)
klenik (Wed, 11 Apr 2018 13:13:32 GMT):
(but to get some ballpark number, take a look at the evaluation section of this awesome paper about Fabric: https://arxiv.org/abs/1801.10228)
SwatiRaj (Wed, 11 Apr 2018 13:33:30 GMT):
Thanks @klenik :) got your point, Sorry for asking this broad question
AkshayJindal (Thu, 12 Apr 2018 07:54:04 GMT):
Hello.. can someone share the caliper generated performance report? I just want to have a look.
nkl199 (Thu, 12 Apr 2018 07:58:21 GMT):
you mean that you would like to see the document structure?
KaderKhan (Thu, 12 Apr 2018 17:25:27 GMT):
Has joined the channel.
KaderKhan (Thu, 12 Apr 2018 17:31:53 GMT):
Good Day! Just joined this group and new to Block chain. I am interested to learn how to test...
tallharish (Fri, 13 Apr 2018 00:33:44 GMT):
Hi Caliper team, is it possible to use kafka-based ordering service? I understand the limitation of only one orderer right now. Thanks.
tallharish (Fri, 13 Apr 2018 00:33:44 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=aNRJ47XpiL3sfzQWx) Tried installing fabric-client from the source directly (for release v1.1.0) and still same result.
Haojun (Fri, 13 Apr 2018 01:05:10 GMT):
@tallharish , you can run fabric with kafka-based orderers, but now all transactions will be sent to one of them
wangdong (Sun, 15 Apr 2018 12:40:05 GMT):
I got a question about the rate control. what is it used for, a frame reference or some thing else?
nkl199 (Mon, 16 Apr 2018 08:27:12 GMT):
@wangdong the rate control is used to limit and/or specify the rate at which transactions are issued
wangdong (Mon, 16 Apr 2018 08:28:59 GMT):
how I can get the real performance of one blockchain framework if the rate control is specified?
wangdong (Mon, 16 Apr 2018 08:29:02 GMT):
@nkl199
wangdong (Mon, 16 Apr 2018 08:38:36 GMT):
why should the rate control be specified? what if I just want the real TPS? BTW, from the test report, caliper offers performance metrics and resource consumption, I think these are the performance data. But the rate control is specified how can we get the real TPS?
wangdong (Mon, 16 Apr 2018 08:39:21 GMT):
If any silly questions, please forgive me. I need to clarify this basics.
wangdong (Mon, 16 Apr 2018 08:39:25 GMT):
thanks
klenik (Mon, 16 Apr 2018 08:57:32 GMT):
@wangdong if you look at some standard benchmarks outside of the blockchain domain, they measure the performance under a specified load. If this load is the "send transactions as fast as you can", then you can implement a rate controller that doesn't wait between transactions. But since caliper is a general benchmark platform (and not an actual benchmark), it has to support the definition of custom transaction load profiles.
nkl199 (Mon, 16 Apr 2018 12:53:36 GMT):
there is a PR in caliper at the moment for a 'pidRate' controller. This will limit all transactions to maintain a specified backlog. You could view that as a 'send as fast as you can' rate controller
nkl199 (Mon, 16 Apr 2018 12:53:36 GMT):
there is a PR in caliper at the moment for a 'pidRate' controller. This will limit all transactions to maintain a specified backlog. You could view that as a 'send as fast as you can' rate controller. This is a 'safe' way to investigate maximum continuous throughput, since using a fixed rate at *very high* tps will lead to timeouts
kpkrish (Tue, 17 Apr 2018 11:45:10 GMT):
Has joined the channel.
wangdong (Tue, 17 Apr 2018 12:50:00 GMT):
@klenik thanks
wangdong (Wed, 18 Apr 2018 04:05:35 GMT):
Hi, I try to implement a blockchain framework which is like Fabric
wangdong (Wed, 18 Apr 2018 04:06:00 GMT):
But I got some error: file argument must be a non-empty string
wangdong (Wed, 18 Apr 2018 04:06:04 GMT):
any clue for this?
nkl199 (Wed, 18 Apr 2018 08:59:55 GMT):
I would guess that one of the test arguments that you are passing is missing- without any more debug information or context, it's a bit of a guessing game
WQuk339 (Wed, 18 Apr 2018 13:52:00 GMT):
Has joined the channel.
klenik (Wed, 18 Apr 2018 14:01:13 GMT):
@Haojun will there be a caliper-contributors channel to discuss implementation details of caliper?
wangdong (Wed, 18 Apr 2018 14:10:15 GMT):
[EventHub.js]: _connect - options {"grpc.ssl_target_name_override":"peer0.org1.example.com","grpc.default_authority":"peer0.org1.example.com"}
error: [Peer.js]: sendProposal - timed out after:120000
error: [Peer.js]: sendProposal - timed out after:120000
error: [Peer.js]: sendProposal - timed out after:120000
error: [Peer.js]: sendProposal - timed out after:120000
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: REQUEST_TIMEOUT
at Timeout._onTimeout (/Users/dong/repos/caliper/node_modules/inkchain-client/lib/Peer.js:107:19)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: REQUEST_TIMEOUT
at Timeout._onTimeout (/Users/dong/repos/caliper/node_modules/inkchain-client/lib/Peer.js:107:19)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: REQUEST_TIMEOUT
at Timeout._onTimeout (/Users/dong/repos/caliper/node_modules/inkchain-client/lib/Peer.js:107:19)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: REQUEST_TIMEOUT
at Timeout._onTimeout (/Users/dong/repos/caliper/node_modules/inkchain-client/lib/Peer.js:107:19)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
error: [E2E testing]: instantiate proposal was bad
error: [E2E testing]: instantiate proposal was bad
error: [E2E testing]: instantiate proposal was bad
error: [E2E testing]: instantiate proposal was bad
ok 4 Failed to instantiate chaincodes, Error: Failed to send instantiate due to error: Error: Failed to send instantiate Proposal or receive valid response. Response null or status is not 200. exiting... at Client.newDefaultKeyValueStore.then.then.then.then (/Users/dong/repos/caliper/src/ink/e2eUtils.js:321:10) at
wangdong (Wed, 18 Apr 2018 14:10:24 GMT):
This is the log
wangdong (Wed, 18 Apr 2018 14:15:37 GMT):
*2018-04-18 14:12:55.925 UTC [chaincode] Launch -> ERRO 426 launchAndWaitForRegister failed Timeout expired while starting chaincode token:v0(networkid:dev,peerid:peer1.org1.example.com,tx:52638b3da1dd9977d43e25aa2ce7d44dae0f8317fc1670fc446ced0d4042cbf0)***
wangdong (Wed, 18 Apr 2018 14:15:54 GMT):
*2018-04-18 14:12:55.925 UTC [endorser] simulateProposal -> ERRO 428 failed to invoke chaincode name:"lscc" on transaction 52638b3da1dd9977d43e25aa2ce7d44dae0f8317fc1670fc446ced0d4042cbf0, error: Timeout expired while starting chaincode token:v0(networkid:dev,peerid:peer1.org1.example.com,tx:52638b3da1dd9977d43e25aa2ce7d44dae0f8317fc1670fc446ced0d4042cbf0)
*
wangdong (Wed, 18 Apr 2018 14:16:05 GMT):
this is the error log from peer
klenik (Wed, 18 Apr 2018 14:19:34 GMT):
How powerful is the host where the peer is deployed? In Fabric, building and starting a chaincode container, then running the Init method can take some time. If it's running on a week host, this time can be more than 2 minutes.
wangdong (Wed, 18 Apr 2018 14:21:52 GMT):
I got the same error when in mac and ubuntu 16.04
klenik (Wed, 18 Apr 2018 14:35:05 GMT):
I'm not familiar with the inkchain-client, but try raising the timeout on both client-side and peer-side to some really high level. If the error is gone, then you have resource issues.
wangdong (Wed, 18 Apr 2018 15:01:30 GMT):
never mind the name, it is just like fabric
klenik (Wed, 18 Apr 2018 15:08:18 GMT):
For the timeout error, try a greater timeout on both side.
For the "file argument" error, check whether you caliper config.json has a `command.end` property defined. If you don't need it, then remove the `end` property completely, because based on the error you are probably leaving it empty
wangdong (Wed, 18 Apr 2018 15:29:50 GMT):
Yes, you are right. I set it empty so that I can debug from the log
wangdong (Wed, 18 Apr 2018 15:30:02 GMT):
I got it addressed
wangdong (Wed, 18 Apr 2018 15:30:12 GMT):
It is the docker network issue
tkuhrt (Wed, 18 Apr 2018 16:45:51 GMT):
@klenik @nkl199 @Haojun : [ ](https://chat.hyperledger.org/channel/caliper?msg=LbYPTRsnQ923ySN85) I created #caliper-contributors
klenik (Wed, 18 Apr 2018 19:00:13 GMT):
Super, thank you :)
ruffsl (Thu, 19 Apr 2018 00:59:18 GMT):
Has joined the channel.
ruffsl (Thu, 19 Apr 2018 01:11:51 GMT):
sawtooth
qiang0723 (Thu, 19 Apr 2018 03:55:57 GMT):
Has joined the channel.
friends110110 (Sat, 21 Apr 2018 04:48:46 GMT):
Has joined the channel.
friends110110 (Sat, 21 Apr 2018 04:51:02 GMT):
Hello everybody, how much tps when using fabric? And hot to define the tps , when the orderer generate block or invoke chaincode ?
wangdong (Sat, 21 Apr 2018 13:22:19 GMT):
Hi, I wonder how caliper calculate the TPS?
sstercan (Sun, 22 Apr 2018 09:35:06 GMT):
Has joined the channel.
rkrish82 (Mon, 23 Apr 2018 03:05:05 GMT):
Someone please review this PR - https://github.com/hyperledger/caliper/pull/32
rkrish82 (Mon, 23 Apr 2018 05:44:32 GMT):
Hi All, Caliper doesn't give right tps if I send the multiple transactions in a batch. In one of sawtooth benchmark use case I am trying send the batch with multiple transactions, say for example 10 transaction in a batch.. and in test configuration file I gave 1 tps. In caliper test report i still it as 1 tps, it should be 10 tps.
wangdong (Mon, 23 Apr 2018 08:02:38 GMT):
I try to find how caliper calculate the TPS
wangdong (Mon, 23 Apr 2018 08:02:49 GMT):
@rkrish82
JayJong (Mon, 23 Apr 2018 09:01:42 GMT):
Has joined the channel.
hosemose (Tue, 24 Apr 2018 04:57:28 GMT):
Has joined the channel.
ThangaMariappan (Tue, 24 Apr 2018 07:51:40 GMT):
Has joined the channel.
Haojun (Tue, 24 Apr 2018 09:01:24 GMT):
@rkrish82 , for batch, you should return an array containing all transactions' status.
rkrish82 (Tue, 24 Apr 2018 09:13:19 GMT):
@Haojun sawtooth will return the array of committed transactions as response of batch_statuses
rkrish82 (Tue, 24 Apr 2018 09:13:54 GMT):
Is it requires any changes to caliper to support?
rkrish82 (Tue, 24 Apr 2018 09:13:54 GMT):
"rounds": [{
"label" : "smallOperations",
"txNumber" : [5],
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 1}}],
"arguments": {"accounts":5, "operations":10, "maxBatchSize":10},
"callback" : "benchmark/smallbank/smallbankOperations.js"
}]
},
Haojun (Tue, 24 Apr 2018 09:16:42 GMT):
What's the tx number in the report? It should be 10 times the configured number
ThangaMariappan (Tue, 24 Apr 2018 09:38:46 GMT):
Hello Everyone!! Do we have any official youtube channel for learning purpose
rkrish82 (Tue, 24 Apr 2018 09:56:27 GMT):
I used something like.. I am building batch with 10 transactions and specified tps as 1
rkrish82 (Tue, 24 Apr 2018 09:56:30 GMT):
"rounds": [{
"label" : "smallOperations",
"txNumber" : [5],
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 1}}],
"arguments": {"accounts":5, "operations":10, "maxBatchSize":10},
"callback" : "benchmark/smallbank/smallbankOperations.js"
}]
},
mwagner (Tue, 24 Apr 2018 13:11:29 GMT):
anyone joining the PSWG call going on now ?
disruptex (Wed, 25 Apr 2018 11:59:23 GMT):
Has joined the channel.
mrkiouak (Wed, 25 Apr 2018 13:29:40 GMT):
Has left the channel.
maestrus (Thu, 26 Apr 2018 08:28:05 GMT):
Has joined the channel.
surendra-kushwaha (Thu, 26 Apr 2018 19:42:15 GMT):
Has joined the channel.
Wesley2018 (Fri, 27 Apr 2018 00:41:51 GMT):
Has joined the channel.
rkrish82 (Fri, 27 Apr 2018 06:52:45 GMT):
@Haojun Please review these smallbank use case changes - https://github.com/hyperledger/caliper/pull/47
umtyzc (Mon, 30 Apr 2018 05:33:34 GMT):
Has joined the channel.
net0410 (Mon, 30 Apr 2018 07:12:18 GMT):
Has joined the channel.
mwagner (Tue, 01 May 2018 01:48:20 GMT):
Hi folks, some interesting stuff still going on in the PSWG calls. in a little over 11 hours we hope to review some benchmark work from the royal Bank of Scotland and se how the metrics document holds up against it. There is probably some good "competetive analysis" in there for Caliper as well.
eramitg (Tue, 01 May 2018 13:36:16 GMT):
Has joined the channel.
eramitg (Tue, 01 May 2018 13:49:19 GMT):
https://emerald-platform.gitlab.io/static/emeraldTechnicalPaper.pdf ,,,please provide implementation stuff related to this Paper .
nkl199 (Tue, 01 May 2018 14:16:28 GMT):
@eramitg - can you elaborate on the above please? the paper is speaking about Etherium, which is not a Hyperledger item, nor tested by a caliper benchmark
eramitg (Tue, 01 May 2018 14:17:47 GMT):
@nkl199 in todays meeting these papers is refer and get suggestion during call for the implmentation detail scrap in rocketchat
nkl199 (Tue, 01 May 2018 14:24:54 GMT):
are you talking about the PSWG meeting?
eramitg (Tue, 01 May 2018 14:30:45 GMT):
yes
RobertDiebels (Tue, 01 May 2018 14:31:15 GMT):
Has joined the channel.
nkl199 (Tue, 01 May 2018 14:31:48 GMT):
ok - so is your question to mwagner to provide the details of the testing implementation used in the paper, or for caliper to implement items suggested within it?
RobertDiebels (Tue, 01 May 2018 14:42:15 GMT):
Hey guys, this project just came to my attention. I'm doing a Master's Thesis onpPermissioned Blockchain performance. It seems that Calipher aims at the same that the tooling that I'm building is doing. However there seems to be one major difference, I'm creating Kubernetes clusters to perform my measurements on.
RobertDiebels (Tue, 01 May 2018 14:43:08 GMT):
I was wondering if someone could enlighten me on how you gather statistics from multiple nodes? Lest I do a whole lot of work that's already been done.
nkl199 (Tue, 01 May 2018 14:50:23 GMT):
@RobertDiebels - do mean beyond 'using zookeeper clients' ?
nkl199 (Tue, 01 May 2018 14:50:54 GMT):
tbh, the above question is probably best answered by @Haojun
RobertDiebels (Tue, 01 May 2018 15:03:25 GMT):
@nkl199 Basically anything you can tell me about gathering the data you need. I've yet to dive into Caliper's codebase and I'd like to be sure it would be useful to do so :P
nkl199 (Tue, 01 May 2018 15:10:21 GMT):
@RobertDiebels - ok so the jist of it is that zookeeper is used to manage and collect data from multiple remote clients. If i'm honest I'm yet to really explore/exploit that aspect of the code base
RobertDiebels (Tue, 01 May 2018 15:33:33 GMT):
This seems very interesting.
RobertDiebels (Tue, 01 May 2018 15:33:43 GMT):
I think it meshes well with my own project.
RobertDiebels (Tue, 01 May 2018 15:34:05 GMT):
It would also take a huge load of my shoulders.
RobertDiebels (Tue, 01 May 2018 15:34:29 GMT):
Did you consider making an adapter for Hyperledger Burrow as well?
RobertDiebels (Tue, 01 May 2018 15:35:02 GMT):
I'd be interested in making a PR if I can get Caliper to work on a Kubernetes cluster as well.
RobertDiebels (Tue, 01 May 2018 15:35:02 GMT):
I'd be interested in making a PR if I can get Caliper to work on a Kubernetes cluster.
RobertDiebels (Tue, 01 May 2018 15:36:29 GMT):
I'd have to look into Zookeeper a bit more. Though I think I came across some samples for Kubernetes.
tallharish (Tue, 01 May 2018 22:02:41 GMT):
Hi Caliper team, I am seeing the following error while running Caliper. I have fabric v1.1 installed in my $GOPATH/src/github.com/hyperledger/fabric (by git checkout v1.1.0). I installed fabric-client using `npm install fabric-ca-client@1.1.0 fabric-client@1.1.0`. In caliper I am benchmark/simple and I run `node main.js` .
```
# Sleep 5s......
# Join channel......
# join mychannel
not ok 2 Failed to join peers, TypeError: Cannot read property 'getConnectivityState' of undefined at EventHub._checkConnection ($GOPATH/src/github.com/hyperledger/caliper/node_modules/fabric-client/lib/EventHub.js:479:38)
```
tallharish (Tue, 01 May 2018 22:02:41 GMT):
Hi Caliper team, I am seeing the following error while running Caliper. I have fabric v1.1 installed in my $GOPATH/src/github.com/hyperledger/fabric (by `git checkout v1.1.0`). I installed fabric-client using `npm install fabric-ca-client@1.1.0 fabric-client@1.1.0`. In caliper I am benchmark/simple and I run `node main.js` .
```
# Sleep 5s......
# Join channel......
# join mychannel
not ok 2 Failed to join peers, TypeError: Cannot read property 'getConnectivityState' of undefined at EventHub._checkConnection ($GOPATH/src/github.com/hyperledger/caliper/node_modules/fabric-client/lib/EventHub.js:479:38)
```
tallharish (Tue, 01 May 2018 22:02:41 GMT):
Hi Caliper team, I am seeing the following error while running Caliper. I have fabric v1.1 installed in my $GOPATH/src/github.com/hyperledger/fabric (by `git checkout v1.1.0`). I installed fabric-client using `npm install fabric-ca-client@1.1.0 fabric-client@1.1.0` in caliper's root folder. In caliper I am benchmark/simple and I run `node main.js` .
```
# Sleep 5s......
# Join channel......
# join mychannel
not ok 2 Failed to join peers, TypeError: Cannot read property 'getConnectivityState' of undefined at EventHub._checkConnection ($GOPATH/src/github.com/hyperledger/caliper/node_modules/fabric-client/lib/EventHub.js:479:38)
```
tallharish (Tue, 01 May 2018 22:02:41 GMT):
Hi Caliper team, I am seeing the following error while running Caliper. I have fabric v1.1 installed in my $GOPATH/src/github.com/hyperledger/fabric (by `git checkout v1.1.0`). I installed fabric-client using `npm install fabric-ca-client@1.1.0 fabric-client@1.1.0` in caliper's root folder. In caliper I am at benchmark/simple and I run `node main.js` .
```
# Sleep 5s......
# Join channel......
# join mychannel
not ok 2 Failed to join peers, TypeError: Cannot read property 'getConnectivityState' of undefined at EventHub._checkConnection ($GOPATH/src/github.com/hyperledger/caliper/node_modules/fabric-client/lib/EventHub.js:479:38)
```
nkl199 (Wed, 02 May 2018 08:07:38 GMT):
there was a grpc change that went in yesterday and fabric would have pulled that in with it ... and it contains a breaking change. Try updating your packages to fix grpc at v1.10.1
nkl199 (Wed, 02 May 2018 08:07:38 GMT):
@tallharish - there was a grpc change that went in yesterday and the npm install of fabric would have pulled that in with it ... and it contains a breaking change. Try updating your packages to fix grpc at v1.10.1 and re-install the dependancies
Ryan2 (Wed, 02 May 2018 10:28:45 GMT):
Has joined the channel.
tallharish (Wed, 02 May 2018 14:25:14 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=KJ8p4FQp69KXq8doy) @nkl199 Thanks. How do I "fix" grpc at 1.10.1?
tallharish (Wed, 02 May 2018 14:25:14 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=KJ8p4FQp69KXq8doy) @nkl199 Thanks. I added `"grpc": "1.10.1",` to the `package.json` dependencies and it worked well. Thanks
nkl199 (Wed, 02 May 2018 15:03:34 GMT):
@tallharish - sorry for the delay, yes ... ran the same my side and managed to run the benchmark :thumbsup:
ericmvaughn (Wed, 02 May 2018 18:58:38 GMT):
Has joined the channel.
tallharish (Wed, 02 May 2018 22:51:41 GMT):
Has anyone tried caliper with fabric installed on multiple vm? Either natively, or using Swarm or using Ansible. Will be great to get hints / roadblocks.
klenik (Wed, 02 May 2018 23:29:08 GMT):
From the point of view of Caliper, the only difference is that the addresses of the network nodes are public IPs (and ports). Take a look at this network configuration file:
https://github.com/hyperledger/caliper/blob/master/benchmark/simple/fabric-remote.json
klenik (Wed, 02 May 2018 23:40:21 GMT):
@tallharish However, getting a Fabric network up and running on different hosts has its challenges. These are not strictly Caliper related, but could be useful "tips":
- make sure every necessary port is open on the VMs (you can find the default ports of the components in various docker-compose files of the samples)
- don't forget to use IP/DNS SANs in the generated certificates (assuming you generate the crypto material with `cryptogen`), so the nodes can recognize other nodes by IP (and not just hostname)
(- use the 1.1.0 version of the `cryptogen` tool, since previous versions incorrectly interpret the IP SANs as DNS SAN)
davidkhala (Thu, 03 May 2018 02:03:41 GMT):
@klenik How does 1.1 version cryptogen support IP SANs? Is there any reference
klenik (Thu, 03 May 2018 02:04:56 GMT):
http://hyperledger-fabric.readthedocs.io/en/latest/commands/cryptogen.html#cryptogen-showtemplate
This subcommand outputs a sample config full of comments
davidkhala (Thu, 03 May 2018 02:05:32 GMT):
@tallharish this is my patch to fabric-node-sdk. https://gerrit.hyperledger.org/r/#/c/21281/, it is expected to be fix at next release
davidkhala (Thu, 03 May 2018 02:12:08 GMT):
@klenik Thanks, big change from 1.0
hungpq14 (Thu, 03 May 2018 04:51:48 GMT):
Has joined the channel.
hungpq14 (Fri, 04 May 2018 09:17:15 GMT):
Screen Shot 2018-05-04 at 4.15.39 PM.png
hungpq14 (Fri, 04 May 2018 09:18:03 GMT):
any one met this issue? i run caliper with sawtooth 1.1.1 but all transaction is not finished :-s
hungpq14 (Fri, 04 May 2018 09:18:03 GMT):
any one met this issue? i run caliper with sawtooth 1.1.1 but all transaction is not finished?
kipharris (Fri, 04 May 2018 17:29:01 GMT):
Has joined the channel.
tungdt_socoboy (Sat, 05 May 2018 11:40:09 GMT):
Has joined the channel.
kipharris (Sun, 06 May 2018 14:22:34 GMT):
I'm hitting the following exception while trying to get my first use of caliper running. I'm attempting the basic-sample-network benchmark that's supplied with the project. Except for a small bit of configuration and one apparent defect fix, I took all defaults. More details follow the console trace:
(partial console log: )
`Deploying Composer
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org2
✔ Starting business network basic-sample-network. This involves building chaincode containers and may take several minutes to complete...
⠋ Network start complete, activating user network card PerfNetworkAdmin@basic-sample-network
composer.getBusNetConnection() failed for cardName [PerfNetworkAdmin@basic-sample-network] with error: Error: Failed to load connector module "composer-connector-hlfv1" for connection type "hlfv1". Must create ConnectionManager with a ConnectionProfileManager implementation.-Must create ConnectionManager with a ConnectionProfileManager implementation.("-Must create ... ConnectionProfileManager implementation" text repeats 10 more times).
at Promise.resolve.then (/Users/kip/git/caliper/node_modules/composer-client/node_modules/composer-common/lib/connectionprofilemanager.js:144:42)
at
kipharris (Sun, 06 May 2018 14:22:34 GMT):
I'm hitting the following exception while trying to get my first use of caliper running. I'm attempting the basic-sample-network benchmark that's supplied with the project. Except for a small bit of configuration and one apparent defect fix, I took all defaults. More details follow the console trace:
(partial console log: )
``Deploying Composer
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org2
✔ Starting business network basic-sample-network. This involves building chaincode containers and may take several minutes to complete...
⠋ Network start complete, activating user network card PerfNetworkAdmin@basic-sample-network
composer.getBusNetConnection() failed for cardName [PerfNetworkAdmin@basic-sample-network] with error: Error: Failed to load connector module "composer-connector-hlfv1" for connection type "hlfv1". Must create ConnectionManager with a ConnectionProfileManager implementation.-Must create ConnectionManager with a ConnectionProfileManager implementation.("-Must create ... ConnectionProfileManager implementation" text repeats 10 more times).
at Promise.resolve.then (/Users/kip/git/caliper/node_modules/composer-client/node_modules/composer-common/lib/connectionprofilemanager.js:144:42)
at
kipharris (Sun, 06 May 2018 14:22:34 GMT):
I'm hitting the following exception while trying to get my first use of caliper running. I'm attempting the basic-sample-network benchmark that's supplied with the project. Except for a small bit of configuration and one apparent defect fix, I took all defaults. More details follow the console trace:
(partial console log: )
``Deploying Composer
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org2
✔ Starting business network basic-sample-network. This involves building chaincode containers and may take several minutes to complete...
⠋ Network start complete, activating user network card PerfNetworkAdmin@basic-sample-network
composer.getBusNetConnection() failed for cardName [PerfNetworkAdmin@basic-sample-network] with error: Error: Failed to load connector module "composer-connector-hlfv1" for connection type "hlfv1". Must create ConnectionManager with a ConnectionProfileManager implementation.-Must create ConnectionManager with a ConnectionProfileManager implementation.("-Must create ... ConnectionProfileManager implementation" text repeats 10 more times).
at Promise.resolve.then (/Users/kip/git/caliper/node_modules/composer-client/node_modules/composer-common/lib/connectionprofilemanager.js:144:42)
at
kipharris (Sun, 06 May 2018 14:22:34 GMT):
I'm hitting the following exception while trying to get my first use of caliper running. I'm attempting the basic-sample-network benchmark that's supplied with the project. Except for a small bit of configuration and one apparent defect fix, I took all defaults. More details follow the console trace:
(partial console log: )
``Deploying Composer
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org2
✔ Starting business network basic-sample-network. This involves building chaincode containers and may take several minutes to complete...
⠋ Network start complete, activating user network card PerfNetworkAdmin@basic-sample-network
composer.getBusNetConnection() failed for cardName [PerfNetworkAdmin@basic-sample-network] with error: Error: Failed to load connector module "composer-connector-hlfv1" for connection type "hlfv1". Must create ConnectionManager with a ConnectionProfileManager implementation.-Must create ConnectionManager with a ConnectionProfileManager implementation.("-Must create ... ConnectionProfileManager implementation" text repeats 10 more times).
at Promise.resolve.then (/Users/kip/git/caliper/node_modules/composer-client/node_modules/composer-common/lib/connectionprofilemanager.js:144:42)
at
kipharris (Sun, 06 May 2018 14:22:34 GMT):
I'm hitting the following exception while trying to get my first use of caliper running. I'm attempting the basic-sample-network benchmark that's supplied with the project. Except for a small bit of configuration and one apparent defect fix, I took all defaults. More details follow the console trace:
(partial console log: )
``Deploying Composer
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org2
✔ Starting business network basic-sample-network. This involves building chaincode containers and may take several minutes to complete...
⠋ Network start complete, activating user network card PerfNetworkAdmin@basic-sample-network
composer.getBusNetConnection() failed for cardName [PerfNetworkAdmin@basic-sample-network] with error: Error: Failed to load connector module "composer-connector-hlfv1" for connection type "hlfv1". Must create ConnectionManager with a ConnectionProfileManager implementation.-Must create ConnectionManager with a ConnectionProfileManager implementation.("-Must create ... ConnectionProfileManager implementation" text repeats 10 more times).
at Promise.resolve.then (/Users/kip/git/caliper/node_modules/composer-client/node_modules/composer-common/lib/connectionprofilemanager.js:144:42)
at
RobertDiebels (Sun, 06 May 2018 16:17:29 GMT):
Hey peeps. Does anyone see any major issues I could run into when creating a Docker container from Caliper source? Anything that you might think of would be helpful. Reason I'm asking is because I'm working on some tooling to create reproducible Hyperledger Fabric and Hyperledger Burrow networks in Kubernetes. So far I've got everything running. Just need to get Caliper in the Kubernetes Cluster and write some code so Caliper knows how to bench Burrow.
hungpq14 (Mon, 07 May 2018 03:35:44 GMT):
Screen Shot 2018-05-07 at 10.32.37 AM.png
hungpq14 (Mon, 07 May 2018 03:36:28 GMT):
I ran caliper with sawtooth-core/docker/compose/sawtooth-default-poet.yaml with mutiple node
hungpq14 (Mon, 07 May 2018 03:36:37 GMT):
anyone met this issuse?
Haojun (Mon, 07 May 2018 08:51:12 GMT):
@FlyingTiger may help with the sawtooth issue
FlyingTiger (Mon, 07 May 2018 08:51:13 GMT):
Has joined the channel.
FlyingTiger (Mon, 07 May 2018 08:59:50 GMT):
@hungpq14 Could you please post the init information when you started the simple test.
FlyingTiger (Mon, 07 May 2018 09:26:18 GMT):
@hungpq14 Please use docker-compose -f sawtooth/simplenetwork/sawtooth-simple.yaml, then try.
kiranarshakota (Mon, 07 May 2018 11:44:53 GMT):
Has joined the channel.
kiranarshakota (Mon, 07 May 2018 11:45:34 GMT):
I am getting the below error when i try to run node main.js
kiranarshakota (Mon, 07 May 2018 11:45:36 GMT):
not ok 2 Failed to join peers, TypeError: Cannot read property 'getConnectivityState' of undefined at EventHub._checkConnection (/home/ubuntu/caliper/node_modules/fabric-client/lib/EventHub.js:479:39) at EventHub.registerBlockEvent (/home/ubuntu/caliper/node_modules/fabric-client/lib/EventHub.js:658:8) at Promise (/home/ubuntu/caliper/src/fabric/join-channel.js:167:8) at new Promise (
kiranarshakota (Mon, 07 May 2018 12:01:27 GMT):
I added `"grpc": "1.10.1",` to the `package.json` dependencies and it worked well. Thanks
filippoboiani (Mon, 07 May 2018 16:33:39 GMT):
Has joined the channel.
filippoboiani (Mon, 07 May 2018 16:41:19 GMT):
Hello everyone. I would like to understand an issue that I'm having with caliper: I'm testing the `simple network` and the `balance transfer` netowork with the same setup (containers, genesis blocks, policies etc) and I obtain completely different results. For the simplenetwork:
```
Name Succ Fail Send Rate Max Latency Min Latency Avg Latency 75%ile Latency Throughput
query 5000 0 957 tps 13.33 s 0.17 s 8.13 s 9.54 s 367 tps
```
For the balance transfer:
```
Name Succ Fail Send Rate Max Latency Min Latency Avg Latency 75%ile Latency Throughput
query 5000 0 949 tps 42.74 s 4.16 s 30.70 s 37.40 s 117 tps
```
Does anyone of you know the reason>
knagware9 (Mon, 07 May 2018 17:04:19 GMT):
Has joined the channel.
Haojun (Tue, 08 May 2018 01:47:47 GMT):
Not sure , but I have some thoughts:
1. please check whether the configuration of peers and orderers in both networks are the same, such as loglevel, tls, etc.
2. Lower the sending rate. Now the sending rate is much higher than actual throughput, that may cause unsteady performance results.
rkrish82 (Tue, 08 May 2018 04:50:16 GMT):
Hi All,
rkrish82 (Tue, 08 May 2018 04:55:23 GMT):
When try to run small bank benchmark use case with multiple validator docker containers i am getting this error
rkrish82 (Tue, 08 May 2018 04:55:25 GMT):
Submit batches failed, RequestError: Error: socket hang up
at new RequestError (/home/ram/caliper/node_modules/request-promise-core/lib/errors.js:14:15)
at Request.plumbing.callback (/home/ram/caliper/node_modules/request-promise-core/lib/plumbing.js:87:29)
at Request.RP$callback [as _callback] (/home/ram/caliper/node_modules/request-promise-core/lib/plumbing.js:46:31)
at self.callback (/home/ram/caliper/node_modules/request/request.js:186:22)
at emitOne (events.js:116:13)
at Request.emit (events.js:211:7)
at Request.onRequestError (/home/ram/caliper/node_modules/request/request.js:878:8)
at emitOne (events.js:116:13)
at ClientRequest.emit (events.js:211:7)
at Socket.socketOnEnd (_http_client.js:423:9)
at emitNone (events.js:111:20)
at Socket.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1064:12)
rkrish82 (Tue, 08 May 2018 04:56:26 GMT):
I have specified start and end commands to bring up/down the docker containers..
rkrish82 (Tue, 08 May 2018 04:57:12 GMT):
If trigger the test without commands and starting docker containers it will work properly..
rkrish82 (Tue, 08 May 2018 04:59:27 GMT):
Is there some issue with commands we specify in the config file?
adityachap (Tue, 08 May 2018 06:13:48 GMT):
Has joined the channel.
adityachap (Tue, 08 May 2018 06:15:49 GMT):
Hi does anyone know from where does caliper get the resource utilization measurements? , does it use dstat of just gets the usage for the containers that are running ..
Haojun (Tue, 08 May 2018 06:33:45 GMT):
@adityachap Caliper uses dockerode library (which eventually use Docker Remote API ) to fetch remote container's status. For local containers, another library named systeminformation is used instead.
adityachap (Tue, 08 May 2018 06:41:03 GMT):
Hi Haojun thank you for the information ..It helped me
adityachap (Tue, 08 May 2018 06:41:03 GMT):
Hi @Haojun Haojun thanks for the information ..It helped me :)
Akash76 (Tue, 08 May 2018 09:54:47 GMT):
Screenshot from 2018-05-08 15-16-31.png
Akash76 (Tue, 08 May 2018 09:55:37 GMT):
Please help me to resolve this...
leezie (Tue, 08 May 2018 11:49:39 GMT):
Has joined the channel.
nkl199 (Tue, 08 May 2018 16:05:05 GMT):
@Akash76 - are you still seeing this error?
Akash76 (Tue, 08 May 2018 17:26:08 GMT):
yes sir...
Akash76 (Tue, 08 May 2018 17:27:20 GMT):
i have gave all the fields correctly as defined in composer performance test page
Akash76 (Tue, 08 May 2018 17:27:31 GMT):
but it is showing this error
tcskill (Tue, 08 May 2018 19:04:05 GMT):
Has joined the channel.
tallharish (Tue, 08 May 2018 21:46:19 GMT):
For my research work, I am trying to build some new features for Caliper (and hopefully contribute to the community). I am new to Node.JS as well. What development environment (IDE) do you use? I usually use Eclipse, but somehow it gives library errors when I import caliper. Any guidance would be appreciated.
klenik (Wed, 09 May 2018 06:55:01 GMT):
@tallharish I use JetBrains' WebStorm IDE (and they have free academic licence, since you mentioned research)
nkl199 (Wed, 09 May 2018 09:52:30 GMT):
@tallharish +1 for webstorm, though I currently use VSCode
nkl199 (Wed, 09 May 2018 09:53:27 GMT):
@Akash76 if you see me online, feel free to ping me and we can try to diagnose the config off the main channel?
RobertDiebels (Wed, 09 May 2018 11:19:12 GMT):
+1 for Webstorm as well. Expect issues with refactoring though. It has a tendency to suggest refactoring variables with the same name even if they are in different files..
RobertDiebels (Wed, 09 May 2018 11:19:41 GMT):
It's one of the reasons I use TypeScript instead of JavaScript.
MrMoneyChanger (Wed, 09 May 2018 21:44:58 GMT):
Has joined the channel.
tallharish (Thu, 10 May 2018 23:34:22 GMT):
@nkl199 @klenik @RobertDiebels Thanks for recommending Webstorm. Got license from Univ. Just used for a few hrs and I already feel so comfortable :)
sgaddam (Fri, 11 May 2018 05:38:45 GMT):
Has joined the channel.
RobertDiebels (Fri, 11 May 2018 08:20:30 GMT):
@tallharish no problem. You can also change your KeyMap to that of Eclipse if you want.
RobertDiebels (Fri, 11 May 2018 08:21:01 GMT):
I used to program Java and used eclipse. Switched to IntelliJ and Webstorm and kept the KeyMap.
RobertDiebels (Fri, 11 May 2018 08:22:21 GMT):
It's under File > Settings > KeyMap > top-left corner
ascatox (Mon, 14 May 2018 06:18:50 GMT):
Hi!!!
ascatox (Mon, 14 May 2018 06:19:39 GMT):
I'm really interested to use this framework to test my Fabric installation. I'd like to test my chaincode too, is It possible with Caliper?
adityachap (Mon, 14 May 2018 06:48:03 GMT):
@ascatox As caliper is used for performance testing it can test the performance for your chaincode container but not the functionality
ascatox (Mon, 14 May 2018 06:58:15 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=5xdGovwptJarmfpyJ) @adityachap Sorry but I don't understand the difference
ascatox (Mon, 14 May 2018 06:58:33 GMT):
Can you explain me deeper?
adityachap (Mon, 14 May 2018 07:17:03 GMT):
@ascatox Caliper is a tool used for performance testing the fabric network it is not a functional testing tool you can get the resource utilization parameters throughput by using caliper so if you are plannig to use capliper to functional test your chaincode it will not be possible is what i think
adityachap (Mon, 14 May 2018 07:17:03 GMT):
@ascatox Caliper is a tool used for performance testing the fabric network it is not a functional testing tool you can get the resource utilization parameters throughput by using caliper so if you are planing to use caliper to functional test your chaincode it will not be possible is what i think
klenik (Mon, 14 May 2018 09:20:17 GMT):
Caliper functions as a client for the blockchain network (e.g., Fabric). True, it measures some performance metrics, but since it's a full fledged client, it can also be used for "testing" with the help of the user callback modules.
Note however, that you should still perform independent unit testing of your chaincode. Caliper provides a kind of "integration testing" possibility.
RobertDiebels (Mon, 14 May 2018 09:26:46 GMT):
If someone could help me out with this I'm eternally grateful. [ ](https://chat.hyperledger.org/channel/caliper?msg=vH3DxYNoXiwwTcDgy)
WilsonGao (Tue, 15 May 2018 05:49:56 GMT):
Has joined the channel.
ascatox (Tue, 15 May 2018 06:57:59 GMT):
Hi All!
ascatox (Tue, 15 May 2018 06:58:31 GMT):
Someone could help me to use the Caliper to test my fabric remote network!!!
ascatox (Tue, 15 May 2018 06:58:55 GMT):
Which files should be modified to accomplish this? Thanks in advance.
adityachap (Tue, 15 May 2018 09:03:28 GMT):
@ascatox insert.js and query.js as per your chanicode , config.js , fabric.js
ascatox (Tue, 15 May 2018 09:05:03 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=iHxLSQ7e2TG7kaBft) @adityachap I'm trying to edit `open.js`and `query.js` for my chaincode
ascatox (Tue, 15 May 2018 09:05:03 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=iHxLSQ7e2TG7kaBft) @adityachap I'm trying to edit `open.js`and `query.js` for my chaincode!
adityachap (Tue, 15 May 2018 09:05:56 GMT):
@ascatox yes its the same thing invokechaincode no problem
ascatox (Wed, 16 May 2018 06:08:59 GMT):
Someone can help me with this error ` Error: Client encountered unexpected error at ChildProcess.
ascatox (Wed, 16 May 2018 08:13:28 GMT):
remote blockchain
gut (Wed, 16 May 2018 13:26:01 GMT):
Has joined the channel.
WilsonGao (Thu, 17 May 2018 01:03:26 GMT):
hi,
I got below permission denied exception when instantiate chaincode for runningg caliper simple benchmark with Fabric 1.1.0 on my Oracle Linux OS.
......
ok 3 Installed chaincode simple successfully in all peers
# Instantiate chaincode......
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Post http://unix.sock/containers/create?name=dev-peer0.org1.example.com-simple-v0: dial unix /host/var/run/docker.sock: connect: permission denied
at new createStatusError (/opt/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/caliper/node_modules/grpc/src/client.js:583:15
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Post http://unix.sock/containers/create?name=dev-peer0.org2.example.com-simple-v0: dial unix /host/var/run/docker.sock: connect: permission denied
at new createStatusError (/opt/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/caliper/node_modules/grpc/src/client.js:583:15
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Post http://unix.sock/containers/create?name=dev-peer1.org1.example.com-simple-v0: dial unix /host/var/run/docker.sock: connect: permission denied
at new createStatusError (/opt/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/caliper/node_modules/grpc/src/client.js:583:15
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Post http://unix.sock/containers/create?name=dev-peer1.org2.example.com-simple-v0: dial unix /host/var/run/docker.sock: connect: permission denied
at new createStatusError (/opt/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/caliper/node_modules/grpc/src/client.js:583:15
not ok 4 Failed to instantiate chaincodes, Error: Failed to send instantiate due to error: Error: Failed to send instantiate Proposal or receive valid response. Response null or status is not 200. exiting... at Client.newDefaultKeyValueStore.then.then.then.then (/opt/caliper/src/fabric/e2eUtils.js:367:19) at
Rajrup (Thu, 17 May 2018 06:17:36 GMT):
Has joined the channel.
klenik (Thu, 17 May 2018 08:59:50 GMT):
@WilsonGao Can you run a scripted sample network from the `fabric-samples` repository (like the first-network example)? This seems to be a permission error on Fabric side
neocameback (Thu, 17 May 2018 11:05:01 GMT):
Has joined the channel.
neocameback (Thu, 17 May 2018 11:35:57 GMT):
Hi everybody.
I got this error when start sawtooth-simple.yaml:
ERROR: for simple-tp-python Cannot start service simple-tp-python: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"simple-tp-python\": executable file not found in $PATH": unknown
Does anyone know what is problem?
neocameback (Thu, 17 May 2018 11:44:48 GMT):
sorry guys, please ignore my question, my failure
HarshithaC (Thu, 17 May 2018 11:55:28 GMT):
Has joined the channel.
arthurmsouza (Thu, 17 May 2018 13:20:17 GMT):
Has joined the channel.
CodeReaper (Fri, 18 May 2018 09:46:05 GMT):
Has joined the channel.
CodeReaper (Fri, 18 May 2018 09:48:56 GMT):
Hi guys, I did performance testing for fabric and sawtooth on an 8 core machine. I found some real unexpected results, fabric's maximum tps went around 340 where sawtooth was only able to reach 69-70, after which transactions stated failing real bad. Are these the results everyone are getting and if yes is something lacking from caliper tool or sawtooth has low performance right now?
header340 (Fri, 18 May 2018 16:01:17 GMT):
Has joined the channel.
robwahl (Sat, 19 May 2018 16:08:00 GMT):
Has joined the channel.
JulesMiller (Mon, 21 May 2018 01:41:37 GMT):
Has joined the channel.
WHATISOOP (Mon, 21 May 2018 02:36:43 GMT):
Has joined the channel.
WilsonGao (Mon, 21 May 2018 03:00:40 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=GTLZfzYygLFoZcFcn) @klenik Thanks Klenik,I re-installed Docker EE and the problem is fixed.Thanks!
vitiko (Mon, 21 May 2018 07:38:59 GMT):
Has joined the channel.
robinrob (Mon, 21 May 2018 12:00:05 GMT):
Has joined the channel.
sgaddam (Tue, 22 May 2018 12:10:27 GMT):
When i am trying to connect to Remote Fabric Network from the Caliper, i am getting the below error
sgaddam (Tue, 22 May 2018 12:10:28 GMT):
Error: Failed to create channels Error: ENOENT: no such file or directory, scandir '/home/ubuntu/caliper-test/crypto-config/orga/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore'
sgaddam (Tue, 22 May 2018 12:11:11 GMT):
When i debug in the util.js file, the user for orderer is undefined
sgaddam (Tue, 22 May 2018 12:11:21 GMT):
Due to that the error occured
sgaddam (Tue, 22 May 2018 12:11:46 GMT):
how do we need to add user for the orderer in the config json
sgaddam (Tue, 22 May 2018 12:12:50 GMT):
Below is my config json
sgaddam (Tue, 22 May 2018 12:12:52 GMT):
{
"fabric": {
"cryptodir": "./../caliper-test/crypto-config/orga/",
"network": {
"orderer": {
"url": "grpcs://172.16.39.7:7050",
"mspid": "orgc",
"msp": "./../caliper-test/orderer/msp/",
"server-hostname": "orderer1st-orgc",
"tls_cacerts": "./../caliper-test/orderer/ca.crt"
},
"orga": {
"name": "orga",
"mspid": "orga",
"msp": "./../caliper-test/peer1/msp/",
"ca": {
"url": "https://172.16.39.3:7054",
"name": "ca1st-orga"
},
"peer1st-orga.orga": {
"requests": "grpcs://172.16.39.9:7051",
"events": "grpcs://172.16.39.9:7053",
"server-hostname": "peer1st-orga.orga",
"tls_cacerts": "./../caliper-test/peer1/tlsca.orga-cert.pem"
}
}
},
"channel": [
{
"name": "firstchannel",
"config": "./../caliper-test/channel/firstchannel.tx",
"organizations": ["orga"]
}
],
"chaincodes": [{"id": "firstcode", "path": "./../caliper-test/chaincode/", "language":"golang", "version": "v0", "channel": "firstchannel"}],
"endorsement-policy": {
"identities": [
{
"role": {
"name": "member",
"mspId": "OrgAMSP"
}
},
{
"role": {
"name": "admin",
"mspId": "OrgAMSP"
}
}
],
"policy": { "2-of": [{"signed-by": 0}, {"signed-by": 1}]}
},
"context": {
"open": "firstchannel",
"query": "firstchannels"
}
},
"info" : {
"Version": "1.0.5",
"Size": "1 Peer",
"Orderer": "Kafka",
"Distribution": "Single Host"
}
}
sgaddam (Tue, 22 May 2018 12:13:09 GMT):
Can anyone help on this plz
nkl199 (Tue, 22 May 2018 12:28:34 GMT):
hi, this one failed because the expected directory for the crypto material was not there. All the users are defined within the crypto material directory, and iirc for the fabric-caliper route, the admin user iis picked by default
nkl199 (Tue, 22 May 2018 12:28:34 GMT):
hi, this one failed because the expected directory for the crypto material was not there. All the users are defined within the crypto material directory, and iirc for the fabric-caliper route, the admin user is picked by default
sgaddam (Tue, 22 May 2018 21:02:02 GMT):
@nkl199 Thanks
sgaddam (Tue, 22 May 2018 21:02:54 GMT):
I have not seen any crypto directory similar to the given example in the github
sgaddam (Tue, 22 May 2018 21:03:06 GMT):
i have created the fabric network using cello
sgaddam (Tue, 22 May 2018 21:03:54 GMT):
so, the directories are different here...hence its not connecting to the corresponding orderer
sgaddam (Tue, 22 May 2018 21:04:23 GMT):
can you suggest any alternate?
kiranarshakota (Wed, 23 May 2018 07:35:33 GMT):
do caliper support sending of variable size payload or is it fixed size payload
kiranarshakota (Wed, 23 May 2018 07:44:54 GMT):
PTE i.e https://github.com/hyperledger/fabric-test/blob/master/tools/PTE , supports sending transaction with variable payload but it doesn't capture the os usage etc in it
klenik (Wed, 23 May 2018 09:02:30 GMT):
@kiranarshakota If by payload you mean the parameters of a transaction, then it depends entirely on your implementation of the client module, that calls the `invokeSmartContract` function of the platform. So yes, Caliper supports this, by letting you send whatever you want :)
nkl199 (Wed, 23 May 2018 09:18:30 GMT):
@sgaddam you will need to modify the config file `fabric.json` to account for the different crypto material structure that will have been created by cello when setting up fabric
sgaddam (Wed, 23 May 2018 09:19:41 GMT):
@nkl199 Thank you
sgaddam (Wed, 23 May 2018 09:20:15 GMT):
i did the changes and resolved the issue by adding 'user' attribute in the orderer section and org section
sgaddam (Wed, 23 May 2018 09:20:35 GMT):
but, i am getting the new issue now which is below
sgaddam (Wed, 23 May 2018 09:21:20 GMT):
error: [Orderer.js]: sendBroadcast - on error: "Error: 14 UNAVAILABLE: Connect Failed\n at createStatusError (/home/ubuntu/node_modules/grpc/src/client.js:64:15)\n at ClientDuplexStream._emitStatusIfDone (/home/ubuntu/node_modules/grpc/src/client.js:270:19)\n at ClientDuplexStream._readsDone (/home/ubuntu/node_modules/grpc/src/client.js:236:8)\n at readCallback (/home/ubuntu/node_modules/grpc/src/client.js:296:12)"
not ok 1 Failed to create channels Error: SERVICE_UNAVAILABLE at ClientDuplexStream.
nkl199 (Wed, 23 May 2018 09:45:18 GMT):
@sgaddam I'd recommend looking into the logs of the remote network, you will likely have more detailed logging there that will help diagnose
sgaddam (Wed, 23 May 2018 09:59:51 GMT):
will do that
sgaddam (Wed, 23 May 2018 09:59:53 GMT):
thx
sgaddam (Wed, 23 May 2018 13:02:40 GMT):
@nkl199 This is because of connectivity issue
sgaddam (Wed, 23 May 2018 13:03:02 GMT):
Machine X is having Caliper installed
sgaddam (Wed, 23 May 2018 13:03:39 GMT):
Machine Y is with Hyperledger Fabric setup through Cello
sgaddam (Wed, 23 May 2018 13:04:10 GMT):
both are ubuntu in aws with bridge network
sgaddam (Wed, 23 May 2018 13:05:05 GMT):
when i try to ping the Machine Y orderer container from Machine X , the connection failed
sgaddam (Wed, 23 May 2018 13:05:38 GMT):
coz, i am connecting to the docker internal ipaddress of the orderer
sgaddam (Wed, 23 May 2018 13:05:53 GMT):
how do we solve this issue?
nkl199 (Wed, 23 May 2018 13:16:43 GMT):
good question!
nkl199 (Wed, 23 May 2018 13:20:39 GMT):
i've never gone through the remote caliper testing route so might not be the best person for this question.
klenik (Wed, 23 May 2018 20:48:10 GMT):
@sgaddam Can't you define a port mapping from the AWS VM port to the docker container port? That way you should be able to ping the public IP:port.
Something like this: https://github.com/hyperledger/caliper/blob/2ae2d5036457da7d4a2688a75938649e42f464d1/network/fabric-v11/2-org-2-peer/docker-compose.yaml#L27
KyleShrader (Wed, 23 May 2018 21:32:10 GMT):
Has joined the channel.
KyleShrader (Wed, 23 May 2018 21:32:16 GMT):
Has left the channel.
sgaddam (Thu, 24 May 2018 10:40:16 GMT):
@klenik @nkl199 not ok 1 Failed to create channels Error: create status is FORBIDDEN at channel.organizations.reduce.then.then.then (/home/ubuntu/caliper/src/fabric/create-channel.js:158:43) at
sgaddam (Thu, 24 May 2018 10:40:42 GMT):
I am getting the above error while running caliper
Haojun (Sat, 26 May 2018 09:28:43 GMT):
@sgaddam It seems the user accounts you used had no permission to create a channel. You can try updating the configuration file with accounts which have 'admin' rights.
Gandalf (Sun, 27 May 2018 04:08:53 GMT):
Has joined the channel.
RobertDiebels (Tue, 29 May 2018 07:56:23 GMT):
Hey guys, can I leave out the `tls_cacerts` of a peer if I don't have TLS enabled in Hyperledger Fabric?
RobertDiebels (Tue, 29 May 2018 07:56:23 GMT):
Hey guys, can I leave out the `tls_cacerts` property of a peer if I don't have TLS enabled in Hyperledger Fabric?
RobertDiebels (Tue, 29 May 2018 07:57:26 GMT):
I noticed that it's used everywhere to sign and I don't think I can.
LouisHu (Tue, 29 May 2018 09:56:20 GMT):
Has joined the channel.
Gvedam (Wed, 30 May 2018 09:16:01 GMT):
Has joined the channel.
MeenakshiSingh (Wed, 30 May 2018 10:35:51 GMT):
Has joined the channel.
Gvedam (Wed, 30 May 2018 14:02:49 GMT):
Hey everyone, getting the following error when Running Caliper using Zookeeper Client
*****************************************************************************************
Connecting to ZooKeeper......
Connected to ZooKeeper
not ok 3 TypeError: Cannot read property 'getUpdates' of undefined
---
operator: error
expected: |-
undefined
actual: |-
[TypeError: Cannot read property 'getUpdates' of undefined]
at: process.onetime (/home/ubuntu/caliper/node_modules/tape-promise/node_modules/onetime/index.js:22:12)
stack: |-
Gvedam (Thu, 31 May 2018 05:33:56 GMT):
zookeeper
peter.danko (Thu, 31 May 2018 09:17:26 GMT):
Has joined the channel.
Haojun (Thu, 31 May 2018 09:28:52 GMT):
@Gvedam Have you started the zk clients before starting the test? Can you submit the issue on github and give detailed description how to produce it?
Haojun (Thu, 31 May 2018 09:29:12 GMT):
cd ..
Gvedam (Thu, 31 May 2018 09:30:20 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=agkTFhyFtGFHjD7gS) @Haojun my bad , i have started them and it fixed the issue, However is it possible to have multiple Zookeeper servers taking tasks from a single master?
Haojun (Thu, 31 May 2018 09:32:15 GMT):
@Gvedam What do you mean multiple zk servers? How you would like to use them?
Gvedam (Thu, 31 May 2018 09:32:40 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=gJM9XWZXZrMaeEhxx) The main Aim is to generate traffic From different regions simultaneously
Gvedam (Thu, 31 May 2018 09:34:49 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=ZT97Yjo9wsepBSXEW) @Haojun Maybe couple of Zookeepers on different machines in different regions controlled from a single caliper node
Haojun (Thu, 31 May 2018 09:39:04 GMT):
Not sure if I understand your point. You can start multiple caliper clients (zookeeper clients) on different regions now to taking tasks.
Haojun (Thu, 31 May 2018 09:39:04 GMT):
Not sure if I understand your point. You can start multiple caliper clients (zookeeper clients) on different regions now to take tasks.
Haojun (Thu, 31 May 2018 09:40:17 GMT):
Those clients should registered with the same zookeeper server (or zookeeper cluster)
Gvedam (Thu, 31 May 2018 14:48:54 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=LHLA5p8kZyYiSpWSy) @Haojun Hello , getting the following error when running from Master using a Zookeeper client
Promise {
wangdong (Fri, 01 Jun 2018 02:26:18 GMT):
@Gvedam It seems that the connection to peer is not OK
Gvedam (Fri, 01 Jun 2018 06:09:27 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=nkDiD32wjSzMDLoE2) are there any ports that need to be opened on the zk client?
ShobhitSrivastava (Fri, 01 Jun 2018 06:52:53 GMT):
Has joined the channel.
ShobhitSrivastava (Fri, 01 Jun 2018 06:55:02 GMT):
hi All.. I have one fabric network up and running and i am connecting it using fabric-sdk. I tried to use caliper for performance but I am stuck in it and getting a lot of errors. I tried to fixed few but now at one place I am not making progress
ShobhitSrivastava (Fri, 01 Jun 2018 06:56:00 GMT):
Whenever i am running test it is failing on instantiation of chaincode, on checking through logs of chaincode conatiner i got below logs:
ShobhitSrivastava (Fri, 01 Jun 2018 06:56:10 GMT):
/opt/go/src/runtime/asm_amd64.s:2337
Error starting chaincode: error trying to connect to local peer: context deadline exceeded
ShobhitSrivastava (Fri, 01 Jun 2018 06:56:55 GMT):
on peer there is below logs:
ShobhitSrivastava (Fri, 01 Jun 2018 06:57:05 GMT):
2018-06-01 06:47:45.377 UTC [lscc] executeInstall -> INFO 038 Installed Chaincode [simple] Version [v0] to peer
2018-06-01 06:47:51.335 UTC [blocksProvider] DeliverBlocks -> ERRO 039 [mychannel] Got error &{FORBIDDEN}
2018-06-01 06:47:51.435 UTC [ConnProducer] DisableEndpoint -> WARN 03a Only 1 endpoint remained, will not black-list it
2018-06-01 06:47:45.377 UTC [lscc] executeInstall -> INFO 038 Installed Chaincode [simple] Version [v0] to peer
2018-06-01 06:47:51.335 UTC [blocksProvider] DeliverBlocks -> ERRO 039 [mychannel] Got error &{FORBIDDEN}
2018-06-01 06:47:51.435 UTC [ConnProducer] DisableEndpoint -> WARN 03a Only 1 endpoint remained, will not black-list it
2018-06-01 06:47:45.377 UTC [lscc] executeInstall -> INFO 038 Installed Chaincode [simple] Version [v0] to peer
2018-06-01 06:47:51.335 UTC [blocksProvider] DeliverBlocks -> ERRO 039 [mychannel] Got error &{FORBIDDEN}
2018-06-01 06:47:51.435 UTC [ConnProducer] DisableEndpoint -> WARN 03a Only 1 endpoint remained, will not black-list it
2018-06-01 06:47:45.377 UTC [lscc] executeInstall -> INFO 038 Installed Chaincode [simple] Version [v0] to peer
2018-06-01 06:47:51.335 UTC [blocksProvider] DeliverBlocks -> ERRO 039 [mychannel] Got error &{FORBIDDEN}
2018-06-01 06:47:51.435 UTC [ConnProducer] DisableEndpoint -> WARN 03a Only 1 endpoint remained, will not black-list it
ShobhitSrivastava (Fri, 01 Jun 2018 06:57:20 GMT):
any pointer to it?
Haojun (Fri, 01 Jun 2018 09:38:51 GMT):
@ShobhitSrivastava Sorry I've no idea about it. Can you instantiate chaincodes using fabric-sdk directly? Maybe you should go to fabric team to find out what's the mean of the log.
ShobhitSrivastava (Fri, 01 Jun 2018 09:40:30 GMT):
@Haojun. Yes it is working fine with fabric-sdk and I am running a poc on that. But with caliper dont know why it is happening
tallharish (Mon, 04 Jun 2018 04:48:24 GMT):
I am wondering if caliper can help collect "docker stats" from *remote* containers for Fabric.
tallharish (Mon, 04 Jun 2018 04:48:24 GMT):
I am wondering if caliper can help collect "docker stats" from *remote* containers for Fabric. If not, any hints for alternatives? Thanks
wangdong (Mon, 04 Jun 2018 05:34:53 GMT):
@tallharish yes ,it can do this.
tallharish (Mon, 04 Jun 2018 13:39:00 GMT):
@wangdong Thats great. how do I do it? I have caliper in one machine and rest of network in another machine. I am following fabric-remote.json and config-fabric.json as examples. I have the following set in "monitor" of config file, but it captures docker stats of the machine running caliper.
```
"type": ["docker", "process"],
"docker":{
"name": ["all"]
},
```
tallharish (Mon, 04 Jun 2018 13:39:00 GMT):
@wangdong Thats great. how do I do it? I have caliper in one machine and rest of network in another machine. I am following fabric-remote.json and config-fabric.json as examples. I have the following set in "monitor" of config file, but it captures docker stats of the machine running caliper.
```"type": ["docker", "process"],
"docker":{
"name": ["all"]
},
```
wangdong (Mon, 04 Jun 2018 15:16:30 GMT):
@tallharish you can read the code in src/comm/monitor-docker.js. you should give the value of name as http/https which refers the url of the container.
tallharish (Mon, 04 Jun 2018 20:10:07 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=agZJX889v448Htgdz) @wangdong Thanks. I am still trying to get it to work.
```"docker":{
"name": ["http://
tallharish (Mon, 04 Jun 2018 20:10:07 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=agZJX889v448Htgdz) @wangdong Thanks. I am still trying to get it to work. My transactions are going through, so grpcs etc is working fine.
```"docker":{
"name": ["http://
tallharish (Mon, 04 Jun 2018 22:33:49 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=agZJX889v448Htgdz) @wangdong Thanks. The example on https://github.com/hyperledger/caliper/blob/master/docs/Architecture.md helped. It took way longer to enable docker daemon on tcp:2375. For anyone looking for instructions for Ubuntu 16.04, the ones on this link worked for me https://docs.docker.com/install/linux/linux-postinstall/ (the one modifying the `docker.service` config file, not the `daemon.json` one.
tallharish (Mon, 04 Jun 2018 23:14:28 GMT):
@wangdong I think there's a bug on https://github.com/hyperledger/caliper/blob/master/src/comm/monitor-docker.js#L105. it should be `/all`. Assuming I need to put the docker.name as `http://hostname:2375/all`
tallharish (Mon, 04 Jun 2018 23:14:28 GMT):
@wangdong I think there's a bug on https://github.com/hyperledger/caliper/blob/master/src/comm/monitor-docker.js#L105. it should be `/all`. Assuming I need to put the docker. name as `http://hostname:2375/all`
wangdong (Tue, 05 Jun 2018 03:34:45 GMT):
@ sorry, I did not get you.
wangdong (Tue, 05 Jun 2018 03:34:45 GMT):
@tallharish sorry, I did not get you.
RobertDiebels (Tue, 05 Jun 2018 10:41:15 GMT):
Hey guys, question. If I have a network of 16 VM's and I want to monitor the docker containers on all of those nodes, do I need to run an instance of caliper on all of those nodes?
RobertDiebels (Tue, 05 Jun 2018 10:41:15 GMT):
Hey guys, question. If I have a network of 16 VM's and I want to monitor the docker containers on all of those VM's, do I need to run an instance of caliper on all of those nodes?
RobertDiebels (Tue, 05 Jun 2018 10:42:56 GMT):
I'd like to avoid exposing docker on a VM.
tallharish (Wed, 06 Jun 2018 20:03:19 GMT):
@RobertDiebels I am assuming one of the VMs is running Caliper and rest is running the Fabric (or other blockchain network). You can add the following to collect stats of all docker containers on this VM. In case you haven't, you need to enable the docker daemon to be accessible via tcp (on port say 2375)
```"type": ["docker", "process"],
"docker":{
"name": ["http://192.168.1.100:2375/all"]
```},
tallharish (Wed, 06 Jun 2018 20:03:19 GMT):
@RobertDiebels I am assuming one of the VMs is running Caliper and rest is running the Fabric (or other blockchain network). You can add the following to collect stats of all docker containers on this VM. In case you haven't, you need to enable the docker daemon to be accessible via tcp (on port say 2375)
```"type": ["docker", "process"],
"docker":{
"name": ["http://192.168.1.100:2375/all"]
}
```
tallharish (Wed, 06 Jun 2018 20:03:19 GMT):
@RobertDiebels I am assuming one of the VMs is running Caliper and rest is running the Fabric (or other blockchain network). You can add the following to your caliper config file to collect stats of all docker containers on this VM. In case you haven't, you need to enable the docker daemon to be accessible via tcp (on port say 2375)
```"type": ["docker", "process"],
"docker":{
"name": ["http://192.168.1.100:2375/all"]
}
```
tallharish (Wed, 06 Jun 2018 20:03:19 GMT):
@RobertDiebels I am assuming one of the VMs is running Caliper and rest is running the Fabric (or other blockchain network). You can add the following to your caliper config file to collect stats of *all* docker containers of a VM. In case you haven't, you need to enable the docker daemon to be accessible via tcp (on port say 2375)
```"type": ["docker", "process"],
"docker":{
"name": ["http://192.168.1.100:2375/all", "http://192.168.1.101:2375/all"]
}
```
tallharish (Wed, 06 Jun 2018 20:03:19 GMT):
@RobertDiebels I am assuming one of the VMs is running Caliper and rest is running the Fabric (or other blockchain network). You can add the following to your caliper config file to collect stats of *all* docker containers of the specified VM. In case you haven't, you need to enable the docker daemon to be accessible via tcp (on port say 2375)
```"type": ["docker", "process"],
"docker":{
"name": ["http://192.168.1.100:2375/all", "http://192.168.1.101:2375/all"]
}
```
tallharish (Wed, 06 Jun 2018 20:03:19 GMT):
@RobertDiebels I am assuming one of the VMs is running Caliper and rest is running the Fabric (or other blockchain network). You can add the following to your caliper config file to collect stats of *all* docker containers of the specified VMs. In case you haven't, you need to enable the docker daemon to be accessible via tcp (on port say 2375)
```"type": ["docker", "process"],
"docker":{
"name": ["http://192.168.1.100:2375/all", "http://192.168.1.101:2375/all"]
}
```
I got this working recently. But I guess there's a bug on line 105 of monitor-docker.js. I changed it to `/all` instead of `all` and it works fine now
sidkasat (Thu, 07 Jun 2018 03:41:45 GMT):
Has joined the channel.
DineshPrabhu (Thu, 07 Jun 2018 07:55:22 GMT):
Has joined the channel.
rangak (Thu, 07 Jun 2018 14:24:19 GMT):
Has joined the channel.
abraham (Fri, 08 Jun 2018 03:53:13 GMT):
Has joined the channel.
wangrangli (Fri, 08 Jun 2018 05:28:10 GMT):
Has joined the channel.
aKesav (Fri, 08 Jun 2018 07:34:36 GMT):
Has joined the channel.
aKesav (Fri, 08 Jun 2018 07:42:35 GMT):
Has left the channel.
RobertDiebels (Fri, 08 Jun 2018 07:52:37 GMT):
@tallharish thanks for the answer. Doesn't that mean that you're exposing docker on all your VM's?
klenik (Fri, 08 Jun 2018 09:24:34 GMT):
@RobertDiebels True, but why is it a problem during development time? (Unless you have some corporate infrastructure constraint) Plus you can whitelist the IP of the VM where Caliper is running to stay safe.
purandam (Fri, 08 Jun 2018 12:16:18 GMT):
Has joined the channel.
purandam (Fri, 08 Jun 2018 12:16:45 GMT):
Using "Caliper " I have started the performance analysis for hyperledger fabric . As Caliper provided the sample of Fabric1.0 with the GO lang. Can anybody suggest is it working for fabric 1.1 node sdk?
klenik (Fri, 08 Jun 2018 13:16:51 GMT):
@purandam Caliper also supports Fabric 1.1, just change the docker image versions in the docker compose files, and install the 1.1 client and CA SDKs with npm. As for nodejs chaincodes, see this issue:
https://github.com/hyperledger/caliper/issues/49
enjoythecode (Fri, 08 Jun 2018 14:35:12 GMT):
Has joined the channel.
Jithink (Sat, 09 Jun 2018 12:06:14 GMT):
Has joined the channel.
RobertDiebels (Sat, 09 Jun 2018 13:08:08 GMT):
@klenik yea that's true.
wangdong (Sun, 10 Jun 2018 01:40:15 GMT):
@tallharish But what i see is "all" not "/all". did you pull the latest code?
ThangaMariappan (Mon, 11 Jun 2018 07:14:38 GMT):
How to contribute or join as a tester in caliper?
wangdong (Mon, 11 Jun 2018 07:30:14 GMT):
@just pull the request if you like
wangdong (Mon, 11 Jun 2018 07:30:14 GMT):
@ThangaMariappan just pull the request if you like
wangdong (Mon, 11 Jun 2018 07:30:47 GMT):
But before this your PR may need to be reviewed.
RobertDiebels (Mon, 11 Jun 2018 10:38:40 GMT):
@klenik Don't know if you're interested in this but I thought I'd mention it anyway. I run Fabric in Kubernetes and I wanted to avoid having to configure all my VM's docker daemons to expose a port. So I ended up using a NodePort Service + DaemonSet + socat Container that bound traffic from TCP:2375 to unix://var/run/docker.sock
RobertDiebels (Mon, 11 Jun 2018 10:39:28 GMT):
This way I don't have to configure anything on my VM's and I can still use the node IP-addresses.
muna (Mon, 11 Jun 2018 13:23:22 GMT):
Has joined the channel.
RobertDiebels (Mon, 11 Jun 2018 14:31:43 GMT):
Guys, at what point does Caliper try writing to `/var/log/pods/
RobertDiebels (Mon, 11 Jun 2018 14:32:06 GMT):
I'm getting an `failed to open log file "/var/log/pods/12160b8c-6d80-11e8-937b-00155d014127/caliper_0.log": open /var/log/pods/12160b8c-6d80-11e8-937b-00155d014127/caliper_0.log: no such file or directory` which is true because the file doesn't exist.
RobertDiebels (Mon, 11 Jun 2018 14:33:29 GMT):
Wait.. this may actually be a file on my cluster. Dunno why it would report on that though.
klenik (Mon, 11 Jun 2018 14:39:29 GMT):
@RobertDiebels thanks, these methods will come in handy, since we plan to look into HL Cello and Ansible
ParthRaval (Tue, 12 Jun 2018 05:59:13 GMT):
Has joined the channel.
ParthRaval (Tue, 12 Jun 2018 06:00:15 GMT):
How to test node js chaincode in caliper?
wangdong (Tue, 12 Jun 2018 06:04:07 GMT):
nothing special I think.
wangdong (Tue, 12 Jun 2018 06:04:19 GMT):
you will need to install fabric-shim
wangdong (Tue, 12 Jun 2018 06:04:23 GMT):
@ParthRaval
ParthRaval (Tue, 12 Jun 2018 06:05:27 GMT):
@wangdong do you have any sample test file?
wangdong (Tue, 12 Jun 2018 06:10:30 GMT):
no yet.
ParthRaval (Tue, 12 Jun 2018 06:33:38 GMT):
@wangdong thanks
wangdong (Tue, 12 Jun 2018 06:36:54 GMT):
find some example in the fabric-shim on github or fabrci/example.
wangdong (Tue, 12 Jun 2018 06:36:59 GMT):
You will get some
ParthRaval (Tue, 12 Jun 2018 06:37:34 GMT):
@wangdong Sure
ThangaMariappan (Tue, 12 Jun 2018 06:57:42 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=2mPQ4u45xgCTzkovq) @wangdong Hi i dont get your point,can you please elaborate on this
ThangaMariappan (Tue, 12 Jun 2018 06:57:42 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=2mPQ4u45xgCTzkovq) @wangdong Hi i dont get your point,can you please elaborate on this,pull request means from git and contribute?
RobertDiebels (Tue, 12 Jun 2018 07:35:18 GMT):
@klenik no problem. I'm planning on publishing most of it in a month or so.
Amiy (Tue, 12 Jun 2018 14:48:01 GMT):
Has joined the channel.
wangrangli (Thu, 14 Jun 2018 03:21:46 GMT):
Clipboard - 2018年6月14日上午11点21分
wangrangli (Thu, 14 Jun 2018 03:21:47 GMT):
@wangdong hi, I'm first try to caliper. I run the byfn network in the server. Then i run the command "node benchmark/simple/main.js -c config-fabric.notup.json -n ../../network/fabric-v11/2-org-2-peer/composer-tls.json" , and i get the error message as the picture. My question is , I don't grep any "/etc/" word in the caliper folder, why the command tell me not find the "/etc/hyperledger/msp/users/Admin@org1.example.com/msp folder"?
wangrangli (Thu, 14 Jun 2018 03:26:54 GMT):
@wangdong I mean I don't find any one "/etc" in the caliper folder, and the folder "/etc/hyperledger/...." that should in the fabric peer in the docker, not in the server I run command at the server.
wangrangli (Thu, 14 Jun 2018 04:12:05 GMT):
And in the peer, the folder is /etc/hyperledger/msp/peer/msp, not the "/etc/hyperledger/msp/users/Admin@org1.example.com/msp ", where could i change the "mspconfig" in the src/composer/composer_utils line 90? Thank you!
absingh0 (Thu, 14 Jun 2018 04:30:46 GMT):
Has joined the channel.
wangrangli (Thu, 14 Jun 2018 05:43:09 GMT):
sorry, that's my error. I find the mspconfig in the composer-tls.json file. Thank you!
Gvedam (Thu, 14 Jun 2018 06:59:23 GMT):
Hi all, is it possible to have Caliper run tests on multiples channels and using multiple chaincodes in a single Test?
Nabilel 1 (Thu, 14 Jun 2018 09:05:32 GMT):
Has joined the channel.
satishveerappa1 (Thu, 14 Jun 2018 12:54:45 GMT):
Has joined the channel.
klenik (Thu, 14 Jun 2018 13:03:14 GMT):
@Gvedam I think it's not supported currently. As I see, the user-defined callback modules are associated with a single channel/context (see: https://github.com/hyperledger/caliper/blob/df2d26b98a9b147510a6148d2e61840ea9f24ece/benchmark/simple/fabric.json#L92)
@Haojun correct me if I'm wrong.
paulananth (Thu, 14 Jun 2018 16:20:19 GMT):
Has joined the channel.
ATMarcks (Fri, 15 Jun 2018 02:37:52 GMT):
Has joined the channel.
PRRemon (Fri, 15 Jun 2018 06:06:31 GMT):
Has joined the channel.
miiiiiyoung (Fri, 15 Jun 2018 06:49:02 GMT):
Has joined the channel.
miiiiiyoung (Fri, 15 Jun 2018 06:49:30 GMT):
Hi, everyone. I want some help anyone.
I use my custom Hyperledger Fabric network. And I configure fabric.json & config.json to use caliper.
At first, caliper is worked succeessfully.
But, at any moment it doesn't work.
I run `cd /opt/gopath/src/github.com/hyperledger/caliper/
node benchmark/simple/main.js -c config.json -n fabric.json` command. And that error occurs.
miiiiiyoung (Fri, 15 Jun 2018 06:49:30 GMT):
Hi, everyone. I want some help anyone.
I use my custom Hyperledger Fabric network. And I configure fabric.json & config.json to use caliper.
At first, caliper is worked succeessfully.
But, at any moment it doesn't work.
I run `cd /opt/gopath/src/github.com/hyperledger/caliper/
node benchmark/simple/main.js -c config.json -n fabric.json` command. And that error occurs.
``
miiiiiyoung (Fri, 15 Jun 2018 06:49:30 GMT):
Hi, everyone. I want some help anyone.
I use my custom Hyperledger Fabric network. And I configure fabric.json & config.json to use caliper.
At first, caliper is worked succeessfully.
But, at any moment it doesn't work.
I run `cd /opt/gopath/src/github.com/hyperledger/caliper/
node benchmark/simple/main.js -c config.json -n fabric.json` command. And that error occurs.
miiiiiyoung (Fri, 15 Jun 2018 06:49:30 GMT):
Hi, everyone. I want some help anyone.
I use my custom Hyperledger Fabric network. And I configure fabric.json & config.json to use caliper.
At first, caliper is worked succeessfully.
But, at any moment it doesn't work.
I run `cd /opt/gopath/src/github.com/hyperledger/caliper/node benchmark/simple/main.js -c config.json -n fabric.json` command. And that error occurs.
miiiiiyoung (Fri, 15 Jun 2018 06:51:26 GMT):
스크린샷, 2018-06-15 14-11-03.png
miiiiiyoung (Fri, 15 Jun 2018 06:52:08 GMT):
orderer container's log is print that error. honeybeechannel is my custom channel name.
```2018-06-15 06:39:54.923 UTC [common/deliver] deliverBlocks -> ERRO 154 [channel: honeybeechannel] Error reading from channel, cause was: NOT_FOUND
2018-06-15 06:39:55.725 UTC [common/deliver] Handle -> WARN 155 Error reading from 172.18.0.1:57432: rpc error: code = Canceled desc = context canceled
```
miiiiiyoung (Fri, 15 Jun 2018 06:52:20 GMT):
Help me anyone please T.T
PRRemon (Fri, 15 Jun 2018 07:00:39 GMT):
@miiiiiyoung are you using node chaincode for testing?
miiiiiyoung (Fri, 15 Jun 2018 07:07:32 GMT):
@PRRemon No, I'm using go lang chaincode for testing.
kiranarshakota (Fri, 15 Jun 2018 07:07:43 GMT):
@klenik @Haojun , Can we test multiple smartcontracts in the single test , each test using a smartcontract?
lotty02cho (Fri, 15 Jun 2018 08:33:09 GMT):
Has joined the channel.
shken (Fri, 15 Jun 2018 08:33:26 GMT):
Has joined the channel.
kenty (Fri, 15 Jun 2018 15:06:47 GMT):
Has joined the channel.
RenanKruger (Sat, 16 Jun 2018 13:56:37 GMT):
Has joined the channel.
ricardoshuree (Sat, 16 Jun 2018 13:58:31 GMT):
Has joined the channel.
faustovanin (Sat, 16 Jun 2018 13:58:39 GMT):
Has joined the channel.
Nabilel 1 (Sun, 17 Jun 2018 20:58:48 GMT):
Hello everyone, I am very new to caliper and I am trying to run my first test. I generated the first report and in the table I have the names open and query. Can anyone tell me what do they mean?
lotty02cho (Sun, 17 Jun 2018 23:59:59 GMT):
Hi, I'm trying to run caliper/simple by using fabric.
At first, I can run the sample code and generate first report.
However, when I edit fabric.json to use own my network, The following error occurs.
`sendDeliver - rejecting - status:NOT_FOUND`
Does anyone knows about this issue? I can't handle this..
ps. I already made channel so, I skip create channel part, using "channel-deployed-true"
lotty02cho (Mon, 18 Jun 2018 00:02:31 GMT):
Hi, I'm trying to run caliper/simple by using fabric.
At first, I can run the sample code and generate first report.
However, when I edit fabric.json to use own my network, The following error occurs.
`error: [Orderer.js]: sendDeliver - rejecting - status:NOT_FOUND`
`error: [Channel.js]: getChannelConfig - Failed Proposal. Error: Error: Invalid results returned ::NOT_FOUND`
```
``` Does anyone knows about this issue? I can't handle this..
ps. I already made channel so, I skip create channel part, using "channel-deployed-true"
lotty02cho (Mon, 18 Jun 2018 00:02:31 GMT):
Hi, I'm trying to run caliper/simple by using fabric.
At first, I can run the sample code and generate first report.
However, when I edit fabric.json to use own my network, The following error occurs.
`error: [Orderer.js]: sendDeliver - rejecting - status:NOT_FOUND`
`error: [Channel.js]: getChannelConfig - Failed Proposal. Error: Error: Invalid results returned ::NOT_FOUND`
Does anyone knows about this issue? I can't handle this..
ps. I already made channel so, I skip create channel part, using "channel-deployed-true"
lotty02cho (Mon, 18 Jun 2018 00:02:31 GMT):
Hi, I'm trying to run caliper/simple by using fabric.
At first, I can run the sample code and generate first report.
However, when I edit fabric.json to use own my network, The following error occurs.
`error: [Orderer.js]: sendDeliver - rejecting - status:NOT_FOUND`
`error: [Channel.js]: getChannelConfig - Failed Proposal. Error: Error: Invalid results returned ::NOT_FOUND`
Does anyone knows about this issue? I can't handle this..
ps. I already made channel so, I skip create channel part, using `channel/deployed:true` in fabric.json
lotty02cho (Mon, 18 Jun 2018 00:05:43 GMT):
180618_caliper_error.PNG
lotty02cho (Mon, 18 Jun 2018 00:05:43 GMT):
180618_caliper_error.PNG
Gvedam (Mon, 18 Jun 2018 06:41:34 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=7P2oLYQBsZwycsPQC) @klenik Okay, is it possible to have test with multiple chaincodes on a single channel in differents rounds of each test?
klenik (Mon, 18 Jun 2018 07:40:21 GMT):
@kiranarshakota @Gvedam If the chaincodes are deployed on the same channel (called context in Caliper), then you can specify the target chaincode for the transaction when calling the `invokeSmartContract` function in your callback module. The function takes the chaincode name and version as parameters (plus other arguments of course) and these together form a unique ID within a channel. I haven't actually done similar tests, so I'm interested in your results :)
klenik (Mon, 18 Jun 2018 07:42:26 GMT):
@Nabilel 1 In your Caliper config file every round is associated with a user-defined callback module. For the `simple` benchmark, these modules are implemented in the `query.js` and `open.js` files. The report binds these names to the results of each round.
purandam (Tue, 19 Jun 2018 05:46:55 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=3oFQjaDGQGnni47vR) @klenik How to pass "node" language in fabric.json?
purandam (Tue, 19 Jun 2018 05:46:58 GMT):
Clipboard - June 19, 2018 11:16 AM
klenik (Tue, 19 Jun 2018 07:35:10 GMT):
@purandam set `"node"` for `language`, and set the *absolute* path of the chaincode directory for `path`. If this doesn't work, let me know, and I'll look into it
purandam (Tue, 19 Jun 2018 09:34:45 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=n9RTFGBamMdb5dHGy) @klenik Still I am getting error after changing the path and language . I got below error.
purandam (Tue, 19 Jun 2018 09:35:41 GMT):
Clipboard - June 19, 2018 3:05 PM
harsha0826 (Wed, 20 Jun 2018 09:34:03 GMT):
Has joined the channel.
harsha0826 (Wed, 20 Jun 2018 09:38:03 GMT):
can anyone use caliper?
waleed (Wed, 20 Jun 2018 09:41:51 GMT):
Has joined the channel.
RobertDiebels (Wed, 20 Jun 2018 10:39:32 GMT):
@harsha0826 I've gotten to the instantiate Chaincode test so far. But I'm using a fork I made (with some minor adjustments).
RobertDiebels (Wed, 20 Jun 2018 10:40:00 GMT):
Or did you mean if it was free to use for anyone?
harsha0826 (Wed, 20 Jun 2018 10:41:30 GMT):
i wanted to know that any performance testing was done on blockchain app using caliper
harsha0826 (Wed, 20 Jun 2018 10:50:59 GMT):
do anyone have idea on performance testing of API calls in blockchain?
klenik (Wed, 20 Jun 2018 11:03:06 GMT):
@harsha0826 Caliper is still in incubation, and I'm not aware of any _public_, thorough performance tests using Caliper, but this could change soon :) For the 2nd question: Caliper provides end-to-end measurement capabilities. For performance testing individual components, take a look at the `fabric-test` repository (https://github.com/hyperledger/fabric-test), and let me know if you found anything interesting :)
BlackCat1397 (Wed, 20 Jun 2018 15:01:18 GMT):
Has joined the channel.
BlackCat1397 (Wed, 20 Jun 2018 15:04:54 GMT):
Hello!
Is there simple way to launch benchmark on deployed Sawtooth network? Just write rest address and launch.
harsha0826 (Wed, 20 Jun 2018 15:47:02 GMT):
thanks @klenik i will go through it
Katie_Wei (Wed, 20 Jun 2018 18:40:41 GMT):
Has joined the channel.
lotty02cho (Thu, 21 Jun 2018 08:01:20 GMT):
Hi, everybody. I have some question.
I edited my config.json and fabric.json for running my chaincodes.
There are 2 organizations(org1, org6, each is a different machine).
and after I run the code, I can get html report.
but there is only I can see is org6 perfomance list.
If I want to check org1's performance, what should I do?
Is it related to Endorsement-Policy in Fabric.json?
Please let me know if you guys know this.
lotty02cho (Thu, 21 Jun 2018 08:01:20 GMT):
Hi, everybody. I have some question.
I edited my config.json and fabric.json for running my chaincodes.
There are 2 organizations(org1, org6, each is a different machine).
and after I run the code, I can get html report.
but there is only I can see is org6 perfomance list.
If I want to check performance of org1, what should I do?
Is it related to Endorsement-Policy in Fabric.json?
Please let me know if you guys know this.
lotty02cho (Thu, 21 Jun 2018 08:02:17 GMT):
180621_howCanIprintOrg1Data.PNG
klenik (Thu, 21 Jun 2018 08:29:42 GMT):
@lotty02cho If by performance you mean resource metrics, then you can configure the docker endpoints to monitor in the `caliper.json` config files. There was some discussion about this recently in this channel, but the conclusion was something like this (but scroll back for the more accurate discussion):
[ ](https://chat.hyperledger.org/channel/caliper?msg=hRoyWe6PWzrvgytbh)
BlackCat1397 (Thu, 21 Jun 2018 09:45:43 GMT):
Can somebody help with configuration, please?
BlackCat1397 (Thu, 21 Jun 2018 10:23:52 GMT):
Error
BlackCat1397 (Thu, 21 Jun 2018 10:24:04 GMT):
Is it normal behavior?
demonkm (Thu, 21 Jun 2018 23:44:21 GMT):
Has joined the channel.
nvxtien (Fri, 22 Jun 2018 11:45:19 GMT):
Has joined the channel.
BlackCat1397 (Fri, 22 Jun 2018 15:01:30 GMT):
Hi there!
Can somebody help with queries to Sawtooth?
lotty02cho (Mon, 25 Jun 2018 02:03:37 GMT):
Hi~ I wanna try to run caliper by using chaincodes for Node.js.
Do they not support node.js version? or Is there something I have to edit? because there is some path error in my pacakage.
lotty02cho (Mon, 25 Jun 2018 02:03:37 GMT):
Hi~ I wanna try to run caliper by using chaincodes for Node.js.
Do they not support node.js version? or Is there something I have to edit? because there is some path error in my pacakage.
lotty02cho (Mon, 25 Jun 2018 02:03:37 GMT):
Hi~ I wanna try to run caliper by using chaincodes for Node.js.
`"chaincodes": [{"id": "ccex0_1", "path": "/opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/ccexcc", "language":"node", "version": "v0.1", "channel": "org6channel"}],`
Do they not support node.js version? or Is there something I have to edit? because there is some path error in my pacakage.
`error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "can't load package: package contract/fabric/ccexcc: cannot find package "contract/fabric/ccexcc" in any of:
/opt/go/src/contract/fabric/ccexcc (from $GOROOT)
/chaincode/input/src/contract/fabric/ccexcc (from $GOPATH)
/opt/gopath/src/contract/fabric/ccexcc
"
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "can't load package: package contract/fabric/ccexcc: cannot find package "contract/fabric/ccexcc" in any of:
/opt/go/src/contract/fabric/ccexcc (from $GOROOT)
/chaincode/input/src/contract/fabric/ccexcc (from $GOPATH)
/opt/gopath/src/contract/fabric/ccexcc
"
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "can't load package: package contract/fabric/ccexcc: cannot find package "contract/fabric/ccexcc" in any of:
/opt/go/src/contract/fabric/ccexcc (from $GOROOT)
/chaincode/input/src/contract/fabric/ccexcc (from $GOPATH)
/opt/gopath/src/contract/fabric/ccexcc
"
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "can't load package: package contract/fabric/ccexcc: cannot find package "contract/fabric/ccexcc" in any of:
/opt/go/src/contract/fabric/ccexcc (from $GOROOT)
/chaincode/input/src/contract/fabric/ccexcc (from $GOPATH)
/opt/gopath/src/contract/fabric/ccexcc
`
lotty02cho (Mon, 25 Jun 2018 02:03:37 GMT):
Hi~ I wanna try to run caliper by using chaincodes for Node.js.
`"chaincodes": [{"id": "ccex0_1", "path": "/opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/ccexcc", "language":"node", "version": "v0.1", "channel": "org6channel"}],`
Do they not support node.js version? or Is there something I have to edit? because there is some path error in my pacakage.
`error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "can't load package: package contract/fabric/ccexcc: cannot find package "contract/fabric/ccexcc" in any of:
/opt/go/src/contract/fabric/ccexcc (from $GOROOT)
/chaincode/input/src/contract/fabric/ccexcc (from $GOPATH)
/opt/gopath/src/contract/fabric/ccexcc
"
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "can't load package: package contract/fabric/ccexcc: cannot find package "contract/fabric/ccexcc" in any of:
/opt/go/src/contract/fabric/ccexcc (from $GOROOT)
/chaincode/input/src/contract/fabric/ccexcc (from $GOPATH)
/opt/gopath/src/contract/fabric/ccexcc
"
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "can't load package: package contract/fabric/ccexcc: cannot find package "contract/fabric/ccexcc" in any of:
/opt/go/src/contract/fabric/ccexcc (from $GOROOT)
/chaincode/input/src/contract/fabric/ccexcc (from $GOPATH)
/opt/gopath/src/contract/fabric/ccexcc
"
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "can't load package: package contract/fabric/ccexcc: cannot find package "contract/fabric/ccexcc" in any of:
/opt/go/src/contract/fabric/ccexcc (from $GOROOT)
/chaincode/input/src/contract/fabric/ccexcc (from $GOPATH)
/opt/gopath/src/contract/fabric/ccexcc`
lotty02cho (Mon, 25 Jun 2018 02:03:37 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=2uF3ZAww35zxqB97T) @wangdong I already set package.json in my folder, but It still error like this. I think it might be path error about $GOPATH like that. is there something I should change?
lotty02cho (Mon, 25 Jun 2018 02:03:37 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=2uF3ZAww35zxqB97T) @wangdong I already set package.json in my folder, but It still error like this. I think it might be path error about $GOPATH like that. is there something I should change?
demonkm (Mon, 25 Jun 2018 04:09:20 GMT):
IMG_0851.jpeg
demonkm (Mon, 25 Jun 2018 04:09:53 GMT):
Has anyone ever had this problem? How did you solve it?
demonkm (Mon, 25 Jun 2018 04:10:25 GMT):
Please help.
wangdong (Mon, 25 Jun 2018 04:30:01 GMT):
The error means something wrong with your cert
wangdong (Mon, 25 Jun 2018 04:30:36 GMT):
@lotty02cho did you install the fabric-shim module?
wangdong (Mon, 25 Jun 2018 04:30:45 GMT):
It is required.
wangdong (Mon, 25 Jun 2018 04:30:45 GMT):
It is required for node chaincode
lotty02cho (Mon, 25 Jun 2018 04:57:44 GMT):
180625_GOLANGpachageError.PNG
wangdong (Mon, 25 Jun 2018 05:03:07 GMT):
At first, make sure the node sdk version supports node chain code.
wangdong (Mon, 25 Jun 2018 05:06:44 GMT):
@lotty02cho try to set the gopath to see if it can be resolved.
lotty02cho (Mon, 25 Jun 2018 05:25:20 GMT):
Okay, At first, when caliper starts instantiate it, below errors comes out.
`error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "can't load package: package contract/fabric/ccexcc: cannot find package "contract/fabric/ccexcc" in any of: /opt/go/src/contract/fabric/ccexcc (from $GOROOT) /chaincode/input/src/contract/fabric/ccexcc (from $GOPATH) /opt/gopath/src/contract/fabric/ccexcc`
So, I think that it might be path error , and so I changed chaincodes path in fabric.json like that
`"chaincodes": [{"id": "ccex0_6", "path": "contract/fabric/ccexcc/", "language":"node", "version": "v0.6", "channel": "org6channel"}],`
↓
`"chaincodes": [{"id": "ccex0_6", "path": "opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/ccexcc", "language":"node", "version": "v0.6", "channel": "org6channel"}],`
however, there is another error comes out like below.
`info: [packager/Golang.js]: packaging GOLANG from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/ccexcc/events.js:183 throw er; // Unhandled 'error' event ^`
I think there might be some paths linked gopath or golang. because I didn't set "language": "golang" like that.
lotty02cho (Mon, 25 Jun 2018 05:25:20 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=68PzLF2vb9TS6R89w) @wangdong Okay, At first, when caliper starts instantiate it, below errors comes out.
`error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "can't load package: package contract/fabric/ccexcc: cannot find package "contract/fabric/ccexcc" in any of: /opt/go/src/contract/fabric/ccexcc (from $GOROOT) /chaincode/input/src/contract/fabric/ccexcc (from $GOPATH) /opt/gopath/src/contract/fabric/ccexcc`
So, I think that it might be path error , and so I changed chaincodes path in fabric.json like that
`"chaincodes": [{"id": "ccex0_6", "path": "contract/fabric/ccexcc/", "language":"node", "version": "v0.6", "channel": "org6channel"}],`
↓
`"chaincodes": [{"id": "ccex0_6", "path": "opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/ccexcc", "language":"node", "version": "v0.6", "channel": "org6channel"}],`
however, there is another error comes out like below.
`info: [packager/Golang.js]: packaging GOLANG from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/ccexcc/events.js:183 throw er; // Unhandled 'error' event ^`
I think there might be some paths linked gopath or golang. because I didn't set "language": "golang" like that.
wangdong (Mon, 25 Jun 2018 06:24:04 GMT):
@what is the version fo the node sdk, make sure it supports node chain code
wangdong (Mon, 25 Jun 2018 06:24:04 GMT):
@lotty02cho what is the version fo the node sdk, make sure it supports node chain code
wangdong (Mon, 25 Jun 2018 06:24:35 GMT):
did you installed fabric-shim module?
wangdong (Mon, 25 Jun 2018 06:24:35 GMT):
Have you installed fabric-shim module?
lotty02cho (Mon, 25 Jun 2018 06:27:33 GMT):
Yes, I command `npm install fabric-shim@1.1.0` and my node version is `node -v v8.11.2`.
lotty02cho (Mon, 25 Jun 2018 06:27:33 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=XE2eNo5PKaH2WrPGJ) @wangdong Yes, I already command `npm install fabric-shim@1.1.0` and my node version is `node -v v8.11.2`.
RobertDiebels (Mon, 25 Jun 2018 06:57:19 GMT):
@lotty02cho could you tell me if you added the source code for your chaincode to your peers?
RobertDiebels (Mon, 25 Jun 2018 06:57:48 GMT):
I'm running into the same error, see: https://stackoverflow.com/questions/50963477/hyperledger-fabric-cant-find-go-files-when-building-chaincode
RobertDiebels (Mon, 25 Jun 2018 06:58:19 GMT):
Did you only install the package? Or did you also add the files somewhere?
lotty02cho (Mon, 25 Jun 2018 07:11:02 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=dggyhtiDPhQ83MbHA) @RobertDiebels Sure, I just put my chaincode which name is ccexcc.js in src/contract/fabric/ccexcc and also put package.json.
RobertDiebels (Mon, 25 Jun 2018 07:11:32 GMT):
But did you mount them into the fabric-peer containers?
lotty02cho (Mon, 25 Jun 2018 07:11:35 GMT):
180625_contractPath.PNG
lotty02cho (Mon, 25 Jun 2018 07:11:47 GMT):
Have you try to install chaincodes for Node.js?
RobertDiebels (Mon, 25 Jun 2018 07:11:57 GMT):
No I'm using golang for now.
RobertDiebels (Mon, 25 Jun 2018 07:12:29 GMT):
But you didn't mount the files into your peer containers?
RobertDiebels (Mon, 25 Jun 2018 07:12:39 GMT):
You just used Caliper to install and instantiate?
lotty02cho (Mon, 25 Jun 2018 07:28:00 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=YctCxeiif94TmfRW4) @RobertDiebelsI set my org, orderer, chaincode type in fabric.json.
when I enter my cli container, I can see installed chaincodes and instantiated chaincodes both.
lotty02cho (Mon, 25 Jun 2018 07:28:35 GMT):
180625_ForRobertDiebels.PNG
lotty02cho (Mon, 25 Jun 2018 07:31:09 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=PtfTjusbZWjeea5tC) As I mentioned before, when caliper starts instantiating chaincodes, error occurs. so there is no instantiated chaincode ccexv0_~.
lotty02cho (Mon, 25 Jun 2018 07:31:09 GMT):
└▶ As I mentioned before, when caliper starts instantiating chaincodes, error occurs. so there is no instantiated chaincode ccexv0_~.
lotty02cho (Mon, 25 Jun 2018 07:31:09 GMT):
I just edited blockchain/config: "benchmark/simple/fabric_node.json"
Is there any datas that I have to set to use node.js chaincode in my config.json?
wangdong (Mon, 25 Jun 2018 07:33:45 GMT):
I have an eye on the error, it should not the Golang.js which raise the error.
wangdong (Mon, 25 Jun 2018 07:34:09 GMT):
There is a lib for node chain code, Node.js
wangdong (Mon, 25 Jun 2018 07:34:28 GMT):
I think there is something wrong with the config
wangdong (Mon, 25 Jun 2018 07:34:39 GMT):
@lotty02cho
wangdong (Mon, 25 Jun 2018 07:55:58 GMT):
And a package.json is needed in the chain code dir like:
wangdong (Mon, 25 Jun 2018 07:56:31 GMT):
Screen Shot 2018-06-25 at 3.56.01 PM.png
harsha0826 (Mon, 25 Jun 2018 08:01:04 GMT):
is anyone using caliper to test applications?
lotty02cho (Mon, 25 Jun 2018 08:12:52 GMT):
180625_whereIsMyErrorInConfig.PNG
lotty02cho (Mon, 25 Jun 2018 08:13:16 GMT):
@wangdong I just edited blockchain/config: "benchmark/simple/fabric_node.json"
Is there any datas that I have to set to use node.js chaincode in my config.json?
wangdong (Mon, 25 Jun 2018 08:16:55 GMT):
it looks good
wangdong (Mon, 25 Jun 2018 08:21:01 GMT):
I don't think this error has some thing to do with this config file.
wangdong (Mon, 25 Jun 2018 08:22:41 GMT):
when to package the chain code, there is a adjust which language is used for the chain code. Then choose the proper lib to package the chain code.
wangdong (Mon, 25 Jun 2018 08:22:59 GMT):
I will have a look at the code in caliper of installing chain code
wangdong (Mon, 25 Jun 2018 08:25:43 GMT):
It is good too. I think the config of the node chain code is not passed to node sdk. The language config is mis parsed.
harsha0826 (Mon, 25 Jun 2018 09:02:25 GMT):
can we test block chain application using Load Runner??
RobertDiebels (Mon, 25 Jun 2018 09:10:44 GMT):
@lotty02cho I don't understand. Did you or did you now mount your chaincode into the network?
RobertDiebels (Mon, 25 Jun 2018 09:10:44 GMT):
@lotty02cho I don't understand. Did you or did you not mount your chaincode into the network?
RobertDiebels (Mon, 25 Jun 2018 09:10:44 GMT):
@lotty02cho I don't understand. Did you or did you not mount your chaincode into the containers?
lotty02cho (Mon, 25 Jun 2018 09:35:09 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=6MiLYZxzr2vNgeEdG) @RobertDiebels I installed and instantiated chaincodes in my peers, but when I make chaincode for node.js, error comes out.
rkrish82 (Mon, 25 Jun 2018 09:46:21 GMT):
Hi All, How do I caliper small bank benchmark test on a 10 node fabric network?
rkrish82 (Mon, 25 Jun 2018 09:46:21 GMT):
Hi All, How do I run caliper small bank benchmark test on a 10 node fabric network?
lotty02cho (Mon, 25 Jun 2018 09:46:40 GMT):
If someone try to run chaincodes for node.js or know about issues, please.. let me know. TT
wangdong (Mon, 25 Jun 2018 09:47:49 GMT):
@lotty02cho I may help. I will try caliper with node chain code
wangdong (Mon, 25 Jun 2018 09:47:58 GMT):
try to debug it.
RobertDiebels (Mon, 25 Jun 2018 10:57:57 GMT):
@lotty02cho if it is complaining about go files still (even if you're using NodeJS) you should check the type you're setting for you chaincode.
RobertDiebels (Mon, 25 Jun 2018 10:57:57 GMT):
@lotty02cho if it is complaining about go files still (even if you're using NodeJS) you should check the type you're setting for your chaincode.
RobertDiebels (Mon, 25 Jun 2018 10:58:51 GMT):
Check your `fabric_node.json` file and see if the `type` for your chaincode is set to `node`
lotty02cho (Mon, 25 Jun 2018 23:35:09 GMT):
@RobertDiebels Yes, it is still path error like $GOPATH or $GOROOT, something like that. and I already set chaincode type like below.
`"chaincodes": [{"id": "ccex0_9", "path": "contract/fabric/ccexcc/", "language":"node", "version": "v0.9", "channel": "org6channel"}],`
harsha0826 (Tue, 26 Jun 2018 05:35:43 GMT):
what are the key performance indicators should be checked in Block Chain application? @rjones
rjones (Tue, 26 Jun 2018 05:35:43 GMT):
Has joined the channel.
wangdong (Tue, 26 Jun 2018 06:54:01 GMT):
@lotty02cho I got the root cause for your problem
wangdong (Tue, 26 Jun 2018 06:54:46 GMT):
when I command "npm install" it will install fabric-client v1.0.8 automatically
wangdong (Tue, 26 Jun 2018 06:55:21 GMT):
But node sdk supports node chain code after 1.1.0
wangdong (Tue, 26 Jun 2018 06:55:31 GMT):
Please make sure this
wangdong (Tue, 26 Jun 2018 06:56:36 GMT):
And caliper now does not support node chain code. when you try to install node skd, it will complain the dir or file can not be found.
wangdong (Tue, 26 Jun 2018 06:56:54 GMT):
But This is not that hard to fix
wangdong (Tue, 26 Jun 2018 06:57:10 GMT):
I will have an eye on this.
wangdong (Tue, 26 Jun 2018 07:01:18 GMT):
Any way I think your GOPATH is not configured well I think
lotty02cho (Tue, 26 Jun 2018 07:02:10 GMT):
@wanghong Thanks for helping me. I try to change fabric-client version and then I will tell you what's going on.
lotty02cho (Tue, 26 Jun 2018 07:02:10 GMT):
@wangdong Thanks for helping me. I try to change fabric-client version and then I will tell you what's going on.
wangdong (Tue, 26 Jun 2018 07:13:31 GMT):
Screen Shot 2018-06-26 at 3.12.42 PM.png
wangdong (Tue, 26 Jun 2018 07:13:52 GMT):
when to install node chain code, this should be the right log
wangdong (Tue, 26 Jun 2018 07:14:08 GMT):
not [pacakger/Golang.js]
wangdong (Tue, 26 Jun 2018 07:14:08 GMT):
not [packager/Golang.js]
wangdong (Tue, 26 Jun 2018 07:14:15 GMT):
packageer
wangdong (Tue, 26 Jun 2018 07:15:00 GMT):
I think caliper now does not support node js chain code.
wangdong (Tue, 26 Jun 2018 07:15:10 GMT):
but we improve this.
wangdong (Tue, 26 Jun 2018 07:15:29 GMT):
it is not that difficult.
RobertDiebels (Tue, 26 Jun 2018 07:21:45 GMT):
@lotty02cho ah ok. Just thought I'd check. Did you manage to solve the issue?
lotty02cho (Tue, 26 Jun 2018 07:46:16 GMT):
@wangdong Thanks a lot, let me know if you set.
wangdong (Tue, 26 Jun 2018 08:01:31 GMT):
The patch will need be reviewed and it may take some time.
wangdong (Tue, 26 Jun 2018 08:02:07 GMT):
I have complete the code. just lines
raymondfx (Tue, 26 Jun 2018 09:47:32 GMT):
Has joined the channel.
RobertDiebels (Wed, 27 Jun 2018 08:16:33 GMT):
Has left the channel.
RobertDiebels (Wed, 27 Jun 2018 13:34:34 GMT):
Has joined the channel.
RobertDiebels (Wed, 27 Jun 2018 13:45:45 GMT):
@harsha0826 I realize that your question is a bit old now. But I was working on getting caliper working in Kubernetes. I forked it here: https://github.com/robertdiebels/caliper the main difference is that paths must be absolute and not relative. I did this so that I could have more control over where I mount callbacks. Since I'm using Kubernetes to automatically deploy and test through a Caliper container/Job.
RobertDiebels (Wed, 27 Jun 2018 13:45:45 GMT):
@harsha0826 I realize that your question is a bit old now. Yes I just got Caliper working. I was working on getting caliper working in Kubernetes. I forked it here: https://github.com/robertdiebels/caliper the main difference is that paths must be absolute and not relative. I did this so that I could have more control over where I mount callbacks. Since I'm using Kubernetes to automatically deploy and test through a Caliper container/Job.
rkrish82 (Thu, 28 Jun 2018 07:27:31 GMT):
User User_1 added by rkrish82.
AbidiBassem (Fri, 29 Jun 2018 11:05:06 GMT):
Has joined the channel.
jaromil (Fri, 29 Jun 2018 11:55:22 GMT):
Has joined the channel.
vagnerasilva (Sun, 01 Jul 2018 13:04:19 GMT):
Has joined the channel.
lotty02cho (Mon, 02 Jul 2018 07:37:26 GMT):
@wangdong Umm.. If it is easy to modify codes, could you tell me what I changed? I just want to know test my chaincodes based on Node.js. My boss really wants to get report about this.
wangdong (Mon, 02 Jul 2018 08:13:42 GMT):
ok
wangdong (Mon, 02 Jul 2018 09:06:00 GMT):
you can just use the absolute path for the chain code in the config file
wangdong (Mon, 02 Jul 2018 09:06:05 GMT):
@lotty02cho
n1zyz (Mon, 02 Jul 2018 12:23:02 GMT):
Has joined the channel.
DivyaAgrawal (Mon, 02 Jul 2018 13:25:17 GMT):
Has joined the channel.
DivyaAgrawal (Mon, 02 Jul 2018 13:30:46 GMT):
Hi All,
I have added some debug comments to Orderer and built it.
But when i try to run the caliper with new images , i get the error saying it Failed to instantiate chaincodes, Error: Failed to send instantiate due to error: Failed to send instantiate transaction and get notifications within the timeout period.
Can anyone guide me here? Thanks in advance.
DivyaAgrawal (Mon, 02 Jul 2018 13:31:25 GMT):
I have modified the docker-compose.yaml to include the new docker images for peers and orderer
DivyaAgrawal (Mon, 02 Jul 2018 13:34:35 GMT):
Also , this is with the simple benchmark for Hyperledger Fabric
klenik (Mon, 02 Jul 2018 15:47:59 GMT):
@DivyaAgrawal chaincode instantiation takes some time, and if you run the entire network on a single machine, the resources might not be enough to instantiate the chaincode within the time limit (try increasing the timeout, or distribute the network on multiple machines, or on a stronger one)
panyu2 (Tue, 03 Jul 2018 07:36:10 GMT):
Has joined the channel.
DivyaAgrawal (Tue, 03 Jul 2018 08:08:13 GMT):
@klenik The same works, when I try to run it with the default images(one without my changes).
klenik (Tue, 03 Jul 2018 08:17:56 GMT):
Hmm, try an example from the `hyperledger/fabric-samples` repository with your custom orderer image and see if it works without Caliper. If it works that way then DM me the name of your docker repo and image name and I'll try to reproduce the problem
DivyaAgrawal (Tue, 03 Jul 2018 08:41:08 GMT):
Okay. will try it out and get back. Thanks
klenik (Tue, 03 Jul 2018 18:21:48 GMT):
To Whom It May Concern: there is a pending PR (#116) that adds proper node chaincode and metadata support to Caliper together with example chaincodes (`simple` and `marbles`). Until it's merged, please feel free to experiment with it: https://github.com/aklenik/caliper/tree/chaincode-deploy
hungpq14 (Wed, 04 Jul 2018 03:44:55 GMT):
Hi everyone, i want to run caliper smallbank operation
i run with command node benchmark/smallbank/main.js -c ../../benchmark/smallbank/config-smallbank-sawtooth.json
in mac os
but i receive the problem that UnhandledPromiseRejectionWarning: Error: Cannot find module 'protocol-buffers'
tried to install protobuf with npm install --save protobuf but give error. Can anyone give a hint? :D
BabuPallam (Wed, 04 Jul 2018 22:18:48 GMT):
Has joined the channel.
tallharish (Thu, 05 Jul 2018 03:18:40 GMT):
Hi All, Has anyone written the callback module for `transfer` function for `simple` chaincode example for fabric? Just like there is one for `open`. It might save my time. Thanks :smile:
klenik (Thu, 05 Jul 2018 08:40:32 GMT):
@tallharish take a look at this closed PR: https://github.com/hyperledger/caliper/pull/94
pankaj.mendki (Thu, 05 Jul 2018 08:42:37 GMT):
Has joined the channel.
pankaj.mendki (Thu, 05 Jul 2018 13:18:22 GMT):
Is anyone able to run "simple" test benchmark for sawtooth. I am getting error running that with these setting "-c config-sawtooth.json -n sawtooth.json ". I made number of transactions = 5000 and tps = 500 in the config file. Result produced was - about 90 transactions were successful out of 5000 and TPS was 2.
Please let me know how to get this working ?
pankaj.mendki (Thu, 05 Jul 2018 13:18:22 GMT):
Is anyone able to run "simple" test benchmark for sawtooth. I am getting error running that with these setting "-c config-sawtooth.json -n sawtooth.json ". I made number of transactions = 5000 and tps = 500 in the config file. Result produced was - about 90 transactions were successful out of 5000 and TPS was 2.
Please let me know how to get this working
Nghiadt (Thu, 05 Jul 2018 13:22:57 GMT):
Has joined the channel.
cbf (Thu, 05 Jul 2018 14:38:11 GMT):
@Caroline if you would not mind completing the quarterly update in the wiki https://wiki.hyperledger.org/groups/tsc/project-updates/caliper-2018-jun I think that your presentation roughly maps to that
Caroline (Thu, 05 Jul 2018 14:38:11 GMT):
Has joined the channel.
neewy (Thu, 05 Jul 2018 14:42:57 GMT):
@Haojun we would be happy to design together somehow integration with some CI tool, either Jenkins or whatever. How do you think we can do that? Where we can create a change request or something so that we can design that
neewy (Thu, 05 Jul 2018 14:42:57 GMT):
@RobertDiebels I would appreciate if you can run a test over Iroha and report your results here
HarryLinux (Thu, 05 Jul 2018 21:22:23 GMT):
Has joined the channel.
HarryLinux (Thu, 05 Jul 2018 21:23:09 GMT):
Can someone Please help me with installation of Hyperledger Caliper on Ubuntu 16.04 terminal?
Haojun (Fri, 06 Jul 2018 01:10:16 GMT):
@HarryLinux I can help but i'm afraid the time difference is a problem.:grinning:
Haojun (Fri, 06 Jul 2018 01:10:16 GMT):
@HarryLinux I can help but i'm afraid the time difference is a problem. :grinning:
HarryLinux (Fri, 06 Jul 2018 01:52:11 GMT):
@Haojun ..My skype id is hmaheshwari.online@gmail.com..Please let me know urs
lotty02cho (Fri, 06 Jul 2018 08:19:11 GMT):
*@wangdong Can you tell me, where should I put absolute path for the chain code in config.json? and How can I get absolute path?
lotty02cho (Fri, 06 Jul 2018 08:19:11 GMT):
@wangdong Can you tell me, where should I put absolute path for the chain code in config.json? and How can I get absolute path?
klenik (Fri, 06 Jul 2018 08:31:01 GMT):
@lotty02cho The next line is from this file: https://github.com/hyperledger/caliper/blob/master/benchmark/simple/fabric.json#L68
`"chaincodes": [{"id": "simple", "path": "/home/user/your/absolute/path/to/node_cc", "language":"node", "version": "v0", "channel": "mychannel"}],`
lotty02cho (Fri, 06 Jul 2018 09:26:27 GMT):
@klenik I think... I should change another thing. It still same error in [packager/Golang.js]
klenik (Fri, 06 Jul 2018 09:31:48 GMT):
Run `npm ls fabric-client` in your Caliper root dir. You should see an output like this:
```
caliper@0.1.0 /home/ubuntu/projects/caliper
└── fabric-client@1.1.0
```
If you have the right (1.1.0) `fabric-client` version, and you set the `language` property to `"node"`, then you shouldn't see golang packaging errors
DivyaAgrawal (Fri, 06 Jul 2018 12:52:26 GMT):
@klenik Thanks for your inputs, i was able to make the new binary work, there was some issue with my code.
DivyaAgrawal (Fri, 06 Jul 2018 12:53:36 GMT):
Can anyone please clarify which configtx.yaml file is linked to simple benchmark, I am trying to change the BatchTimeout and MaxMessageCount, Changing it in simplenetwork/configtx.yaml makes no differene.
DivyaAgrawal (Fri, 06 Jul 2018 12:53:36 GMT):
Can anyone please clarify which configtx.yaml file is linked to simple benchmark, I am trying to change the BatchTimeout and MaxMessageCount, Changing it in simplenetwork/configtx.yaml makes no difference.
asamk (Fri, 06 Jul 2018 13:21:51 GMT):
Has joined the channel.
klenik (Fri, 06 Jul 2018 13:31:15 GMT):
@DivyaAgrawal You modify the right file, but after that you need to regenerate the `mychannel.tx` and (I think) the `twoorgs.genesis.block` artifacts with the `configtxgen` Fabric tool
klenik (Fri, 06 Jul 2018 13:32:36 GMT):
Reference: https://hyperledger-fabric.readthedocs.io/en/release-1.1/commands/configtxgen.html
DivyaAgrawal (Fri, 06 Jul 2018 14:08:43 GMT):
@klenik Ah.. Thanks ..
RobertDiebels (Fri, 06 Jul 2018 14:12:04 GMT):
For those interested I've managed to get Caliper working in Kubernetes (without Zookeeper). Will publish the code 'soon-ish'.
RobertDiebels (Fri, 06 Jul 2018 14:12:38 GMT):
Basically I've got a 2-click Hyperledger Fabric performance-test running.
knagware9 (Sun, 08 Jul 2018 14:59:24 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=d3XrMwkp6mzpZkciw) @RobertDiebels Thank you,,I would like to explore
lotty02cho (Mon, 09 Jul 2018 01:18:45 GMT):
@klenik Thanks a lot! as you mentioned before, I typed `npm ls fabric-client`, and fabric-client version was 1.0.8. So I updated fabric-client, and now my fabric-client version is 1.2.0.
I type `node benchmark/simple/main.js -c config_node.json -n fabric_node.json`.
when caliper starts install chaincodes, There is an error comes out.
```
# install all chaincodes......
error: [E2E testing]: install proposal was bad
error: [E2E testing]: install proposal was bad
not ok 1 Failed to install chaincodes, Error: Failed to send install Proposal or receive valid response: [object Object],[object Object] at Client.newDefaultKeyValueStore.then.then.then (/opt/gopath/src/github.com/hyperledger/caliper/src/fabric/e2eUtils.js:139:19) at
lotty02cho (Mon, 09 Jul 2018 01:18:45 GMT):
@klenik Thanks a lot! as you mentioned before, I typed `npm ls fabric-client`, and fabric-client version was 1.0.8. So I updated fabric-client, and now my fabric-client version is 1.2.0.
I type `node benchmark/simple/main.js -c config_node.json -n fabric_node.json`.
when caliper starts install chaincodes, There is an error comes out.
```
# install all chaincodes......
error: [E2E testing]: install proposal was bad
error: [E2E testing]: install proposal was bad
not ok 1 Failed to install chaincodes, Error: Failed to send install Proposal or receive valid response: [object Object],[object Object] at Client.newDefaultKeyValueStore.then.then.then (/opt/gopath/src/github.com/hyperledger/caliper/src/fabric/e2eUtils.js:139:19) at
lotty02cho (Mon, 09 Jul 2018 01:18:45 GMT):
@klenik Thanks a lot! as you mentioned before, I typed `npm ls fabric-client`, and fabric-client version was 1.0.8. So I updated fabric-client, and now my fabric-client version is 1.2.0. So, this issue is over. T_T
but, I type `node benchmark/simple/main.js -c config_node.json -n fabric_node.json`.
when caliper starts install chaincodes, There is an error comes out.
```
# install all chaincodes......
error: [E2E testing]: install proposal was bad
error: [E2E testing]: install proposal was bad
not ok 1 Failed to install chaincodes, Error: Failed to send install Proposal or receive valid response: [object Object],[object Object] at Client.newDefaultKeyValueStore.then.then.then (/opt/gopath/src/github.com/hyperledger/caliper/src/fabric/e2eUtils.js:139:19) at
lotty02cho (Mon, 09 Jul 2018 01:18:45 GMT):
@klenik Thanks a lot! as you mentioned before, I typed `npm ls fabric-client`, and fabric-client version was 1.0.8. So I updated fabric-client, and now my fabric-client version is 1.2.0. So, this issue is over. T_T
but, I type `node benchmark/simple/main.js -c config_node.json -n fabric_node.json`.
when caliper starts install chaincodes, There is an error comes out.
```
# install all chaincodes......
error: [E2E testing]: install proposal was bad
error: [E2E testing]: install proposal was bad
not ok 1 Failed to install chaincodes, Error: Failed to send install Proposal or receive valid response: [object Object],[object Object] at Client.newDefaultKeyValueStore.then.then.then (/opt/gopath/src/github.com/hyperledger/caliper/src/fabric/e2eUtils.js:139:19) at
lotty02cho (Mon, 09 Jul 2018 01:18:45 GMT):
Thanks, I downgraded version from 1.2.0 to 1.1.0 and now I finally installed chaincode!!
however... when caliper starts to Instantiate chaincode, there are another permission issues like...
```
# install all chaincodes......
info: [packager/Node.js]: packaging Node from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/ccexcc
info: [packager/Node.js]: packaging Node from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/ccexcc
ok 1 Installed chaincode ccex1_1 successfully in all peers
# Instantiate chaincode......
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: access denied: channel [org6channel] creator org [org1MSP]
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
error: [Channel.js]: getChannelConfig - Failed getting channel config. Error: Error: 2 UNKNOWN: access denied: channel [org6channel] creator org [org1MSP]
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
```
I tested already caliper to use golang chaincode, so I think that fabric_node.json doesn't hava some problem.
I have checked cert and IP Address.
umamaheswarv (Mon, 09 Jul 2018 04:51:25 GMT):
Has joined the channel.
klenik (Mon, 09 Jul 2018 06:13:22 GMT):
@lotty02cho Caliper is not yet verified to work flawlessly with Fabric (and SDK) v1.2.0, so first try to install the 1.1.0 SDK version: `npm install fabric-client@1.1.0 fabric-ca-client@1.1.0`
If you still have the same error, then copy the `chaincodes` section of your `fabric_node.json` here, maybe it's some configuration problem.
RickyQin (Mon, 09 Jul 2018 07:29:08 GMT):
Has joined the channel.
lotty02cho (Mon, 09 Jul 2018 07:36:32 GMT):
Thanks, I downgraded version from 1.2.0 to 1.1.0 and now I finally installed chaincode! however... when caliper starts to Instantiate chaincode, there are another permission issues like...
```
# install all chaincodes......
info: [packager/Node.js]: packaging Node from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/ccexcc
info: [packager/Node.js]: packaging Node from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/ccexcc
ok 1 Installed chaincode ccex1_1 successfully in all peers
# Instantiate chaincode......
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: access denied: channel [org6channel] creator org [org1MSP]
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
error: [Channel.js]: getChannelConfig - Failed getting channel config. Error: Error: 2 UNKNOWN: access denied: channel [org6channel] creator org [org1MSP]
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
```
I tested already caliper to use golang chaincode, so I think that fabric_node.json doesn't hava some problem.
I have checked cert and IP Address.
lotty02cho (Mon, 09 Jul 2018 07:36:32 GMT):
@klenik Thanks, I downgraded version from 1.2.0 to 1.1.0 and now I finally installed chaincode! however... when caliper starts to Instantiate chaincode, there are another permission issues like...
```
# install all chaincodes......
info: [packager/Node.js]: packaging Node from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/ccexcc
info: [packager/Node.js]: packaging Node from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/ccexcc
ok 1 Installed chaincode ccex1_1 successfully in all peers
# Instantiate chaincode......
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: access denied: channel [org6channel] creator org [org1MSP]
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
error: [Channel.js]: getChannelConfig - Failed getting channel config. Error: Error: 2 UNKNOWN: access denied: channel [org6channel] creator org [org1MSP]
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
```
I tested already caliper to use golang chaincode, so I think that fabric_node.json doesn't hava some problem.
I have checked cert and IP Address.
lotty02cho (Mon, 09 Jul 2018 07:36:55 GMT):
Here's my fabric_node.json.
```
{
"fabric": {
"cryptodir": "../honeybee_1.2/network/artifacts/crypto-config",
"network": {
"orderer": {
"url": "grpcs://000.00.00.00:7050",
"mspid": "OrdererMSP",
"user": {
"key": "../honeybee_1.2/network/artifacts/crypto-config/ordererOrganizations/honeybee.com/users/Admin@honeybee.com/msp/keystore/0000000000000000000000000000000000000000_sk",
"cert": "../honeybee_1.2/network/artifacts/crypto-config/ordererOrganizations/honeybee.com/users/Admin@honeybee.com/msp/signcerts/Admin@honeybee.com-cert.pem"
},
"server-hostname": "orderer.org1.honeybee.com",
"tls_cacerts": "../honeybee_1.2/network/artifacts/crypto-config/ordererOrganizations/honeybee.com/orderers/orderer.org1.honeybee.com/tls/ca.crt"
},
"org1": {
"name": "peerorg1",
"mspid": "org1MSP",
"user": {
"key": "../honeybee_1.2/network/artifacts/crypto-config/peerOrganizations/org1.honeybee.com/users/Admin@org1.honeybee.com/msp/keystore/0000000000000000000000000000000000000000_sk",
"cert": "../honeybee_1.2/network/artifacts/crypto-config/peerOrganizations/org1.honeybee.com/users/Admin@org1.honeybee.com/msp/signcerts/Admin@org1.honeybee.com-cert.pem"
},
"ca": {
"url": "https://000.00.00.00:7054",
"name": "ca-org1"
},
"peer1": {
"requests":"grpcs://000.00.00.00:7051",
"events":"grpcs://000.00.00.00:7053",
"server-hostname":"peer0.org1.honeybee.com",
"tls_cacerts":"../honeybee_1.2/network/artifacts/crypto-config/peerOrganizations/org1.honeybee.com/peers/peer0.org1.honeybee.com/tls/ca.crt"
},
"peer2": {
"requests":"grpcs://000.00.00.00:7056",
"events":"grpcs://000.00.00.00:7058",
"server-hostname":"peer1.org1.honeybee.com",
"tls_cacerts":"../honeybee_1.2/network/artifacts/crypto-config/peerOrganizations/org1.honeybee.com/peers/peer1.org1.honeybee.com/tls/ca.crt"
}
},
"org6": {
"name": "peerorg6",
"mspid": "org6MSP",
"user": {
"key": "../honeybee_1.2/network/artifacts/crypto-config/peerOrganizations/org6.honeybee.com/users/Admin@org6.honeybee.com/msp/keystore/0000000000000000000000000000000000000000_sk",
"cert": "../honeybee_1.2/network/artifacts/crypto-config/peerOrganizations/org6.honeybee.com/users/Admin@org6.honeybee.com/msp/signcerts/Admin@org6.honeybee.com-cert.pem"
},
"ca": {
"url": "https://000.00.00.000:7054",
"name": "ca-org6"
},
"peer1": {
"requests": "grpcs://000.00.00.000:7051",
"events": "grpcs://000.00.00.000:7053",
"server-hostname": "peer0.org6.honeybee.com",
"tls_cacerts": "../honeybee_1.2/network/artifacts/crypto-config/peerOrganizations/org6.honeybee.com/peers/peer0.org6.honeybee.com/tls/ca.crt"
},
"peer2": {
"requests": "grpcs://000.00.00.000:7056",
"events": "grpcs://000.00.00.000:7058",
"server-hostname": "peer1.org6.honeybee.com",
"tls_cacerts": "../honeybee_1.2/network/artifacts/crypto-config/peerOrganizations/org6.honeybee.com/peers/peer1.org6.honeybee.com/tls/ca.crt"
}
}
},
"channel": [
{
"name": "org6channel",
"config": "../honeybee_1.2/network/artifacts/channel-artifacts/org6channel.tx",
"organizations": ["org1", "org6"],
"deployed": true
}
],
"chaincodes": [{"id": "ccex1_1", "path": "/opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/ccexcc", "language":"node", "version": "v1.1", "channel": "org6channel"}],
"endorsement-policy": {
"identities": [
{
"role": {
"name": "member",
"mspId": "org1MSP"
}
},
{
"role": {
"name": "member",
"mspId": "org6MSP"
}
},
{
"role": {
"name": "admin",
"mspId": "org1MSP"
}
}
],
"policy": { "1-of": [{"signed-by": 0}, {"signed-by": 1}]}
},
"context": {
"registerFarm": "org6channel",
"readFarm": "org6channel"
}
},
"info" : {
"Version": "1.0.5",
"Size": "2 Peers",
"Orderer": "Solo",
"Distribution": "Single Host"
}
}
```
klenik (Mon, 09 Jul 2018 08:16:05 GMT):
This looks like a channel configuration issue. Your network is almost identical to the `simplenetwork` example, except for the org2->org6 rename, the node CC, and the policy. Try to compare your config files with the following files: `benchmark/simple/fabric.json`, `network/fabric/simplenetwork/configtx.yaml` and `network/fabric/simplenetwork/crypto-config-yaml`.
Aside from the start of the relative paths, there shouldn't be any difference
sujitedu (Mon, 09 Jul 2018 11:44:38 GMT):
Has joined the channel.
sujitedu (Mon, 09 Jul 2018 11:45:39 GMT):
could anyone post installation manual of Caliper?
klenik (Mon, 09 Jul 2018 17:43:55 GMT):
@sujitedu
1. Clone the Caliper repo
2. Install the pre-requisites, dependencies and the blockchain SDKs you need (https://github.com/hyperledger/caliper#build)
3. Experiment with the sample benchmarks, or write your own :)
llhl001 (Tue, 10 Jul 2018 01:37:06 GMT):
Has joined the channel.
lotty02cho (Wed, 11 Jul 2018 05:18:04 GMT):
Hi, guys. I run caliper by using src/simple/simpletest.go, and I got this report. When you see the report, there is a table which has many columns like Max Latency, Min Latency, Avg Latency, and so on.
Could you explain meaning of these columns more detail? And if anyone who runs simpletest.go is here, Did you get almost same Throughput? If not, How can you decrease tps, throughput?
Thanks, in advance.
lotty02cho (Wed, 11 Jul 2018 05:19:44 GMT):
180711_testResult.PNG
waleed (Wed, 11 Jul 2018 06:37:13 GMT):
Has left the channel.
RobertDiebels (Wed, 11 Jul 2018 07:18:35 GMT):
@lotty02cho I'm using simpletest.go I'm getting about the same throughput. Why would you want to decrease throughput though?
RobertDiebels (Wed, 11 Jul 2018 07:19:44 GMT):
I wouldn't know how to decrease the throughput other than sending less transactions per second.
RobertDiebels (Wed, 11 Jul 2018 07:20:06 GMT):
Or decrease your network speed.
lotty02cho (Wed, 11 Jul 2018 07:41:06 GMT):
@RobertDiebels No, No.. I try to increase my network speed, and increase tps for performance.
RobertDiebels (Wed, 11 Jul 2018 08:02:54 GMT):
Hmm.. the only thing I could think of to increase it would be to bulk up your nodes. So increase CPU-power and disk-speed. I don't know how much faster it will make the setup though. So it might not even be worth it.
RobertDiebels (Wed, 11 Jul 2018 08:03:50 GMT):
I ran my setup in GCE with all peers on independent nodes with Intel Sandy bridge dual cores. Still only got about 74tps for the 'open' transactions.
RobertDiebels (Wed, 11 Jul 2018 08:06:06 GMT):
I read a paper on Fabric performance [ https://arxiv.org/pdf/1801.10228v2.pdf ] and it boasted about 1300tps. When I asked for a way to reproduce (via email) they answered that they had forked the original code and the fork is not available anywhere. So there is no way to reproduce those results.
RobertDiebels (Wed, 11 Jul 2018 08:07:10 GMT):
So afaik fabric 1.0.x and 1.1.x range between 100tps and 74tps max.
klenik (Wed, 11 Jul 2018 08:28:12 GMT):
@RobertDiebels @lotty02cho The Fabric paper:
- evaluated a different chaincode
- used a custom system chaincode for some transaction validation (by-passing the grpc communication between peer and normal chaincodes)
- used quite powerful (multi-core) VM instances
- played around with the block size and block timeout settings
If you want to increase the throughput for the `simple` benchmark:
- vertical scaling (stronger machines), as @RobertDiebels suggested, but it has its limits
- horizontal scaling: increase the number of peers per organization (and probably use kafka ordering instead of solo)
Since the endorsement policy for the `simpletest` chaincode is 2-of-2 (or n-of-n generally), you need one endorsement from every organization, but it doesn't matter, which peer gives it from that org. So you could send the 1st Tx to org1-peer1, org2-peer1, the 2nd Tx to org1-peer2, org2-peer2, and so on, in a round-robin (basically load balancing) manner. Currently Caliper doesn't allow the callback modules to chose the target peers for a Tx invoke. This feature will probably be added when the Common Connection Profile for the Fabric SDK has been added.
mynet (Wed, 11 Jul 2018 08:34:46 GMT):
Has joined the channel.
niteshsolanki (Wed, 11 Jul 2018 08:50:31 GMT):
Has joined the channel.
Haojun (Wed, 11 Jul 2018 09:37:31 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=PYev5w2Q77x7C4d8j) I don't think it's a proper conclusion. The performance results will vary greatly depending on the test environment (the hardware performance, deployment method, network condition, block setting, etc). BTW, I got a tps about 150 even with a single HP laptop, and I also know some people got a result over 800 using caliper.
RobertDiebels (Wed, 11 Jul 2018 09:40:28 GMT):
@Haojun As long as there is no way to properly reproduce results I'd say any statement about the performance of Fabric would be a wrong conclusion. That includes your 150 tps, the 800tps and my 74tps.
RobertDiebels (Wed, 11 Jul 2018 09:41:24 GMT):
So far I've been getting the same results with only a slight variance.
RobertDiebels (Wed, 11 Jul 2018 09:42:34 GMT):
I'll be posting my experiment with a month or so though.
RobertDiebels (Wed, 11 Jul 2018 09:42:42 GMT):
Fully reproducible.
Haojun (Wed, 11 Jul 2018 09:45:29 GMT):
@klenik You are correct. Now callback modules are not allowed to choose the target peers. Each client will select one peer for each organization randomly as target peers, so in theory increasing the number of peers may improve the performance if you launch enough clients.
neewy (Wed, 11 Jul 2018 12:13:10 GMT):
@RobertDiebels can you check results for other chains as well?
neewy (Wed, 11 Jul 2018 12:13:20 GMT):
Namely Iroha beta-3 release
neewy (Wed, 11 Jul 2018 12:13:59 GMT):
and put some info about your environment
RobertDiebels (Wed, 11 Jul 2018 12:31:24 GMT):
@neewy I can't unfortunately. I'm running Caliper and Hyperledger Fabric in Kubernetes.
RobertDiebels (Wed, 11 Jul 2018 12:34:03 GMT):
As for the environment. I'm running Fabric on defaults, no TLS, no Kafka. I've forked Caliper [ https://github.com/robertdiebels/caliper ] so that I could get things to work in Kubernetes.
RobertDiebels (Wed, 11 Jul 2018 12:34:50 GMT):
Caliper is using the standard simpletest.go chaincode and the callbacks that go with it.
RobertDiebels (Wed, 11 Jul 2018 12:35:15 GMT):
Aside from what's in that for I made no further code adjustments.
RobertDiebels (Wed, 11 Jul 2018 12:35:15 GMT):
Aside from what's in that fork I made no further code adjustments.
neewy (Wed, 11 Jul 2018 12:47:46 GMT):
okay, thanks
neewy (Wed, 11 Jul 2018 12:48:11 GMT):
maybe you've got some info about hardware that runs Kubernetes?
RobertDiebels (Wed, 11 Jul 2018 13:13:49 GMT):
@neewy I do. I'm running locally using Minikube. Remote I created a cluster with Kops (Kubernetes Operations).
RobertDiebels (Wed, 11 Jul 2018 13:14:53 GMT):
Using Kops I'm running on 3 test instances. Going to scale up to 64 nodes when I'm done.
RobertDiebels (Wed, 11 Jul 2018 13:16:04 GMT):
The instances run in the Google Cloud. 2 core cpus, Intel Sandy Bridge. Don't know the Disk specs but they're not SSDs.
mgalat (Thu, 12 Jul 2018 13:43:25 GMT):
Has joined the channel.
duncanjw (Fri, 13 Jul 2018 13:43:12 GMT):
Has joined the channel.
smile4jc (Sun, 15 Jul 2018 06:13:56 GMT):
Has joined the channel.
smile4jc (Sun, 15 Jul 2018 06:43:44 GMT):
Hello, I’m genuinely confused at the performance test results. As most shared, I don’t think I got any throughput over 1000. I’ve read two papers on the performance testing one of the papers mentions that if you increase channels to 16, you can achieve relatively higher throughput.
smile4jc (Sun, 15 Jul 2018 06:47:40 GMT):
4C30D858-07FD-4524-ABAB-586F43109C7B.png
smile4jc (Sun, 15 Jul 2018 06:47:56 GMT):
https://arxiv.org/pdf/1805.11390.pdf
smile4jc (Sun, 15 Jul 2018 06:48:15 GMT):
This is the link to another article about the performance
underbell (Mon, 16 Jul 2018 02:32:50 GMT):
Has joined the channel.
rkrish82 (Mon, 16 Jul 2018 03:54:04 GMT):
@haojun When i try to run small bank benchmark on 10 node fabric network, i am getting following error.
rkrish82 (Mon, 16 Jul 2018 03:54:04 GMT):
@Haojun When i try to run small bank benchmark on 10 node fabric network, i am getting following error.
rkrish82 (Mon, 16 Jul 2018 03:54:04 GMT):
@Haojun @jiangyaoguo @panyu 2 When i try to run small bank benchmark on 10 node fabric network, i am getting following error.
rkrish82 (Mon, 16 Jul 2018 03:54:04 GMT):
@Haojun @jiangyaoguo @panyu 2 When i try to run small bank benchmark on 10 node fabric network, i am getting following error.
rkrish82 (Mon, 16 Jul 2018 03:54:05 GMT):
E0716 03:31:29.853670895 7627 ssl_transport_security.cc:989] Handshake failed with fatal error SSL_ERROR_SSL: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number.
rkrish82 (Mon, 16 Jul 2018 03:54:18 GMT):
While creating channel
rkrish82 (Mon, 16 Jul 2018 03:55:49 GMT):
And got debug message from orderer container log - transport: http2Server.HandleStreams received bogus greeting from client
rkrish82 (Mon, 16 Jul 2018 03:55:59 GMT):
Is there any workaround for this?
rkrish82 (Mon, 16 Jul 2018 03:57:22 GMT):
@Haojun When i try to run small bank benchmark on 10 node fabric network, i am getting following error.
Haojun (Mon, 16 Jul 2018 06:54:58 GMT):
@rkrish82 Have you enabled the TLS on the server side?
rkrish82 (Mon, 16 Jul 2018 07:32:39 GMT):
Nope
Haojun (Mon, 16 Jul 2018 09:32:31 GMT):
You can try to enable the TLS (ORDERER_GENERAL_TLS_ENABLED=true)
rkrish82 (Mon, 16 Jul 2018 09:52:57 GMT):
yes I tried enabling TLS in multi node fabric network..
rkrish82 (Mon, 16 Jul 2018 10:00:43 GMT):
@Haojun Now it seems to be working. But caliper is doing following things every time when i am running test. 1. creation of channel 2. joining channel 3. install chain code 4. instantiation chain code(smallbank), it is good for docker based. But if i want to run it on multi node fabric network then i have skip all those 4 steps , because i can do those things during network setup. How to do that?
klenik (Mon, 16 Jul 2018 11:07:54 GMT):
@rkrish82
- Channel and join can be skipped be setting its `deployed` attribute to `true`
- CC install and init can be skipped by omitting the `chaincodes` section in the Fabric config file (not a nice way, but someone confirmed that it works, so it's a good workaround for now)
klenik (Mon, 16 Jul 2018 11:07:54 GMT):
@rkrish82
- Channel create and join can be skipped be setting its `deployed` attribute to `true`
- CC install and init can be skipped by omitting the `chaincodes` section in the Fabric config file (not a nice way, but someone confirmed that it works, so it's a good workaround for now)
klenik (Mon, 16 Jul 2018 11:07:54 GMT):
@rkrish82
- Channel create and join can be skipped by setting its `deployed` attribute to `true`
- CC install and init can be skipped by omitting the `chaincodes` section in the Fabric config file (not a nice way, but someone confirmed that it works, so it's a good workaround for now)
jasong 11 (Mon, 16 Jul 2018 12:33:18 GMT):
Has joined the channel.
jasong 11 (Mon, 16 Jul 2018 12:38:13 GMT):
I would like to test my program, but having some troubles.. May I ask here??
1) Is it possible to run a performance test with caliper in single computer??
2) I'm using composer, but no "fabric-ca-client": "1.1.0",
"fabric-client": "1.1.0". Could this be problem later during test??
"devDependencies": {
"composer-admin": "^0.19.8",
"composer-cli": "^0.19.8",
"composer-client": "^0.19.8",
"composer-common": "^0.19.8",
"composer-connector-embedded": "^0.19.8",
"composer-cucumber-steps": "^0.19.8",
"chai": "latest",
"chai-as-promised": "latest",
"cucumber": "^2.2.0",
"eslint": "latest",
"nyc": "latest",
"mkdirp": "latest",
"mocha": "latest"
}
nkl199 (Mon, 16 Jul 2018 13:31:55 GMT):
1) yes, 2) if you look at the readme of composer plugin, it will tell you the dependancies you need :thumbsup:
nkl199 (Mon, 16 Jul 2018 14:06:22 GMT):
```
"composer-admin": "0.19.0",
"composer-client": "0.19.0",
"composer-common": "0.19.0",
"fabric-ca-client": "1.1.0",
"fabric-client": "1.1.0",
```
is given as an example, but Composer is now at 0.19.12
nkl199 (Mon, 16 Jul 2018 14:07:04 GMT):
... and they need to go into the dependancies, not the devDeps
kodonnel (Mon, 16 Jul 2018 14:59:42 GMT):
Has joined the channel.
NoLimitHoldem (Tue, 17 Jul 2018 07:25:19 GMT):
Has joined the channel.
RobertDiebels (Tue, 17 Jul 2018 10:27:14 GMT):
@smile4jc note this sentence on page 10 of the article you linked: "To achieve this, we created a configurable number of worker threads per channel on peer startup. Each worker thread validates one transaction’s endorsement signa-ture set against its endorsement policy.". It's never mentioned "how" they do this. I've had contact with one of the authors of another paper on Fabric performance [ ] and he stated they forked the original code to accomplish their results. So the throughput boost doesn't have so much to do with the amount of channels, rather the fact that they do parallel validation of blocks instead of serial.
RobertDiebels (Tue, 17 Jul 2018 10:27:14 GMT):
@smile4jc note this sentence on page 10 of the article you linked: "To achieve this, we created a configurable number of worker threads per channel on peer startup. Each worker thread validates one transaction’s endorsement signa-ture set against its endorsement policy.". It's never mentioned "how" they do this. I've had contact with one of the authors of another paper on Fabric performance [ https://arxiv.org/pdf/1801.10228v2.pdf ] and he stated they forked the original code to accomplish their results. So the throughput boost doesn't have so much to do with the amount of channels, rather the fact that they do parallel validation of blocks instead of serial.
jasong 11 (Tue, 17 Jul 2018 11:50:27 GMT):
I'm sorry for asking again, but do I have to use all dependancies in my code or is it okay for just installing it?? Currently I'm not using fabric.. only composer-admin, client, common.
Dan (Tue, 17 Jul 2018 13:18:40 GMT):
Caliper maintainers, please check the Performance & Scale workgroup mail list for a note sent last week about timezone requests for PSWG participation.
alokmatta (Tue, 17 Jul 2018 15:47:57 GMT):
Has joined the channel.
IsaacWong (Wed, 18 Jul 2018 04:53:36 GMT):
Has joined the channel.
lotty02cho (Wed, 18 Jul 2018 05:24:15 GMT):
Does anyone know about below issues?
```
TAP version 13
# #######Caliper Test######
# Sleep 5s......
# Join channel......
# install all chaincodes......
info: [packager/Node.js]: packaging Node from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/simple/node
info: [packager/Node.js]: packaging Node from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/simple/node
ok 1 Installed chaincode simple successfully in all peers
# Instantiate chaincode......
not ok 2 Failed to instantiate chaincodes, Error: Failed to send instantiate due to error: Error: Failed to send instantiate Proposal or receive valid response. Response null or status is not 200. exiting... at Client.newDefaultKeyValueStore.then.then.then.then (/opt/gopath/src/github.com/hyperledger/caliper/src/fabric/e2eUtils.js:375:19) at
lotty02cho (Wed, 18 Jul 2018 05:24:15 GMT):
Does anyone know about below issues?
```
TAP version 13
# #######Caliper Test######
# Sleep 5s......
# Join channel......
# install all chaincodes......
info: [packager/Node.js]: packaging Node from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/simple/node
info: [packager/Node.js]: packaging Node from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/simple/node
ok 1 Installed chaincode simple successfully in all peers
# Instantiate chaincode......
not ok 2 Failed to instantiate chaincodes, Error: Failed to send instantiate due to error: Error: Failed to send instantiate Proposal or receive valid response. Response null or status is not 200. exiting... at Client.newDefaultKeyValueStore.then.then.then.then (/opt/gopath/src/github.com/hyperledger/caliper/src/fabric/e2eUtils.js:375:19) at
lotty02cho (Wed, 18 Jul 2018 05:24:15 GMT):
Does anyone know about below issues?
```
$ node benchmark/simple-custom-org/main.js -c config.json -n fabric.json
TAP version 13
# #######Caliper Test######
# Sleep 5s......
# Join channel......
# install all chaincodes......
info: [packager/Node.js]: packaging Node from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/simple/node
info: [packager/Node.js]: packaging Node from /opt/gopath/src/github.com/hyperledger/caliper/src/contract/fabric/simple/node
ok 1 Installed chaincode simple successfully in all peers
# Instantiate chaincode......
not ok 2 Failed to instantiate chaincodes, Error: Failed to send instantiate due to error: Error: Failed to send instantiate Proposal or receive valid response. Response null or status is not 200. exiting... at Client.newDefaultKeyValueStore.then.then.then.then (/opt/gopath/src/github.com/hyperledger/caliper/src/fabric/e2eUtils.js:375:19) at
RobertDiebels (Wed, 18 Jul 2018 07:49:21 GMT):
@lotty02cho See if you can get some logging from the Fabric Client. Set `process.env.HFC_LOGGING = '{"debug": "console", "info": "console"}'` before you launch caliper. Also, check the logs on your peers and Orderer. I've found that the client intentionally provides vague error messages so that an attacker can't figure out what's happening inside the network. Which is great for security, not so great for debugging.
arati_baliga (Wed, 18 Jul 2018 12:13:08 GMT):
Has joined the channel.
shrey.techie (Wed, 18 Jul 2018 12:22:24 GMT):
Has joined the channel.
alokmatta (Wed, 18 Jul 2018 14:16:17 GMT):
eventhub
rkrish82 (Wed, 18 Jul 2018 17:03:00 GMT):
@Haojun @klenik @jiangyaoguo @panyu 2 I tried running caliper on multi node network.. i did chain code installation & instantiation through peer cli commands. I have setup deployed status to true and removed the chaincode attribute in fabric.json. But when i am running test i am getting following error
jiangyaoguo (Wed, 18 Jul 2018 17:03:01 GMT):
Has joined the channel.
rkrish82 (Wed, 18 Jul 2018 17:03:23 GMT):
(node:25249) DeprecationWarning: grpc.load: Use the @grpc/proto-loader module with grpc.loadPackageDefinition instead
/home/ubuntu/caliper/node_modules/fabric-client/lib/EventHub.js:308
if(self._stream) state = self._stream.call.channel_.getConnectivityState();
^
TypeError: Cannot read property 'getConnectivityState' of undefined
at ClientDuplexStream.
rkrish82 (Wed, 18 Jul 2018 17:17:06 GMT):
Ohh my bad i missed grpc installation, I did that.
lotty02cho (Wed, 18 Jul 2018 23:24:25 GMT):
@RobertDiebels Have you tried Fabric in Kubernetes? If I want to start fabric using Kubernetes, Is there any special references or something you have?
Hz (Thu, 19 Jul 2018 03:09:12 GMT):
Has joined the channel.
Racoon8704 (Thu, 19 Jul 2018 08:01:08 GMT):
Has joined the channel.
Racoon8704 (Thu, 19 Jul 2018 08:08:37 GMT):
Hi, I start Caliper right now.
I have run simple benchmark file and got report files.
What is the role of benchmark files?
Is just make random variable generator to put our chaincode?
Is it any duplicate exception error checker in 'open.js' or 'query.js'?
l make log and check
If not do I have to make that kind of exception checker?
RobertDiebels (Thu, 19 Jul 2018 10:31:26 GMT):
@lotty02cho I work with Fabric in Kubernetes daily. Thought none of it is production-ready.
RobertDiebels (Thu, 19 Jul 2018 10:32:01 GMT):
Check out the tool I made here: https://www.npmjs.com/package/kubechain
Racoon8704 (Thu, 19 Jul 2018 23:45:16 GMT):
I try to run caliper using my chaincode, but when I start caliper report, sometimes it makes time out. why this happening comes out?
This is my log.
Racoon8704 (Thu, 19 Jul 2018 23:45:38 GMT):
error_timeout.PNG
Racoon8704 (Thu, 19 Jul 2018 23:47:53 GMT):
Clipboard - July 20, 2018 8:47 AM
Racoon8704 (Fri, 20 Jul 2018 04:25:03 GMT):
I test 'simpletest' chaincode by using node.js.
However when I run `node benchmark/simple/main.js -c config.json -n fabric.json`, from time to time it throws error like this.
`error: [Peer.js]: sendProposal - timed out after:120000`.
I haven't changed chaincode or config files. Why this issues happens?
NidhiKumari (Fri, 20 Jul 2018 06:02:52 GMT):
@Racoon8704 You can try without "-n fabric.json" and check if its running.
klenik (Fri, 20 Jul 2018 07:58:30 GMT):
I guess you get this error during chaincode instantiation, right? You should increase the timeout value. There is a recent issue about this on github that can help.
klenik (Fri, 20 Jul 2018 07:58:30 GMT):
I guess you get this error during chaincode instantiation, right? You should increase the timeout value. There is a recent issue (#137) about this on github that can help.
Racoon8704 (Fri, 20 Jul 2018 09:25:41 GMT):
@klenik Thx, I saw your mention in recent issue(#137) and it works. I try to do next step(using my chaincode), but when I change 'request-timeout' (12000 -> 30000) instantiate chaincodes Error. Is it related to chaincode size?
Racoon8704 (Fri, 20 Jul 2018 09:28:09 GMT):
because I have 20 functions in chaincodes(it is around 1000 lines.)
klenik (Fri, 20 Jul 2018 10:00:12 GMT):
It depends:
- On every peer node a docker image is created for the chaincode (maybe the base image is also downloaded, I don't know), the container is started, and the `Init` chaincode function is executed.
- If you instantiate a Node.js chaincode, then the `fabric-shim` package is also installed
- And if you execute everything on the same machine (4 peers + other nodes for example), you need a "strong" machine to finish everything before the timeout
- Count the zeros in the timeout value, 30 seconds is not the same as 5 minutes :)
lotty02cho (Fri, 20 Jul 2018 12:26:48 GMT):
ㅔ
rjones (Fri, 20 Jul 2018 23:01:07 GMT):
Has left the channel.
louisliu2048 (Sun, 22 Jul 2018 14:57:54 GMT):
Has joined the channel.
Racoon8704 (Mon, 23 Jul 2018 00:11:40 GMT):
@klenik okay, I just tested my chaincode based on config files in simple folders(like fabric.json, config.json). how can I resolve timeout-error? Do I have to reduce chaincode lines? or Do I have to go to config.json and reduce tps or txNumber?
Racoon8704 (Mon, 23 Jul 2018 01:21:46 GMT):
```
ok 3 Installed chaincode trace-chaincode successfully in all peers
# Instantiate chaincode......
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: timeout expired while starting chaincode trace-chaincode:v0(networkid:dev,peerid:peer0.org1.example.com,tx:b2fe846c3d8c31568d28366f363f5708cfdc7d29232a3b8685c95e02387644eb)
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: timeout expired while starting chaincode trace-chaincode:v0(networkid:dev,peerid:peer1.org2.example.com,tx:b2fe846c3d8c31568d28366f363f5708cfdc7d29232a3b8685c95e02387644eb)
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
```
lotty02cho (Mon, 23 Jul 2018 04:09:16 GMT):
@Racoon8704 I think you'd better check your chaincode config files like package.json. you might write wrong path or file names.
ApurvTandon (Mon, 23 Jul 2018 10:05:01 GMT):
Has joined the channel.
ApurvTandon (Mon, 23 Jul 2018 10:16:13 GMT):
Hi ... i need to run some benchmark tests on my hyperledger instance. I am trying to use hyperledger Caliper but am facing some difficulties (Failed at the caliper@0.1.0 nyc script.)
ApurvTandon (Mon, 23 Jul 2018 10:17:22 GMT):
```12 info lifecycle caliper@0.1.0~nyc: Failed to exec nyc script
14 13 verbose stack Error: caliper@0.1.0 nyc: `nyc mocha --recursive -t 10000`
15 13 verbose stack Exit status 1
16 13 verbose stack at EventEmitter.
ApurvTandon (Mon, 23 Jul 2018 10:17:22 GMT):
```12 info lifecycle caliper@0.1.0~nyc: Failed to exec nyc script
14 13 verbose stack Error: caliper@0.1.0 nyc: `nyc mocha --recursive -t 10000`
15 13 verbose stack Exit status 1
16 13 verbose stack at EventEmitter.
klenik (Mon, 23 Jul 2018 10:36:09 GMT):
@ApurvTandon it looks like you use node 6.x, you need 8.x
ApurvTandon (Mon, 23 Jul 2018 12:03:20 GMT):
Clipboard - July 23, 2018 5:32 PM
ApurvTandon (Mon, 23 Jul 2018 12:03:20 GMT):
Clipboard - July 23, 2018 5:32 PM
jasong 11 (Mon, 23 Jul 2018 12:52:10 GMT):
Clipboard - July 23, 2018 9:50 PM
Racoon8704 (Tue, 24 Jul 2018 01:18:21 GMT):
Hi, I try to run my benchmark file. I got this error, does anyone know about this issues?
```
error: [Channel.js]: compareProposalResponseResults - read/writes result sets do not match index=1
Failed to complete transaction [c4d68...]:Error: Read/Write set mismatch between endorsements
at Object.invokebycontext (/opt/gopath/src/github.com/hyperledger/caliper/src/fabric/e2eUtils.js:630:27)
at
sathishNS (Tue, 24 Jul 2018 06:06:44 GMT):
Has joined the channel.
klenik (Tue, 24 Jul 2018 08:52:59 GMT):
@Racoon8704 Different transactions try to update the same version of a key in the world state (MVCC_READ_CONFLICT), or the same transaction produced different results on different peers (read/write set mismatch). Take a look at the read/write semantics of Fabric: http://hyperledger-fabric.readthedocs.io/en/latest/readwrite.html
lotty02cho (Tue, 24 Jul 2018 08:56:46 GMT):
`xcv`
lotty02cho (Tue, 24 Jul 2018 09:23:50 GMT):
Yes, you are right. I saw this about this issues[https://stackoverflow.com/questions/45347439/mvcc-read-conflict-when-submitting-multiple-transactions-concurrently].
Actually, In my chaincode, I use random value like this.
```
module.exports.run = function() {
console.info('===================registerFarm(run)====================');
txIndex++;
//txIndex: 2 / process.pid: 39310 / FARM_NO: FARM_NO_2_39310 / FARM_NM: FARM_NM__2_39310 / USER_ID: USER_ID__2_39310
let farmNo = 'FARM_NO_' + txIndex.toString()+'_'+process.pid.toString();
let farmNm = 'FARM_NM_'+ txIndex.toString()+'_'+process.pid.toString();
let userId = 'USER_ID_' + txIndex.toString()+'_'+process.pid.toString();
farms.push(farmNo);
console.info('FARM_NO: '+farmNo+'/FARM_NM: '+farmNm+'/USER_ID: '+userId +'/process.pid: '+process.pid.toString());
return bc.invokeSmartContract(contx, 'traceability', 'v0',
{
verb: 'registerFarm',
FARM_NO: farmNo,
FARM_NM: farmNm,
USER_ID: userId
}, 100);
};
```
I think it doesn't matter what I start first. but, I added and tested chaincode using farmNo like this on and on.
```
module.exports.run = function() {
txIndex++;
console.info('===================reportTransferSnd(run)====================');
//owner who send Cow Info Load ex. 'FARM_NO_3_39344'
const farmNo = farms[Math.floor(Math.random()*(farms.length))];
```
Racoon8704 (Tue, 24 Jul 2018 09:24:48 GMT):
Yes, you are right. I saw this about this issues[https://stackoverflow.com/questions/45347439/mvcc-read-conflict-when-submitting-multiple-transactions-concurrently].
Actually, In my chaincode, I use random value like this.
```
module.exports.run = function() {
console.info('===================registerFarm(run)====================');
txIndex++;
//txIndex: 2 / process.pid: 39310 / FARM_NO: FARM_NO_2_39310 / FARM_NM: FARM_NM__2_39310 / USER_ID: USER_ID__2_39310
let farmNo = 'FARM_NO_' + txIndex.toString()+'_'+process.pid.toString();
let farmNm = 'FARM_NM_'+ txIndex.toString()+'_'+process.pid.toString();
let userId = 'USER_ID_' + txIndex.toString()+'_'+process.pid.toString();
farms.push(farmNo);
console.info('FARM_NO: '+farmNo+'/FARM_NM: '+farmNm+'/USER_ID: '+userId +'/process.pid: '+process.pid.toString());
return bc.invokeSmartContract(contx, 'traceability', 'v0',
{
verb: 'registerFarm',
FARM_NO: farmNo,
FARM_NM: farmNm,
USER_ID: userId
}, 100);
};
```
I think it doesn't matter what I start first. but, I added and tested chaincode using farmNo like this on and on.
```
module.exports.run = function() {
txIndex++;
console.info('===================reportTransferSnd(run)====================');
//owner who send Cow Info Load ex. 'FARM_NO_3_39344'
const farmNo = farms[Math.floor(Math.random()*(farms.length))];
```
Racoon8704 (Tue, 24 Jul 2018 09:25:20 GMT):
it will happen and 'fail' rate increase. look at my report.
Is there any idea or any good example that I want? I want to trace my cattle resources and add information about trace.
Racoon8704 (Tue, 24 Jul 2018 09:25:46 GMT):
```
###all test results:###
+------+-------------------+------+------+-----------+-------------+-------------+-------------+------------+
| Test | Name | Succ | Fail | Send Rate | Max Latency | Min Latency | Avg Latency | Throughput |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 1 | registerFarm | 1000 | 0 | 50 tps | 17.33 s | 1.85 s | 7.98 s | 42 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 2 | registerFarm | 1000 | 0 | 100 tps | 14.45 s | 4.21 s | 9.24 s | 59 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 3 | registerFarm | 1000 | 0 | 132 tps | 14.01 s | 4.19 s | 9.70 s | 65 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 4 | queryFarm | 5000 | 0 | 96 tps | 61.35 s | 1.04 s | 30.62 s | 72 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 5 | queryFarm | 5000 | 0 | 94 tps | 68.67 s | 1.83 s | 37.82 s | 66 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
.....
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 11 | reattachEartag | 739 | 261 | 38 tps | 37.51 s | 3.13 s | 19.96 s | 17 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 12 | reattachEartag | 760 | 240 | 86 tps | 26.21 s | 2.62 s | 16.73 s | 28 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 13 | reattachEartag | 764 | 236 | 131 tps | 24.81 s | 4.39 s | 16.35 s | 30 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 14 | reportTransferSnd | 815 | 185 | 49 tps | 19.74 s | 1.26 s | 11.28 s | 27 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 15 | reportTransferSnd | 748 | 252 | 95 tps | 25.36 s | 6.04 s | 20.97 s | 25 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 16 | reportTransferSnd | 744 | 256 | 80 tps | 28.45 s | 3.28 s | 17.07 s | 24 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 17 | reportTransferRcv | 801 | 199 | 43 tps | 17.72 s | 1.98 s | 9.13 s | 29 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 18 | reportTransferRcv | 742 | 258 | 77 tps | 29.34 s | 5.58 s | 18.96 s | 24 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 19 | reportTransferRcv | 726 | 274 | 105 tps | 39.05 s | 9.80 s | 29.02 s | 18 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 20 | reportDeCattle | 759 | 241 | 33 tps | 34.08 s | 4.30 s | 14.81 s | 20 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 21 | reportDeCattle | 750 | 250 | 77 tps | 27.69 s | 6.18 s | 19.42 s | 26 tps |
|------|-------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 22 | reportDeCattle | 738 | 262 | 116 tps | 31.18 s | 15.17 s | 23.07 s | 22 tps |
+------+-------------------+------+------+-----------+-------------+-------------+-------------+------------+
```
sathishNS (Tue, 24 Jul 2018 11:23:42 GMT):
Hi, when i run npm install (Run npm install in caliper folder to install dependencies locally) i am seeing this
sathishNS (Tue, 24 Jul 2018 11:25:13 GMT):
Capture.JPG
sathishNS (Tue, 24 Jul 2018 11:25:23 GMT):
what should i do ?
klenik (Tue, 24 Jul 2018 11:45:58 GMT):
@sathishNS In the `package.json` file the dependency versions are given as version ranges. `npm install` tries to install the most recent version that is inside this range. However, if a `package-lock.json` file is present (containing fix versions), then those versions will be installed to ensure deterministic dependency versions (even if a dependency has a newer version). It is recommended to commit this lock, so everyone installs the same dependencies when the Caliper repo is cloned by different people. Currently this file is not committed, but since Caliper is still in incubation, this is not critical.
sathishNS (Tue, 24 Jul 2018 11:56:06 GMT):
@klenik Thanks for the info. So do i need to commit this file ? or i can proceed further
klenik (Tue, 24 Jul 2018 11:56:34 GMT):
no need to commit it
sathishNS (Tue, 24 Jul 2018 11:58:44 GMT):
ok.. thanks :)
sathishNS (Tue, 24 Jul 2018 12:23:29 GMT):
@klenik when i try to install the fabric from the repo, it is saying me package.json does not exist. Is it harmful or can i ignore those messages
sathishNS (Tue, 24 Jul 2018 12:23:48 GMT):
Capture.JPG
klenik (Tue, 24 Jul 2018 12:30:18 GMT):
I don't get similar warnings. Do you have permission to read `package.json` with the `hyper` user?
klenik (Tue, 24 Jul 2018 12:30:34 GMT):
And be careful to install the 1.1.0 SDK versions: `npm install grpc@1.10.1 fabric-ca-client@1.1.0 fabric-client@1.1.0`
sathishNS (Tue, 24 Jul 2018 12:31:44 GMT):
i dont see package.json /home/hyper/caliper
sathishNS (Tue, 24 Jul 2018 12:31:54 GMT):
i only see package-lock.json
sathishNS (Tue, 24 Jul 2018 12:32:11 GMT):
and node_modules
klenik (Tue, 24 Jul 2018 13:04:34 GMT):
package.json is part of the Caliper repo, so it should be there, try cloning it again
mselimi (Tue, 24 Jul 2018 17:37:09 GMT):
Has joined the channel.
MohammadObaid (Tue, 24 Jul 2018 17:54:48 GMT):
Has joined the channel.
MohammadObaid (Tue, 24 Jul 2018 18:00:17 GMT):
Hey guys . I have already setup fabric blockchain with node sdk and is running fine . Is it possible to integerate benchmark tool with existing running blockchain?
MohammadObaid (Tue, 24 Jul 2018 18:00:17 GMT):
Hey @klenik . I have already setup fabric blockchain with node sdk and is running fine . Is it possible to integerate benchmark tool with existing running blockchain?
MohammadObaid (Tue, 24 Jul 2018 18:03:31 GMT):
My fabric blockchain is running over aws one multiple EC2 machines
klenik (Tue, 24 Jul 2018 18:30:33 GMT):
@MohammadObaid Sure, it's possible. In your network config file you define the nodes, channels (with the `deployed` attribute set to `true`), and discard the chaincode section (which is kind of like `deployed=true` for channels). You also need the proper credentials to interact with the network. Caliper (through your callback) will send every Tx to the defined network (skipping the channel and chaincode init parts), it doesn't matter where it's running (as long as you can reach the endpoints of course).
MohammadObaid (Tue, 24 Jul 2018 18:46:36 GMT):
@klenik Thanks for quick reply.. There are many config files in `caliper/network/fabric/` directory . which one you are talking about ?
klenik (Tue, 24 Jul 2018 21:01:25 GMT):
@MohammadObaid The `config[-something].json` files contain the Caliper related round settings (callbacks, rates, tx number/duration), the `fabric[-something].json` files contain the network definitions. Each of these is a little different (demonstrating different features), but based on the docs (and the example configs), you can construct your own custom config files. If you need further help, PM me.
shken (Wed, 25 Jul 2018 01:46:06 GMT):
I just have run benchmark/smallbank/main.js.
Why fail is so many?
shken (Wed, 25 Jul 2018 01:46:12 GMT):
smallBankFailMany.PNG
sathishNS (Wed, 25 Jul 2018 05:18:51 GMT):
@klenik: Actually i craeted a folder /caliper and i am cloning the repo using the below -> npm install grpc@1.10.1 fabric-ca-client fabric-client
sathishNS (Wed, 25 Jul 2018 05:19:27 GMT):
Am i missing anything here/
sathishNS (Wed, 25 Jul 2018 05:19:28 GMT):
?
niteshsolanki (Wed, 25 Jul 2018 06:27:55 GMT):
@shken what is the error message you are getting ? sometimes failed transactions can occur when block events are missed by the caliper tool. I had faced the same issue and the reason for this is local-client.js is a single threaded which performs both the tasks of sending/bombarding transactions as well listening for block events for confirmations and the CPU is heavily utilized when the send rate is high and beyond the hardware capacity.
niteshsolanki (Wed, 25 Jul 2018 06:27:55 GMT):
@shken what is the error message you are getting ? sometimes failed transactions can occur when block events are missed by the caliper tool. I had faced the same issue and the reason for this is local-client.js is a single threaded which performs both the tasks of sending/bombarding transactions as well listening for block events for confirmations and the CPU is heavily utilized when the send rate is high, beyond the hardware capacity.
niteshsolanki (Wed, 25 Jul 2018 06:27:55 GMT):
@shken what is the error message you are getting ? sometimes failed transactions can occur when block events are missed by the caliper tool. I had faced the same issue and the reason for this is local-client.js is a single threaded which performs both the tasks of sending/bombarding transactions as well listening for block events for confirmations. The CPU is heavily utilized when the send rate is high, beyond the hardware capacity.
shken (Wed, 25 Jul 2018 06:34:52 GMT):
when I start to `benchmark/smallbank/main.js`, it throws errors like below.
I just have run it without editing codes.
```
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: chaincode error (status: 500, message: {"error":Could not find specified account})
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
```
```
Failed to complete transaction [e519f...]:Error: Invalid transaction: MVCC_READ_CONFLICT
at eh.registerTxEvent (/opt/gopath/src/github.com/hyperledger/caliper/src/fabric/e2eUtils.js:666:39)
at EventHub._processTxOnEvents (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/fabric-client/lib/EventHub.js:786:5)
at ClientDuplexStream.
shken (Wed, 25 Jul 2018 06:34:52 GMT):
@niteshsolanki when I start to `benchmark/smallbank/main.js`, it throws errors like below.
I just have run it without editing codes.
```
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: chaincode error (status: 500, message: {"error":Could not find specified account})
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper/node_modules/grpc/src/client.js:583:15
```
```
Failed to complete transaction [e519f...]:Error: Invalid transaction: MVCC_READ_CONFLICT
at eh.registerTxEvent (/opt/gopath/src/github.com/hyperledger/caliper/src/fabric/e2eUtils.js:666:39)
at EventHub._processTxOnEvents (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/fabric-client/lib/EventHub.js:786:5)
at ClientDuplexStream.
rkrish82 (Wed, 25 Jul 2018 06:41:06 GMT):
@klenik I tried running the caliper small bank test on a 10 node fabric network. I found that anything above 5tps rate i am getting errors. sendPeersProposal - Promise is rejected: Error: 14 UNAVAILABLE: Connect Failed
at new createStatusError (/home/ubuntu/caliper/node_modules/grpc/src/client.js:64:15)
rkrish82 (Wed, 25 Jul 2018 06:41:06 GMT):
@klenik @niteshsolanki I tried running the caliper small bank test on a 10 node fabric network. I found that anything above 5tps rate i am getting errors. sendPeersProposal - Promise is rejected: Error: 14 UNAVAILABLE: Connect Failed
at new createStatusError (/home/ubuntu/caliper/node_modules/grpc/src/client.js:64:15)
rkrish82 (Wed, 25 Jul 2018 06:41:11 GMT):
Clipboard - July 25, 2018 12:11 PM
rkrish82 (Wed, 25 Jul 2018 06:42:13 GMT):
Is there any workaround this error?
rkrish82 (Wed, 25 Jul 2018 06:43:10 GMT):
If i run the test <5 tps i am not getting any error and transactions are getting added to blockchain
niteshsolanki (Wed, 25 Jul 2018 06:46:04 GMT):
@shken this is a MVCC conflict error which occurs at the committing phase of the transactions.
shken (Wed, 25 Jul 2018 06:59:57 GMT):
@niteshsolanki If so, Is there any idea I can handle to decrease 'fail' rate? like making benchmark files without duplicate things, whatever. I saw `Readme.md` below, and it said it is not supported re-submitting.
```
The transaction generating process may generate conflicting transactions, for example, updating same account's deposite at the same time or nearly at the same time. Some blockchain systems provides some kind of orchestration to decide execution order of conficting transactions, but some blockchain systems may just return errors for later updates if the ahead update has not been completed and let the application decide what to do (e.g re-submitting rejected transactions). Until now Caliper has not provided any application level optimization such as re-submitting for failed transactions for any blockchain system. So please note in this case, conflicting transactions may cause failures for some blockchain systems.
```
Haojun (Fri, 27 Jul 2018 02:14:09 GMT):
@shken You may increase the number of 'accounts' in the config.json (in the arguments line of smallOperations round, and the number should not exceed the txNumber) which could reduce the probability of 'conflicting txns'. But please not it would reduce the count of other kinds of operations such as send_payment. Or you can add a new test round at the beginning to create enough accounts and use other test round to test other operations.
Haojun (Fri, 27 Jul 2018 02:14:09 GMT):
@shken You may increase the number of 'accounts' in the config.json (in the arguments line of smallOperations round, and the number should not exceed the txNumber) which could reduce the probability of 'conflicting txns'. But please note it would reduce the count of other kinds of operations such as send_payment. Or you can add a new test round at the beginning to create enough accounts and use other test round to test other operations.
Anfimov (Fri, 27 Jul 2018 14:02:12 GMT):
Has joined the channel.
Anfimov (Fri, 27 Jul 2018 14:02:17 GMT):
Hello everyone!
Can somebody explain how to use Caliper with Fabric and track performance on sample example like fabcar in the tutorial section "Build your first app"?
oborovyk (Fri, 27 Jul 2018 16:45:32 GMT):
Has joined the channel.
IgorSim (Sun, 29 Jul 2018 07:37:17 GMT):
Has joined the channel.
Gvedam (Mon, 30 Jul 2018 09:36:06 GMT):
Hey Everyone, What is the Composer Benchmark exactly for? can we test a regular fabric network using that? also there are no Rounds like open or query in composer-config. how exactly are the tests carried out?
jasong 11 (Mon, 30 Jul 2018 10:11:30 GMT):
KakaoTalk_20180725_194554338.png
srijesh (Mon, 30 Jul 2018 11:47:05 GMT):
Has joined the channel.
Anfimov (Mon, 30 Jul 2018 16:47:56 GMT):
I want to track benchmark, but when I run examples, have this error
Anfimov (Mon, 30 Jul 2018 16:47:58 GMT):
Screenshot from 2018-07-30 19-46-17.png
Anfimov (Mon, 30 Jul 2018 16:49:00 GMT):
Can anybody help pls with caliper, can't find any good tutorial or docs for this tool
Anfimov (Mon, 30 Jul 2018 16:49:00 GMT):
Can't anybody help pls with caliper, can't find any good tutorial or docs for this tool
Anfimov (Mon, 30 Jul 2018 16:49:00 GMT):
Can anybody help pls with caliper, can't find any good tutorial or docs for this tool
dharuq (Mon, 30 Jul 2018 17:05:03 GMT):
Has joined the channel.
lotty02cho (Tue, 31 Jul 2018 06:10:18 GMT):
@Anfimov I have seen this issue. when it is not equal between variables of benchmark file and variables of chaincode. try to check your variables, like args[0], args[1] etc.
jpgalmeida (Tue, 31 Jul 2018 12:55:24 GMT):
Has joined the channel.
angieology (Tue, 31 Jul 2018 17:54:21 GMT):
Has joined the channel.
lotty02cho (Wed, 01 Aug 2018 08:59:51 GMT):
I want to check simple code performance when I change BatchTimeout.
Before I start, some said like this in this group.
```
divag7 9:52 PM
Can anyone please clarify which configtx.yaml file is linked to simple benchmark, I am trying to change the BatchTimeout and MaxMessageCount, Changing it in simplenetwork/configtx.yaml makes no difference.
klenik 10:31 PM
@DivyaAgrawal You modify the right file, but after that you need to regenerate the `mychannel.tx` and (I think) the `twoorgs.genesis.block` artifacts with the `configtxgen` Fabric tool
```
For making new mychannel.tx , I used `network/simplenetwork/fabric-samples/bin/cryptogen` and `network/simplenetwork/fabric-samples/bin/configtxgen`.
lotty02cho (Wed, 01 Aug 2018 08:59:51 GMT):
I want to check simple code performance when I change BatchTimeout.
Before I start, some said like this in this group.
```
divag7 9:52 PM
Can anyone please clarify which configtx.yaml file is linked to simple benchmark, I am trying to change the BatchTimeout and MaxMessageCount, Changing it in simplenetwork/configtx.yaml makes no difference.
klenik 10:31 PM
@DivyaAgrawal You modify the right file, but after that you need to regenerate the `mychannel.tx` and (I think) the `twoorgs.genesis.block` artifacts with the `configtxgen` Fabric tool
```
For making new mychannel.tx , I used `network/simplenetwork/fabric-samples/bin/cryptogen` and `network/simplenetwork/fabric-samples/bin/configtxgen`.
and I saw `network/simplenetwork/generate.sh`, so I type commands below this.
```
hyper@ubuntu:/opt/gopath/src/github.com/hyperledger/caliper/network/fabric/simplenetwork$ fabric-samples/bin/cryptogen generate --config=./crypto-config.yaml
org1.example.com
org2.example.com
hyper@ubuntu:/opt/gopath/src/github.com/hyperledger/caliper/network/fabric/simplenetwork$ fabric-samples/bin/configtxgen -profile TwoOrgsOrdererGenesis -outputB
lock twoorgs.genesis.block
2018-08-01 17:45:59.404 KST [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-08-01 17:45:59.414 KST [common/tools/configtxgen] doOutputBlock -> INFO 002 Generating genesis block
2018-08-01 17:45:59.414 KST [common/tools/configtxgen] doOutputBlock -> INFO 003 Writing genesis block
hyper@ubuntu:/opt/gopath/src/github.com/hyperledger/caliper/network/fabric/simplenetwork$ fabric-samples/bin/configtxgen -profile TwoOrgsChannel -outputCreateCh
annelTx mychannel.tx -channelID mychannel
2018-08-01 17:46:20.424 KST [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-08-01 17:46:20.431 KST [common/tools/configtxgen] doOutputChannelCreateTx -> INFO 002 Generating new channel configtx
2018-08-01 17:46:20.460 KST [common/tools/configtxgen] main -> CRIT 003 Error on outputChannelCreateTx: config update generation failure: could not parse application to application group: setting up the MSP manager failed: the supplied identity is not valid: x509: certificate signed by unknown authority (possibly because of "x509: ECDSA verification failure" while trying to verify candidate authority cert
```
Have you seen this kind of error?
sathishNS (Wed, 01 Aug 2018 11:41:54 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=Gt6QBthvZGLc3X4vH) @jasong 11 @jasong 11 did you start the fabric first? It is telling no valid response from peers
DivyaAgrawal (Wed, 01 Aug 2018 12:54:23 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=uWdb8BpLdQa6LGcAq) @lotty02cho HI, dont rerun the crypto command again, just run the other two. ! :)
DivyaAgrawal (Wed, 01 Aug 2018 12:56:10 GMT):
Hi All,
As per the caliper docs 'Currently, only one policy can be defined and the policy is applied to all chaincodes.'
Can anyone point me to the valid policies and some definition for each. Like what does default policy mean. I can guess, but want to be sure my understanding of it is correct.
Thanks in advance !
JaccobSmith (Thu, 02 Aug 2018 08:21:08 GMT):
Has joined the channel.
JaccobSmith (Thu, 02 Aug 2018 08:21:51 GMT):
Hello,do anyone has a help-doc for installing caliper?
JaccobSmith (Thu, 02 Aug 2018 08:27:39 GMT):
could anyone help me ?
sathishNS (Thu, 02 Aug 2018 09:19:10 GMT):
@JaccobSmith https://github.com/hyperledger/caliper#install-blockchain-sdks
JaccobSmith (Thu, 02 Aug 2018 09:25:05 GMT):
@sathishNS Thank you
rkrish82 (Thu, 02 Aug 2018 10:29:00 GMT):
@haojun @klenik Is there a way to run caliper test for long time.. like 1hr
rkrish82 (Thu, 02 Aug 2018 10:29:00 GMT):
@Haojun @klenik Is there a way to run caliper test for long time.. like 1hr
klenik (Thu, 02 Aug 2018 10:35:30 GMT):
@rkrish82 see issue#110 about this, but I think a 1 hour test is possible even now (depends on the transaction rate of course)
jasong 11 (Thu, 02 Aug 2018 11:51:05 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=y7MrRBG4vmvmynrJN) @sathishNS If I run fabric and then run caliper, It says that "Cannot create container for service ca.org1.example.com: Conflict."...
sathishNS (Thu, 02 Aug 2018 12:05:10 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=XbLNaDDbepMb34xtk) @jasong 11 are you using the name ca.org1.example.com somewhere else? because of this it is conflicting when it is trying to create.
jasong 11 (Thu, 02 Aug 2018 12:10:27 GMT):
Clipboard - August 2, 2018 9:09 PM
jasong 11 (Thu, 02 Aug 2018 12:11:04 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=PamMFPqDL7sdgaH62) @sathishNS I think this makes conflict if I turn fabric on and run caliper...
sathishNS (Thu, 02 Aug 2018 12:18:27 GMT):
try docker ps and see whether you have any container with ca.org1.example.com
sathishNS (Thu, 02 Aug 2018 12:18:40 GMT):
if yes, clear the docker images and re-run the caliper again
raspydev (Fri, 03 Aug 2018 12:59:33 GMT):
Has joined the channel.
CarloFerrarini (Fri, 03 Aug 2018 17:26:33 GMT):
Has joined the channel.
DivyaAgrawal (Sun, 05 Aug 2018 20:22:44 GMT):
Hi All,
I wanted to understand how do we specify which peers act as endorsing peers . I am running an 2 orgs 2 peers network and simple benchmark . The endorsing peers are always the same i.e. one from org 1 and another from org2. Why do only 2 peers take part in endorsement and not the other two.
JaccobSmith (Mon, 06 Aug 2018 05:10:21 GMT):
@DivyaAgrawal You really could add the other two as endorsing peers for HA
DivyaAgrawal (Mon, 06 Aug 2018 05:20:42 GMT):
@JaccobSmith can you explain a bit more. or point me to the correct documentation. Thanks in advance
JaccobSmith (Mon, 06 Aug 2018 05:23:13 GMT):
It's configed in the file named configtx.yaml ,Maybe
JaccobSmith (Mon, 06 Aug 2018 05:25:17 GMT):
Sorry,I was wrong ,the endorsing peers are decided by your chaincode instantiating param
JaccobSmith (Mon, 06 Aug 2018 05:25:46 GMT):
the policy
JaccobSmith (Mon, 06 Aug 2018 05:26:55 GMT):
peer chaincode instantiate -P
DivyaAgrawal (Mon, 06 Aug 2018 05:29:25 GMT):
```"endorsement-policy": {
"identities": [
{
"role": {
"name": "member",
"mspId": "Org1MSP"
}
},
{
"role": {
"name": "member",
"mspId": "Org2MSP"
}
},
{
"role": {
"name": "admin",
"mspId": "Org1MSP"
}
}
],
"policy": { "2-of": [{"signed-by": 0}, {"signed-by": 1}]}
}```
DivyaAgrawal (Mon, 06 Aug 2018 05:29:35 GMT):
yes i understand this is the config.
JaccobSmith (Mon, 06 Aug 2018 05:34:54 GMT):
Maybe it's the internal mechanism of FABRIC,we only can acquire it by reading the source code:rofl:
DivyaAgrawal (Mon, 06 Aug 2018 06:21:54 GMT):
Ya, not sure. If anyone has any info regarding this. Please share with us. Thanks
RobertDiebels (Mon, 06 Aug 2018 08:52:01 GMT):
@DivyaAgrawal the configuration you shared is used to determine what type of signature is required for a transaction to be endorsed see: https://hyperledger-fabric.readthedocs.io/en/release-1.2/endorsement-policies.html?highlight=endorsement%20policy
RobertDiebels (Mon, 06 Aug 2018 08:53:29 GMT):
In the above case it is required that each transaction be signed by 2 of the identities in your policy. IN this case identity 0 and 1, respectively a member from Org1 and a member from Org2.
RobertDiebels (Mon, 06 Aug 2018 08:53:45 GMT):
This means that any peer that fulfills those requirements can act as an endorser.
RobertDiebels (Mon, 06 Aug 2018 08:55:07 GMT):
See: https://hyperledger-fabric.readthedocs.io/en/release-1.2/Fabric-FAQ.html?highlight=endorse#endorsement
RobertDiebels (Mon, 06 Aug 2018 08:55:32 GMT):
About your question. I don't know of any setting you can use for a peer to "always" act as an endorser.
DivyaAgrawal (Mon, 06 Aug 2018 08:58:31 GMT):
OK.. Thanks, In running the caliper tests multiple times, I always see only 2 peers(always same) participating in endorsement. And as this is utilizing system's half the capacity, thought I am missing something.
RobertDiebels (Mon, 06 Aug 2018 08:58:36 GMT):
This should clarify the endorsement process https://hyperledger-fabric.readthedocs.io/en/release-1.2/peers/peers.html#phase-3-validation
RobertDiebels (Mon, 06 Aug 2018 09:02:41 GMT):
This is also relevant: https://hyperledger-fabric.readthedocs.io/en/release-1.2/peers/peers.html#phase-1-proposal
DivyaAgrawal (Mon, 06 Aug 2018 09:03:14 GMT):
Sure I will go thru the docs. Thanks
RobertDiebels (Mon, 06 Aug 2018 09:07:31 GMT):
I think this answers your question in full: https://stackoverflow.com/questions/47173958/deterministic-choices-of-endorsing-peers
DivyaAgrawal (Mon, 06 Aug 2018 09:18:11 GMT):
Thanks a lot !
RobertDiebels (Mon, 06 Aug 2018 09:20:34 GMT):
No problem :D
RobertDiebels (Mon, 06 Aug 2018 09:28:29 GMT):
@DivyaAgrawal you might also want to try nesting your endorsment policy. Because I feel it should be possible to require 2 peers of each org for endorsement.
RobertDiebels (Mon, 06 Aug 2018 09:29:55 GMT):
See: https://fabric-sdk-node.github.io/global.html#Policy__anchor
DivyaAgrawal (Mon, 06 Aug 2018 09:42:48 GMT):
Okay, Although my main objective is to still require 1 from each org, but to make both the peers in each org to participate. I got the code in caliper, where they are randomly selecting one peer of each organization to be part of the context for the chaincode.
RobertDiebels (Mon, 06 Aug 2018 10:02:48 GMT):
@DivyaAgrawal don't they use the channel to send TransactionProposals?
RobertDiebels (Mon, 06 Aug 2018 10:03:58 GMT):
Afaik they use all the peers as targets when invoking chaincode.
RobertDiebels (Mon, 06 Aug 2018 10:04:45 GMT):
If you can send me the link to the code in github I'd like to take a look at it.
RobertDiebels (Mon, 06 Aug 2018 10:13:43 GMT):
I checked `e2eutils.js` quickly. And afaics installchaincode, instantiatechaincode and invokebycontext use all peers defined for an organization.
DivyaAgrawal (Mon, 06 Aug 2018 10:45:01 GMT):
@RobertDiebels https://github.com/hyperledger/caliper/blob/master/src/fabric/e2eUtils.js#L482
RobertDiebels (Mon, 06 Aug 2018 10:53:11 GMT):
Ah yea. Found it. Thanks :thumbsup:
RobertDiebels (Mon, 06 Aug 2018 11:02:09 GMT):
I hadden't encountered this myself yet. I always got a decent balance.
RobertDiebels (Mon, 06 Aug 2018 11:02:33 GMT):
Either way thanks for the heads up :D .
DivyaAgrawal (Mon, 06 Aug 2018 11:04:02 GMT):
ya just was curious and thought this might improve the throughput, if the endorsement load is more evenly balanced
klenik (Mon, 06 Aug 2018 13:02:35 GMT):
@DivyaAgrawal @RobertDiebels Regarding endorsing peers: a peer is an possible endorsing peer for a chaincode (on a channel), if the chaincode is installed on that peer (so there are no flags to set on the Fabric side). About the Caliper side: currently, at the *beginning* of each round, a random peer is selected from each organization, and Caliper will send every transaction to those peers (and listen for events from those same peers), as seen here: https://github.com/hyperledger/caliper/blob/master/src/fabric/e2eUtils.js#L473
So currently you can't take advantage of load balancing inside an org, which (probably) really hurts the throughput of your test.
klenik (Mon, 06 Aug 2018 13:02:35 GMT):
@DivyaAgrawal @RobertDiebels Regarding endorsing peers: a peer is a possible endorsing peer for a chaincode (on a channel), if the chaincode is installed on that peer (so there are no flags to set on the Fabric side). About the Caliper side: currently, at the *beginning* of each round, a random peer is selected from each organization, and Caliper will send every transaction to those peers (and listen for events from those same peers), as seen here: https://github.com/hyperledger/caliper/blob/master/src/fabric/e2eUtils.js#L473
So currently you can't take advantage of load balancing inside an org, which (probably) really hurts the throughput of your test.
RobertDiebels (Mon, 06 Aug 2018 13:19:41 GMT):
Aaah ok. Thanks for the explanation :D
DivyaAgrawal (Mon, 06 Aug 2018 13:24:11 GMT):
Thanks for clearing it further.
DivyaAgrawal (Mon, 06 Aug 2018 13:27:56 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=jRiaDfPZ5R3XcxrYq) @klenik Just to be sure, if we change this code to add all the peers to the channel, will we be able to select any peer in random ? Or there are some other constraints too ?
RobertDiebels (Mon, 06 Aug 2018 13:41:46 GMT):
@DivyaAgrawal The NodeJS SDK sends Proposals to all peers defined in the Channel if the proposals contains no targets. So I think you'd have to remove the peers on the channel and add the ones you'd like to send transactions to.
RobertDiebels (Mon, 06 Aug 2018 13:42:01 GMT):
Atleast that's what I'm in the progress of writing right now.
RobertDiebels (Mon, 06 Aug 2018 13:42:01 GMT):
Atleast that's what I'm in the process of writing right now.
RobertDiebels (Mon, 06 Aug 2018 13:44:40 GMT):
A function that takes the current context, removes all the peers from the channel, retreives the index of the removed peer from the organizations peer list, adds a new peer to the channel, then adjusts the context and returns it.
RobertDiebels (Mon, 06 Aug 2018 13:45:23 GMT):
Though that only works for a setup with 1 organization. Which is good for my purposes.
RobertDiebels (Mon, 06 Aug 2018 13:45:23 GMT):
Though that only works for a setup with 1 organization. Which is good enough for my purposes.
william123 (Mon, 06 Aug 2018 15:23:17 GMT):
Has joined the channel.
DivyaAgrawal (Tue, 07 Aug 2018 06:55:56 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=f95YsiDYDvzEyNoE8) @RobertDiebels Correct, In caliper no target is set for sendTransactionProposal, so it will use the channel from the context (https://github.com/hyperledger/caliper/blob/master/src/fabric/e2eUtils.js#L473) , and if I add all the peers here, all will be available right.
Cleverence (Tue, 07 Aug 2018 07:28:11 GMT):
Has joined the channel.
RobertDiebels (Tue, 07 Aug 2018 07:30:57 GMT):
@DivyaAgrawal I don't think you can choose to which peers the proposal is send unless you set the targets yourself. See: https://github.com/hyperledger/fabric-sdk-node/blob/release-1.0/fabric-client/lib/Channel.js#L1287
RobertDiebels (Tue, 07 Aug 2018 07:31:51 GMT):
If you want to load-balance you'd have to change targets with every invoke.
RobertDiebels (Tue, 07 Aug 2018 07:32:20 GMT):
If you want to send them to both. Then there is no problem.
DivyaAgrawal (Tue, 07 Aug 2018 07:32:22 GMT):
yes , I dint mean to choose it myself. What i meant is if i have all the 4 peers(2 org 2 peers network) in added to the channel. I assume it will randomly select out of those
DivyaAgrawal (Tue, 07 Aug 2018 07:33:05 GMT):
ok. got your point.
RobertDiebels (Tue, 07 Aug 2018 07:33:30 GMT):
Afaik the code sends the transaction proposal to all the peers you add as a target: https://github.com/hyperledger/fabric-sdk-node/blob/release-1.0/fabric-client/lib/Channel.js#L1369
RobertDiebels (Tue, 07 Aug 2018 07:34:41 GMT):
Ok cool.
RobertDiebels (Tue, 07 Aug 2018 13:16:14 GMT):
@klenik Is there an implementation you can think of from the top of your mind that could fix the random selection? I'd like to change the peer on every invocation instead of at the beginning of each round. However I've not been able to do so quite yet. My implementations keep failing on an undefined error. I've tried adjusting the channel by removing and adding new peers. I've tried just generating a new context and passing it to bc.invokeSmartContract() in a round callback's run() function. None seem to work. My guess is that the underlying code is throwing an error the moment I change the context or replace it I just can't seem to isolate where this is happening nor why.
abhishek.s (Wed, 08 Aug 2018 16:21:33 GMT):
Has joined the channel.
abhishek.s (Wed, 08 Aug 2018 16:21:54 GMT):
Hi All, Can I run caliper on fabric v1.0?
uhaider (Thu, 09 Aug 2018 07:57:03 GMT):
Has joined the channel.
nkl199 (Thu, 09 Aug 2018 19:28:09 GMT):
the safest way to do that would be to "go back in history" on github to the initial drops that used that level of fabric
klenik (Thu, 09 Aug 2018 21:49:56 GMT):
@abhishek.s @nkl199 however, there were some important fixes since then. I think there wasn't any breaking change on Caliper side, so it should work if you install the 1.0 sdk and use 1.0 fabric images.
abhishek.s (Fri, 10 Aug 2018 03:49:05 GMT):
Cool, Thanks :)
justforest (Mon, 13 Aug 2018 02:37:11 GMT):
Has joined the channel.
justforest (Mon, 13 Aug 2018 02:38:27 GMT):
i can't monmonitor-docker: could not find active local container
monitor-docker: could not find active local container
i can't monitor my localhost docker,monitor-docker: could not find active local container
justforest (Mon, 13 Aug 2018 02:39:19 GMT):
anybody can help me?thanks
justforest (Mon, 13 Aug 2018 02:40:04 GMT):
i have configured the docker monitor with "all"
raspydev (Mon, 13 Aug 2018 21:02:49 GMT):
EventHub_block event error.png
raspydev (Mon, 13 Aug 2018 21:07:14 GMT):
Has anyone received the following error when simulating concurrent writes to Fabric? This happens when I try to simulate a write-heavy workload. The error occurs because it is unable to broadcast an event after the commit. Setup Env: 3 peer, 2 orderers, Kafka and Zookeeper (All running docker containers on separate hosts in swarm mode).
raspydev (Mon, 13 Aug 2018 21:07:34 GMT):
block event error.png
raspydev (Mon, 13 Aug 2018 21:13:45 GMT):
The other question I had was, if the publish block event fails, does the transaction still get committed to the ledger? The client gets an error when publish event fails. However, the implementation doesn't have a roll back mechanism and the block is committed. So there must be a separate mechanism to invalidate the transaction. Any pointers? Code : https://github.com/hyperledger/fabric/blob/77c3aa6ce5b0cfba93bfda009095886dbcadff91/core/committer/committer_impl.go
rkrish82 (Tue, 14 Aug 2018 06:37:06 GMT):
@Haojun @klenik When I tried running small bank benchmark test on sawtooth network, i am getting following error
rkrish82 (Tue, 14 Aug 2018 06:37:06 GMT):
Failed to read monitoring data
TypeError: Cannot read property 'length' of undefined
at processResult (/home/fabric/caliper/src/comm/bench-flow.js:183:26)
at p.then (/home/fabric/caliper/src/comm/client/client.js:155:20)
at
rkrish82 (Tue, 14 Aug 2018 06:37:49 GMT):
what could be the reason for this error?
klenik (Tue, 14 Aug 2018 17:23:46 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=NmCaiKGPdAWT4rKSS) @raspydev @raspydev I think you'll have better luck with this question in the #fabric channel
klenik (Tue, 14 Aug 2018 17:23:46 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=NmCaiKGPdAWT4rKSS) @raspydev I think you'll have better luck with this question in the #fabric channel
klenik (Tue, 14 Aug 2018 17:28:48 GMT):
Tx committing and event notifications are two separate things. I think you can "requery" past events (in case your client is restarted for example), or you can query the state of a specific Tx. Once a tx is committed on a peer, it's possibly committed on other peers as well (or they will sync sooner or later). Rollback goes against the principle of blockchain solutions.
raspydev (Tue, 14 Aug 2018 20:39:54 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=iX2zHKTcMxDXnZmSq) @klenik Thanks for the reply. I have posted the question in fabric channel but didnt get any response. Yes, you are right that there is no rollback (and I verified this in the implementation). Even though the block gets committed to the peer, I am unable to requery past events. I tested this out with a single peer (where there is no syncing required). Although there isnt a rollback, I thought somehow the specific transaction in the block gets invalidated (since the client doesn't know it is successful due to event hub error).
raspydev (Tue, 14 Aug 2018 20:42:10 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=xgdBYfM8Dm9EbndjA) @rkrish82 Not an expert in this. But looking at the code base, it looks like it is unable to monitor the processes.
klenik (Tue, 14 Aug 2018 20:45:01 GMT):
But from a business point of view, the transaction was successful, and if you read the chain, it's effects are there. It's the client's responsibility to cache the current/needed state of the server side, same as traditional client-server architectures. Take a look at the eventhub methods in the sdk to see the eventing options. As for the sawtooth case, I'm not competent in that area (or the monitoring part of caliper), maybe @Haojun can help with that
raspydev (Tue, 14 Aug 2018 20:51:57 GMT):
@klenik Thanks. I am currently building my own docker container to understand why it isn't able to send the block events. My guess is the buffer size may be too small and there is an event timeout. Yeah, there is nothing to do with Caliper. Btw, is there a plan to update the codebase to use ChannelEventHub instead of EventHub?
klenik (Tue, 14 Aug 2018 20:59:41 GMT):
It's not a high priority task right now I think, but it shouldn't be hard to fix. Although backward compatibility should be considered for v1.0 (plus the behavior is the same for 1-channel setups, and currently you can't use multiple channels in the same round in Caliper)
khushboo_goel (Thu, 16 Aug 2018 14:00:45 GMT):
Has joined the channel.
khushboo_goel (Thu, 16 Aug 2018 14:01:59 GMT):
Is caliper compatible with Hyperledger Fabric 1.2?
LewisHenderson (Thu, 16 Aug 2018 16:17:12 GMT):
Has joined the channel.
LewisHenderson (Thu, 16 Aug 2018 16:17:44 GMT):
^ pretty sure it is
LewisHenderson (Thu, 16 Aug 2018 16:17:48 GMT):
Hello,
LewisHenderson (Thu, 16 Aug 2018 16:19:41 GMT):
I've using Hyperledger Composer which is running on Fabric. I am wanting to install Caliper in order to measure the performance of my transactions. I find the Github instructions very unclear. Is there a better tutorial/instructions anywhere?
LewisHenderson (Thu, 16 Aug 2018 19:56:16 GMT):
Does anyone know where I can find example test files from Caliper? For example, someone runs a test on one of the sample networks and the test output file shows tps, latency, ect?
NidhiKumari (Fri, 17 Aug 2018 06:16:49 GMT):
@LewisHenderson You can run Simple and Smallbank benchmark tests. You can refer to this link https://github.com/hyperledger/caliper
LewisHenderson (Fri, 17 Aug 2018 15:38:35 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=TLxxbSaLLC2haw5qm) @NidhiKumari Thanks
LewisHenderson (Fri, 17 Aug 2018 15:38:59 GMT):
Also I am currently trying to do a sample test using node main.js -c config-composer.json
LewisHenderson (Fri, 17 Aug 2018 15:39:08 GMT):
it starts the business network basic-sample-network
LewisHenderson (Fri, 17 Aug 2018 15:39:16 GMT):
however I get an API error (404)
LewisHenderson (Fri, 17 Aug 2018 15:52:46 GMT):
or alternatively when i do node main.js -c config.json -n fabric.json I get failed to join peers. cannot read property getConnectivityState
LewisHenderson (Fri, 17 Aug 2018 16:06:08 GMT):
Tried test -- composer -c config.json -n fabric.json and got npm ERR! code ELIFECYCLE errno 1
cd2401 (Sun, 19 Aug 2018 03:47:19 GMT):
Has joined the channel.
cd2401 (Sun, 19 Aug 2018 03:49:37 GMT):
is Caliper has a roadmap or plan to support fabric 1.2.0, I cannot find it anywhere?
LewisHenderson (Sun, 19 Aug 2018 12:23:59 GMT):
Would anyone be able to send me a Caliper test report they've done? lewis.henderson93@hotmail.co.uk
LewisHenderson (Sun, 19 Aug 2018 12:24:02 GMT):
would be much appreciated
rkrish82 (Mon, 20 Aug 2018 05:52:04 GMT):
@Haojun @klenik @panyu 2 In caliper do we have Ratecountrol class which will increase/decrease the rate control based on success/failures count?
wangdong (Mon, 20 Aug 2018 05:54:35 GMT):
@LewisHenderson you can run the default test to get this.
rkrish82 (Mon, 20 Aug 2018 06:42:55 GMT):
@Haojun @panyu 2 @klenik Is "txDuration" supported in caliper now?
NidhiKumari (Mon, 20 Aug 2018 10:18:17 GMT):
@LewisHenderson you can try node main.js -c config-smallbank-sawtooth.json -n sawtooth.json for smallbank or node main.js -c config-sawtooth.json -n sawtooth.json for simple
klenik (Mon, 20 Aug 2018 10:32:00 GMT):
@rkrish82 There is the PID rate controller implemented by @nkl199 , docs: https://github.com/hyperledger/caliper/blob/master/docs/RateControllers.md#pid-rate
rkrish82 (Mon, 20 Aug 2018 10:35:25 GMT):
@klenik What is the meaning targetLoad in pid-rate?
nkl199 (Mon, 20 Aug 2018 12:40:10 GMT):
that is the number of backlog transactions (smart contract invokations) that have not been processed
RobertDiebels (Mon, 20 Aug 2018 12:53:01 GMT):
@LewisHenderson I've been able to touch about 40tps using Caliper and Hyperledger Fabric. I used my own caliper fork though and some other code I've yet to publish.
RobertDiebels (Mon, 20 Aug 2018 12:54:27 GMT):
A paper I read said it got about 140tps. They used machines with 32vCPUs whereas I used machines with 2vCPUs.
RobertDiebels (Mon, 20 Aug 2018 12:54:27 GMT):
A paper I read said it got about 140tps. They used machines with 32vCPUs whereas I used machines with 2vCPUs. I'll be publishing my findings in my Master's Thesis around mid-september.
RobertDiebels (Mon, 20 Aug 2018 12:54:27 GMT):
A paper I read said it got about 140tps. They used machines with 32vCPUs whereas I used machines with 2vCPUs. I'll be publishing my findings in my Master's Thesis around mid-september it will contain a more elaborate setup with a wide variation of machines.
gdmuzzillo (Mon, 20 Aug 2018 13:03:27 GMT):
Has joined the channel.
raspydev (Mon, 20 Aug 2018 15:45:34 GMT):
@RobertDiebels 140tps is low. How have you configured your system?
raspydev (Mon, 20 Aug 2018 15:46:17 GMT):
If you read the Fabric paper, the tps is ~3k.
dumping (Mon, 20 Aug 2018 15:52:35 GMT):
Has joined the channel.
dumping (Mon, 20 Aug 2018 17:52:18 GMT):
hello, during "Instantiate chaincode" i've got: error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
dumping (Mon, 20 Aug 2018 17:52:38 GMT):
what's about? Anyone can help me?
dumping (Mon, 20 Aug 2018 17:54:23 GMT):
this's the command: node ./benchmark/simple/main.js -c config-fabric.json
harryc (Mon, 20 Aug 2018 22:38:24 GMT):
Has joined the channel.
rkrish82 (Tue, 21 Aug 2018 03:29:55 GMT):
I am unable to run the any of the benchmark test on fabric network. I am getting error instantiating chain code
rkrish82 (Tue, 21 Aug 2018 03:29:56 GMT):
{"log":"\u001b[31m2018-08-21 03:18:46.351 UTC [deliveryClient] connect -\u003e ERRO 035\u001b[0m Failed obtaining connection: Could not connect to any of the endpoints: [orderer.example.com:7050]\n","stream":"stderr","time":"2018-08-21T03:18:46.351188594Z"}
{"log":"\u001b[33m2018-08-21 03:18:46.351 UTC [deliveryClient] try -\u003e WARN 036\u001b[0m Got error: Could not connect to any of the endpoints: [orderer.example.com:7050] , at 1 attempt. Retrying in 1s\n","stream":"stderr","time":"2018-08-21T03:18:46.351432829Z"}
{"log":"\u001b[31m2018-08-21 03:18:50.357 UTC [ConnProducer] NewConnection -\u003e ERRO 037\u001b[0m Failed connecting to orderer.example.com:7050 , error: context deadline exceeded\n","stream":"stderr","time":"2018-08-21T03:18:50.357572342Z"}
{"log":"\u001b[31m2018-08-21 03:18:50.357 UTC [deliveryClient] connect -\u003e ERRO 038\u001b[0m Failed obtaining connection: Could not connect to any of the endpoints: [orderer.example.com:7050]\n","stream":"stderr","time":"2018-08-21T03:18:50.357744053Z"}
rkrish82 (Tue, 21 Aug 2018 03:30:35 GMT):
not ok 4 Failed to instantiate chaincodes, Error: Failed to send instantiate due to error: Error: Failed to send instantiate transaction and get notifications within the timeout period. at Promise.all.then.catch (/home/ram/caliper/src/fa
bric/e2eUtils.js:368:27) at
cd2401 (Tue, 21 Aug 2018 06:17:36 GMT):
@dumping i got the same error because the fabric-client version. use [npm install fabric-ca-client@1.1.0 fabric-client@1.1.0] with the version num
ronaldlong46 (Tue, 21 Aug 2018 06:33:45 GMT):
Has joined the channel.
rkrish82 (Tue, 21 Aug 2018 06:42:30 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=f7QtcoC8uHDAsksJq) @klenik @Haojun @panyu 2 please help
rkrish82 (Tue, 21 Aug 2018 06:43:26 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=iYXyFfAqGtZsMwN6E) I am using command node main.js -c config.json with fabric client and fabric-ca-client version 1.1.0
rkrish82 (Tue, 21 Aug 2018 06:44:25 GMT):
following docker containers are up
rkrish82 (Tue, 21 Aug 2018 06:44:25 GMT):
667304df50d2 dev-peer1.org2.example.com-smallbank-v0-1cd8c925f9df9ee9f7ae1c361c4cd980cd6aff7c7a2324ac4679a0cc8bc59650 "chaincode -peer.add…" 3 minutes ago Up 3 minutes dev-peer1.org2.example.com-smallbank-v0
31baa576c615 dev-peer0.org1.example.com-smallbank-v0-b1f07dc4b6d8079c04183f3e9c828770349d6c0fd5ce55d82a7782925b2ce03a "chaincode -peer.add…" 3 minutes ago Up 3 minutes dev-peer0.org1.example.com-smallbank-v0
5a444a42932d dev-peer1.org1.example.com-smallbank-v0-f410e4ca227a082bf031a6460bc45cb1e299d6985d4c2da95889665e5c90b4e8 "chaincode -peer.add…" 3 minutes ago Up 3 minutes dev-peer1.org1.example.com-smallbank-v0
e4a281d944dd dev-peer0.org2.example.com-smallbank-v0-f8b95020f1a3b8371f7c58e1af1ff3d9fe0d4b26389373fa678955579a772c8f "chaincode -peer.add…" 3 minutes ago Up 3 minutes dev-peer0.org2.example.com-smallbank-v0
f51247b2e101 hyperledger/fabric-peer:x86_64-1.1.0 "peer node start" 5 minutes ago Up 5 minutes 0.0.0.0:7057->7051/tcp, 0.0.0.0:7059->7053/tcp peer1.org1.example.com
52dac4fcbe89 hyperledger/fabric-peer:x86_64-1.1.0 "peer node start" 5 minutes ago Up 5 minutes 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
39986616c8f0 hyperledger/fabric-peer:x86_64-1.1.0 "peer node start" 5 minutes ago Up 5 minutes 0.0.0.0:8057->7051/tcp, 0.0.0.0:8059->7053/tcp peer1.org2.example.com
4c0ebcecc74c hyperledger/fabric-peer:x86_64-1.1.0 "peer node start" 5 minutes ago Up 5 minutes 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer0.org2.example.com
7bf23eab80b1 hyperledger/fabric-orderer:x86_64-1.1.0 "orderer" 5 minutes ago Up 5 minutes 0.0.0.0:7050->7050/tcp orderer.example.com
08078a1dec1a hyperledger/fabric-peer:x86_64-1.1.0 "peer node start" 5 minutes ago Exited (1) 5 minutes ago simplenetwork_peer_1
37614af3e295 hyperledger/fabric-ca:x86_64-1.1.0 "sh -c 'fabric-ca-se…" 5 minutes ago Up 5 minutes 0.0.0.0:7054->7054/tcp ca_peerOrg1
bdd517d431c5 hyperledger/fabric-ca:x86_64-1.1.0 "sh -c 'fabric-ca-se…" 5 minutes ago Up 5 minutes 0.0.0.0:8054->7054/tcp ca_peerOrg2
09523e2fffb0 hyperledger/fabric-ca:x86_64-1.1.0 "sh -c 'fabric-ca-se…" 5 minutes ago Up 5 minutes 7054/tcp simplenetwork_ca_1
rkrish82 (Tue, 21 Aug 2018 06:47:35 GMT):
I am try to run simple benchmark test - node main.js -c config.json -n fabric.json
klenik (Tue, 21 Aug 2018 07:00:22 GMT):
@rkrish82 look at the created Docker networks after starting the benchmark: `docker network ls` and make sure that the same network name is set in the docker-compose yaml for the peers (for example `2orgs2peers_default`)
klenik (Tue, 21 Aug 2018 07:01:28 GMT):
@rkrish82 or try the dev network and the related configs, it's lightweight, maybe you have resource issues and hence the timeout
rkrish82 (Tue, 21 Aug 2018 07:04:18 GMT):
docker network ls
NETWORK ID NAME DRIVER SCOPE
aa14aca71a8a 2-org-1-peer_default bridge local
e613fed475a1 base_default bridge local
4570c325e407 bridge bridge local
d3e56ab558ae compose_default bridge local
8bb545db199d dev_default bridge local
9f22f2f33cfa host host local
c6842292bfa6 none null local
rkrish82 (Tue, 21 Aug 2018 07:05:01 GMT):
Same issue with dev network
rkrish82 (Tue, 21 Aug 2018 07:05:05 GMT):
node main.js -c config-dev.json -n fabric-dev.json
TAP version 13
# #######Caliper Test######
docker-compose -f network/fabric/dev/docker-compose-tls.yaml up -d
Creating network "dev_default" with the default driver
Creating orderer.example.com ... done
Creating ca.org1.example.com ... done
Creating peer0.org1.example.com ... done
# create mychannel......
ok 1 created mychannel successfully
# Sleep 5s......
# Join channel......
# join mychannel
ok 2 Successfully joined mychannel
# install all chaincodes......
info: [packager/Golang.js]: packaging GOLANG from contract/fabric/simple/go
ok 3 Installed chaincode simple successfully in all peers
# Instantiate chaincode......
not ok 4 Failed to instantiate chaincodes, Error: Failed to send instantiate due to error: Error: Failed to send instantiate transaction and get notifications within the timeout period. at Promise.all.then.catch (/home/ram/caliper/src/fabric/e2eUtils.js:368:27) at
rkrish82 (Tue, 21 Aug 2018 07:05:54 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=saRNbdCjMpBQEHqR8) @klenik Same issue with dev network
rkrish82 (Tue, 21 Aug 2018 07:06:51 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=uRci9vy5wS2qJreBh) There is an issue raised for the same - https://github.com/hyperledger/caliper/issues/165
rkrish82 (Tue, 21 Aug 2018 07:07:14 GMT):
Others also facing same issue, please check
rkrish82 (Tue, 21 Aug 2018 07:08:42 GMT):
npm ls fabric-client
caliper@0.1.0 /home/ram/caliper
└── fabric-client@1.1.0
rkrish82 (Tue, 21 Aug 2018 07:08:59 GMT):
npm ls fabric-ca-client
caliper@0.1.0 /home/ram/caliper
└── fabric-ca-client@1.1.0
klenik (Tue, 21 Aug 2018 07:18:09 GMT):
Can you check the grpc version? Make sure it matches the version in the caliper install docs
rkrish82 (Tue, 21 Aug 2018 07:46:09 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=Feh7sGWBL3cHmBMAX) @klenik Yes i installed grpc@1.10.1
rkrish82 (Tue, 21 Aug 2018 07:50:01 GMT):
These are errors i get it from peer node while instantiating the chain code
rkrish82 (Tue, 21 Aug 2018 07:50:04 GMT):
peer0.org1.example.com | 2018-08-21 07:46:25.794 UTC [ConnProducer] NewConnection -> ERRO 040 Failed connecting to orderer.example.com:7050 , error: context deadline exceeded
peer0.org1.example.com | 2018-08-21 07:46:25.794 UTC [deliveryClient] connect -> ERRO 041 Failed obtaining connection: Could not connect to any of the endpoints: [orderer.example.com:7050]
peer0.org1.example.com | 2018-08-21 07:46:25.794 UTC [deliveryClient] try -> WARN 042 Got error: Could not connect to any of the endpoints: [orderer.example.com:7050] , at 5 attempt. Retrying in 16s
klenik (Tue, 21 Aug 2018 07:55:07 GMT):
Can you check the orderer logs? Plus start the network manually (and remove the start command from the config), and wait until the orderer logs indicate that it's ready to receive request
dumping (Tue, 21 Aug 2018 08:16:21 GMT):
@cd2401 Thank
rkrish82 (Tue, 21 Aug 2018 08:19:31 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=w6EsQqdmLWLPcMEzT) @klenik I have tried that also.. I didn't see any error in orderer
klenik (Tue, 21 Aug 2018 08:25:46 GMT):
I'll try to reproduce the error a little bit later
rkrish82 (Tue, 21 Aug 2018 08:26:49 GMT):
If you want i will send peer and orderer logs
rkrish82 (Tue, 21 Aug 2018 08:28:23 GMT):
But it is simple to reproduce the error. just simple benchmark with dev network
RobertDiebels (Tue, 21 Aug 2018 15:16:08 GMT):
@raspydev 140tps is on a per channel basis. The paper: https://arxiv.org/pdf/1805.11390.pdf states: "By combining all three optimizations 1, we improved the overall throughput by16 × (i.e., from 140 tps to 2250 tps)" and "Further, these three optimizations have
been successfully adopted in Fabric v1.1". I'm running 1.0.6.
RobertDiebels (Tue, 21 Aug 2018 15:16:35 GMT):
I need to check whether or not I can update to 1.1
RobertDiebels (Tue, 21 Aug 2018 15:18:05 GMT):
Also their machines are huge. 32vCPUs per VM.
raspydev (Tue, 21 Aug 2018 15:36:15 GMT):
@RobertDiebels Fabric 1.2 is now available, so you should run with the latest version. I have been ran tests on 1.2 but I see throughput that is close to 800tps (if it is write heavy). Reads are usually fast. (3k+).
raspydev (Tue, 21 Aug 2018 15:36:15 GMT):
@RobertDiebels Fabric 1.2 is now available, so you should run with the latest version. I have ran tests on 1.2 but I see throughput that is close to 800tps (if it is write heavy). Reads are usually fast. (3k+).
raspydev (Tue, 21 Aug 2018 15:36:15 GMT):
@RobertDiebels Fabric 1.2 is now available, so you should run with the latest version. I have ran tests on 1.2 but I see throughput that is close to 800tps (if it is write heavy). Reads are usually around 3k+.
RobertDiebels (Tue, 21 Aug 2018 15:50:23 GMT):
Well I would love to. Unfortunately I've created a setup that automatically generates a functional Kubernetes setup for Fabric. I am really not looking forward to the issues I will run into when upgrading.
RobertDiebels (Tue, 21 Aug 2018 15:51:42 GMT):
Obviously I can try. But if it doesn't work out of the box I don't think I will do it.
raspydev (Tue, 21 Aug 2018 15:53:48 GMT):
@RobertDiebels Ok :) All the best!
RobertDiebels (Tue, 21 Aug 2018 15:54:33 GMT):
Thanks. It's not so much about Fabric's performance as it is about comparing it to a rooted-tree version of Fabric.
RobertDiebels (Tue, 21 Aug 2018 15:55:21 GMT):
Essentially I've created a setup with a rooted tree where leaf-clusters (Fabric networks) generate transactions and they flow up the tree into a root-cluster (Fabric-network).
RobertDiebels (Tue, 21 Aug 2018 15:56:41 GMT):
So a leaf-cluster could for instance be a province and all transactions from that area go to a fabric-network for a province. Then a root-cluster would represent a country where an overview of all transactions is stored.
RobertDiebels (Tue, 21 Aug 2018 15:56:41 GMT):
So a leaf-cluster could for instance be a province and all transactions from the province are sent to a fabric-network for that province. Then a root-cluster would represent a country where an overview of all transactions is stored.
RobertDiebels (Tue, 21 Aug 2018 15:57:34 GMT):
This allows parallel processing of transactions based on geo-spatial location or some other attribute.
RobertDiebels (Tue, 21 Aug 2018 15:58:09 GMT):
So you'd go from 800tps per chain to 800tps per area.
RobertDiebels (Tue, 21 Aug 2018 15:59:50 GMT):
There's a paper on the idea, can't remember the name.. Something about proof of location I believe.
raspydev (Tue, 21 Aug 2018 17:29:23 GMT):
Interesting concept. Sure, let me know when you publish the paper. Thanks.
bdjidi (Tue, 21 Aug 2018 22:51:00 GMT):
Has joined the channel.
karthikmohan91 (Wed, 22 Aug 2018 06:51:59 GMT):
Has joined the channel.
karthikmohan91 (Wed, 22 Aug 2018 06:53:19 GMT):
Very new to caliper , can someone tell me this.
If i had created a blockchain application and want to check its performance(like transactions per sec ) etc. Can i use caliper ?
Any idea how to ?
karthikmohan91 (Wed, 22 Aug 2018 06:59:27 GMT):
Github instructions are unclear . Does it mean caliper can only be used to measure apps built on composer,iroha or sawtooth
karthikmohan91 (Wed, 22 Aug 2018 07:01:14 GMT):
I made my appli@rocket.cat ation on Hyperledger Version 1.10.
Can someone tell me how to test my app on caliper.
karthikmohan91 (Wed, 22 Aug 2018 07:01:14 GMT):
I made my application on Hyperledger Version 1.10.
Can someone tell me how to test my app on caliper.
ophy001 (Wed, 22 Aug 2018 08:06:19 GMT):
Has joined the channel.
JiawangGao (Wed, 22 Aug 2018 08:47:11 GMT):
Has joined the channel.
JiawangGao (Wed, 22 Aug 2018 08:49:39 GMT):
Hi experts, if my Fabric has been up, could we use Caliper to run the cases by specifying the Fabric info instead of running up the Fabric network?
nkl199 (Wed, 22 Aug 2018 12:07:41 GMT):
you could 'tweak' the underlying code flow to skip the 'init' sections, but *as yet* there is no flag to do this, but it would make a useful addition. The only caveat being that the specified perf test would need to be capable of dealing resetting the test data in the init(), or be tollerant to the data 'state' in the main perf test run
push1st1k (Wed, 22 Aug 2018 15:14:05 GMT):
Has joined the channel.
push1st1k (Wed, 22 Aug 2018 15:22:08 GMT):
@karthikmohan91 Fabric is supported: first point here https://github.com/hyperledger/caliper#install-blockchain-sdks, and the config example https://github.com/hyperledger/caliper/blob/master/benchmark/simple/config.json
karthikmohan91 (Thu, 23 Aug 2018 04:37:04 GMT):
@push1st1k Ok, thank you.let me check them out and get back to you.
Gvedam (Thu, 23 Aug 2018 06:59:01 GMT):
Hi all, im trying to test a fabric network with caliper and with a send rate ranging from 100 tps to 2000 tps, but in the test im only able to achieve a send rate of 700tps. I have also tried the same using a couple of Zookeeper clients but the send rate has not increased. Is it because of limitations in the machine in which i was using Caliper? can someone help me with this?
Gvedam (Thu, 23 Aug 2018 06:59:01 GMT):
@klenik @RobertDiebels Hi all, im trying to test a fabric network with caliper and with a send rate ranging from 100 tps to 2000 tps, but in the test im only able to achieve a send rate of 700tps. I have also tried the same using a couple of Zookeeper clients but the send rate has not increased. Is it because of limitations in the machine in which i was using Caliper? can someone help me with this?
dharuq (Fri, 24 Aug 2018 14:21:26 GMT):
caliperOutput.png
dharuq (Fri, 24 Aug 2018 14:21:26 GMT):
caliperOutput.png
dharuq (Fri, 24 Aug 2018 14:25:39 GMT):
caliper.png
dharuq (Fri, 24 Aug 2018 14:25:39 GMT):
caliper.png
vanclief (Sun, 26 Aug 2018 14:34:40 GMT):
Has joined the channel.
dharuq (Mon, 27 Aug 2018 09:04:34 GMT):
Hello! Anyone knows how to use more than one orderer in caliper to test fabric?
lotty02cho (Mon, 27 Aug 2018 09:57:30 GMT):
Have you guys see this logs, `E0827 09:42:13.609781786 19 ssl_transport_security.cc:238] Could not get common name of subject from certificate.
`?
lotty02cho (Mon, 27 Aug 2018 09:57:30 GMT):
Have you guys see this logs, `E0827 09:42:13.609781786 19 ssl_transport_security.cc:238] Could not get common name of subject from certificate.` ?
lotty02cho (Mon, 27 Aug 2018 09:57:30 GMT):
Have you guys see this logs?
↓ When caliper try to run invoke by using my chaincode
Failed to complete transaction [f00dd...]:Error: Invalid transaction: ENDORSEMENT_POLICY_FAILURE
at eh.registerTxEvent (/opt/gopath/src/github.com/hyperledger/caliper/src/fabric/e2eUtils.js:663:39)
at EventHub._processTxOnEvents (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/fabric-client/lib/EventHub.js:786:5)
at ClientDuplexStream.
lotty02cho (Mon, 27 Aug 2018 09:57:30 GMT):
Have you guys see this logs?
↓ When caliper try to run invoke by using my chaincode
Failed to complete transaction [f00dd...]:Error: Invalid transaction: ENDORSEMENT_POLICY_FAILURE
at eh.registerTxEvent (/opt/gopath/src/github.com/hyperledger/caliper/src/fabric/e2eUtils.js:663:39)
at EventHub._processTxOnEvents (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/fabric-client/lib/EventHub.js:786:5)
at ClientDuplexStream.
lotty02cho (Mon, 27 Aug 2018 09:57:30 GMT):
Have you guys see this logs?
↓ When caliper try to run invoke by using my chaincode
```
Failed to complete transaction [f00dd...]:Error: Invalid transaction: ENDORSEMENT_POLICY_FAILURE
at eh.registerTxEvent (/opt/gopath/src/github.com/hyperledger/caliper/src/fabric/e2eUtils.js:663:39)
at EventHub._processTxOnEvents (/opt/gopath/src/github.com/hyperledger/caliper/node_modules/fabric-client/lib/EventHub.js:786:5)
at ClientDuplexStream.
lotty02cho (Mon, 27 Aug 2018 09:58:08 GMT):
`Failed to complete transaction [92de8...]:Error: Endorsement denied: [object Object]`
lotty02cho (Mon, 27 Aug 2018 09:59:54 GMT):
and this is my endorsement policy in fabric.json
` "endorsement-policy": {
"identities": [
{
"role": {
"name": "member",
"mspId": "org1MSP"
}
},
{
"role": {
"name": "member",
"mspId": "org2MSP"
}
},
{
"role": {
"name": "admin",
"mspId": "org1MSP"
}
}
],
"policy": { "2-of": [{"signed-by": 0}, {"signed-by": 1}]}
},
`
lotty02cho (Mon, 27 Aug 2018 09:59:54 GMT):
and this is my endorsement policy in fabric.json
```
"endorsement-policy": {
"identities": [
{
"role": {
"name": "member",
"mspId": "org1MSP"
}
},
{
"role": {
"name": "member",
"mspId": "org2MSP"
}
},
{
"role": {
"name": "admin",
"mspId": "org1MSP"
}
}
],
"policy": { "2-of": [{"signed-by": 0}, {"signed-by": 1}]}
},
````
RobertDiebels (Mon, 27 Aug 2018 10:00:36 GMT):
@lotty02cho There is something wrong with the certificate. That's why the endorsement policy is failing.
RobertDiebels (Mon, 27 Aug 2018 10:01:07 GMT):
Try to recreate the certificates you're using to sign.
Javi (Mon, 27 Aug 2018 10:12:59 GMT):
Has joined the channel.
lotty02cho (Mon, 27 Aug 2018 12:31:22 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=Ggi3e4YJZ55OpG4Fg3) @dharuq I want to know that, too.
lotty02cho (Tue, 28 Aug 2018 00:31:49 GMT):
@RobertDiebels Yeah, you are right, I recreate my cert and start it works. Thanks.
rkrish82 (Tue, 28 Aug 2018 03:20:33 GMT):
Hi Caliper dev team, please review this PR - https://github.com/hyperledger/caliper/pull/159
jarvis26 (Tue, 28 Aug 2018 07:48:48 GMT):
Has joined the channel.
RobertDiebels (Tue, 28 Aug 2018 08:25:04 GMT):
@lotty02cho No problem :thumbsup:
MariaHenderson (Wed, 29 Aug 2018 07:10:04 GMT):
Has joined the channel.
GowriR (Thu, 30 Aug 2018 05:36:43 GMT):
Has joined the channel.
GowriR (Thu, 30 Aug 2018 05:42:01 GMT):
Hi experts, I was using fabric in the net mode and dev mode. Then realised that it would be great to have the net mode sort of configuration (2 org, 2 peer, 1 orderer and 2 ca) with ONE chaincode and 2 CLI? I am assuming it is only one chaincode since i have only one chaincode and i would like to use the CLI instead of using a node js app to run my chaincode everytime. How do I modify my docker-compose to have 2-org, 2-peer to have chaincode container and 2 CLI containers? Is it possible? Is there an example that i can refer to?
huxiangdong (Thu, 30 Aug 2018 08:58:50 GMT):
Has joined the channel.
AishwaryaKudalkar (Thu, 30 Aug 2018 10:30:01 GMT):
Has joined the channel.
Gvedam (Thu, 30 Aug 2018 14:16:53 GMT):
Clipboard - August 30, 2018 7:46 PM
Gvedam (Thu, 30 Aug 2018 14:16:53 GMT):
Clipboard - August 30, 2018 7:46 PM
klenik (Thu, 30 Aug 2018 14:19:20 GMT):
@GowriR based on the following sample docker compose file, I think you can assemble a network with two CLI containers:
https://github.com/hyperledger/fabric-samples/blob/release-1.2/basic-network/docker-compose.yml
klenik (Thu, 30 Aug 2018 14:19:20 GMT):
@GowriR based on the following sample docker compose file, I think you can assemble a network with two CLI containers (use the Fabric versions you need):
https://github.com/hyperledger/fabric-samples/blob/release-1.2/basic-network/docker-compose.yml
compleatang (Thu, 30 Aug 2018 20:40:48 GMT):
Has joined the channel.
compleatang (Thu, 30 Aug 2018 20:43:17 GMT):
:wave: hello all #burrow maintainer here. I wanted to reach out and say hello. Also I wanted to ask what is needed from frameworks to be integrated into the caliper suite. Thanks!
GowriR (Fri, 31 Aug 2018 04:25:16 GMT):
thanks @klenik
nkl199 (Fri, 31 Aug 2018 08:18:27 GMT):
@compleatang - check out the caliper-contributors channel :thumbsup:
sureshtedla (Fri, 31 Aug 2018 17:34:46 GMT):
Has joined the channel.
demonkm (Tue, 04 Sep 2018 03:09:52 GMT):
Clipboard - 2018年9月4日上午11点09分
demonkm (Tue, 04 Sep 2018 03:10:02 GMT):
Hello, does anyone know how to interpret this report?
nkl199 (Tue, 04 Sep 2018 08:00:34 GMT):
anything in particular?
rajanashutosh (Wed, 05 Sep 2018 07:33:05 GMT):
Has joined the channel.
Vigneshavm (Wed, 05 Sep 2018 09:08:35 GMT):
Has joined the channel.
mighty-pirate (Thu, 06 Sep 2018 17:53:26 GMT):
Has joined the channel.
nithindj192 (Sat, 08 Sep 2018 03:26:57 GMT):
Has joined the channel.
nithindj192 (Sat, 08 Sep 2018 03:27:53 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=PGCK7qKhcWxRWTW9s) @karthikmohan91 Here is an attempt to provide the complete instructions to adapting Caliper - https://medium.com/tallyx/adapting-hyperledger-caliper-to-custom-hyperledger-fabric-networks-3ffa650215a0
karthikmohan91 (Sat, 08 Sep 2018 04:34:45 GMT):
@nithindj192 thank you
saif_lesnar (Sat, 08 Sep 2018 18:16:40 GMT):
Has joined the channel.
saqibutm (Sat, 08 Sep 2018 19:44:13 GMT):
Has joined the channel.
mathmass (Mon, 10 Sep 2018 03:15:23 GMT):
Has joined the channel.
RobertDiebels (Mon, 10 Sep 2018 08:43:14 GMT):
Hi guys, I just created version 0.4.1 of my caliper fork [https://github.com/robertdiebels/caliper]. The fork has some features that might be interesting to the maintainers of caliper.
RobertDiebels (Mon, 10 Sep 2018 08:43:14 GMT):
Hi guys, I just created version 0.4.1 of my caliper fork [https://github.com/robertdiebels/caliper]. The fork has some features that might be interesting to the maintainers of caliper.
RobertDiebels (Mon, 10 Sep 2018 08:47:09 GMT):
- I added a secondary boot-script named `server.js` this starts an ExpressJS server.
- The server has several entrypoints among which: `start`, `stop`, `reports/
RobertDiebels (Mon, 10 Sep 2018 08:47:09 GMT):
- I added a secondary boot-script named `server.js` this starts an ExpressJS server.
- The server has several entrypoints among which: `start`, `stop`, `reports/
RobertDiebels (Mon, 10 Sep 2018 08:47:09 GMT):
- I added a secondary boot-script named `server.js` this starts an ExpressJS server.
- The server has several entrypoints among which: `start`, `stop`, `reports/
RobertDiebels (Mon, 10 Sep 2018 08:47:09 GMT):
- I added a secondary boot-script named `server.js` this starts an ExpressJS server.
- The server has several entrypoints among which: `start`, `stop`, `reports/
RobertDiebels (Tue, 11 Sep 2018 08:39:23 GMT):
Has left the channel.
gut (Wed, 12 Sep 2018 12:09:00 GMT):
Has left the channel.
RobertDiebels (Thu, 13 Sep 2018 11:54:45 GMT):
Has joined the channel.
RobertDiebels (Thu, 13 Sep 2018 11:55:28 GMT):
Has left the channel.
MaherBouidani (Fri, 14 Sep 2018 18:59:23 GMT):
Has joined the channel.
adrianbberg (Fri, 14 Sep 2018 20:52:19 GMT):
Has joined the channel.
longac (Tue, 18 Sep 2018 02:48:02 GMT):
Has joined the channel.
labcoinpoc (Tue, 18 Sep 2018 05:57:54 GMT):
Has joined the channel.
tungdt_socoboy (Tue, 18 Sep 2018 15:54:39 GMT):
Hi guys, are there anyone ever benchmark Sawtooth? What is the highest number of throughput measured for Sawtooth? I'm curious because I benchmarked in single node with PoET consensus, the highest number received is 80 tps with 100 tx/batches and 200 tps of sending rate. I'm very appreciative of any number shared :)
tahaf10 (Wed, 19 Sep 2018 10:49:34 GMT):
Has joined the channel.
tahaf10 (Wed, 19 Sep 2018 10:50:09 GMT):
Hi, I want to test my composer network installed on Fabric through Caliper. Any guide on how to do that?
nkl199 (Wed, 19 Sep 2018 12:24:18 GMT):
there's a section in the readme for that
tahaf10 (Wed, 19 Sep 2018 12:45:55 GMT):
That's not very helpful. Quite confusing actually
nkl199 (Wed, 19 Sep 2018 13:08:15 GMT):
what bit are you stuck on?
nkl199 (Wed, 19 Sep 2018 13:08:15 GMT):
what bit are you stuck on? ... the "how to" or an aspect of it?
Javi (Fri, 21 Sep 2018 12:02:31 GMT):
_Hi! when I specify the number of clients in the config.json of my caliper benchmark, what type of clients are? composer clients?????
nkl199 (Fri, 21 Sep 2018 12:19:51 GMT):
test clients
nkl199 (Fri, 21 Sep 2018 12:20:01 GMT):
ie the process that runs the load
nkl199 (Fri, 21 Sep 2018 12:20:36 GMT):
within the composer based tests they are essentially two separate "processes" but these will use the same business network card
Javi (Fri, 21 Sep 2018 12:24:37 GMT):
ahh ok thanks @nkl199
Javi (Fri, 21 Sep 2018 12:52:51 GMT):
@nkl199 Last question :grinning: I'm following the guide to benchmark using zookeeper. I executed the line `npm run startclient -- 10.229.42.159:2181`, but nothing occurs. I'm missing something?
nkl199 (Fri, 21 Sep 2018 12:57:20 GMT):
... that's a good question. If i'm honest, i'll admit that i am yet to use the zookeeper test side of caliper
Javi (Fri, 21 Sep 2018 13:05:55 GMT):
that's weird. Zookeeper server is started :scream:
Javi (Fri, 21 Sep 2018 13:24:34 GMT):
ohh I solved it!! jejeje, but the performance using the `digitalproperty-network` is...
Javi (Fri, 21 Sep 2018 13:24:42 GMT):
```
###all test results:###
+------+----------------------+------+------+-----------+-------------+-------------+-------------+------------+
| Test | Name | Succ | Fail | Send Rate | Max Latency | Min Latency | Avg Latency | Throughput |
|------|----------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 1 | basic-sample-network | 50 | 450 | 50 tps | 26.32 s | 14.20 s | 25.88 s | 50 tps |
|------|----------------------|------|------|-----------|-------------|-------------|-------------|------------|
| 2 | basic-sample-network | 100 | 400 | 50 tps | 27.98 s | 13.24 s | 27.48 s | 100 tps |
+------+----------------------+------+------+-----------+-------------+-------------+-------------+------------+
```
nkl199 (Fri, 21 Sep 2018 13:33:31 GMT):
those tps results look suspiciously high
nkl199 (Fri, 21 Sep 2018 13:36:26 GMT):
and suspiciously wrong for the second test :joy:
nkl199 (Fri, 21 Sep 2018 13:53:29 GMT):
i'll try to get the zookeeper side up and running and diagnose any bugs that are in the result reporting
habpygo (Fri, 21 Sep 2018 14:39:20 GMT):
Has joined the channel.
compleatang (Fri, 21 Sep 2018 17:45:42 GMT):
Has left the channel.
ursumarius (Sun, 23 Sep 2018 11:26:55 GMT):
Has joined the channel.
sigma67 (Sun, 23 Sep 2018 19:18:09 GMT):
Has joined the channel.
tahaf10 (Mon, 24 Sep 2018 05:38:16 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=nyTgvjNaFdRdwhvCx) @nkl199 The how to
Javi (Mon, 24 Sep 2018 09:54:58 GMT):
Hi people, one question. I'm testing composer with zookeeper, but a lot of transactions fail, what happens?
Javi (Mon, 24 Sep 2018 10:15:24 GMT):
I'm using this block in the composer test config
Javi (Mon, 24 Sep 2018 10:17:27 GMT):
```
"rounds": [{
"label" : "basic-sample-network",
"txNumber" : [1000],
"trim" : 0,
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 100}}],
"arguments": {"testAssets": 25},
"callback" : "benchmark/composer/composer-samples/basic-sample-network.js"
},
{
"label" : "basic-sample-network",
"txNumber" : [1000],
"trim" : 0,
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 100}}],
"arguments": {"testAssets": 50},
"callback" : "benchmark/composer/composer-samples/basic-sample-network.js"
}]
```
This will execute 10000 transactions at a fixed rate of 100 tps, but of the total, only 50 transactions are successful
Javi (Mon, 24 Sep 2018 10:23:40 GMT):
The 50 success tps is related to the `testAssets` param?
labcoinpoc (Tue, 25 Sep 2018 01:15:39 GMT):
@Javi update one asset twice in a block will cause the read conflict error, maybe the assets in your network is not enough for the test. I tested this network with txNumber 1000 adn testAssets 1000, but seems like it takes too long to create all the assets, I am trying to modify the test script
ansh001 (Tue, 25 Sep 2018 08:56:35 GMT):
Has joined the channel.
ansh001 (Tue, 25 Sep 2018 08:57:05 GMT):
a quick question, is it possible to run caliper on multiple channels?
OviiyaDominic (Tue, 25 Sep 2018 10:14:57 GMT):
Has joined the channel.
klenik (Tue, 25 Sep 2018 13:47:21 GMT):
@ansh001 not yet, but the feature is coming soon
rkrish82 (Tue, 25 Sep 2018 14:11:52 GMT):
@klenik is caliper submits transactions to mulitple all the endorsers whichever specified in fabric.json?
klenik (Tue, 25 Sep 2018 14:27:40 GMT):
@rkrish82 nope, currently Caliper randomly chooses one peer from each org at the *begging of the round* as endorsement targets
klenik (Tue, 25 Sep 2018 14:27:54 GMT):
but this feature is also coming soon with the connection profile support :D
maxmijn (Tue, 25 Sep 2018 14:29:55 GMT):
Has joined the channel.
rkrish82 (Tue, 25 Sep 2018 16:07:34 GMT):
@klenik Any reason our PRs,#159 and #167 are not reviewed and merged to caliper ?
klenik (Tue, 25 Sep 2018 16:36:07 GMT):
I don't know, I don't have that kind of access :)
rkrish82 (Wed, 26 Sep 2018 05:35:00 GMT):
@klenik Is caliper currently supports fabric 1.2 release?
klenik (Wed, 26 Sep 2018 16:44:36 GMT):
It hasn't been tested officially, but it should be easy to test by installing the 1.2.0 sdk and using 1.2 images in the Docker compose files. The new features will be missing of course, like private collections
PiyushChittara (Thu, 27 Sep 2018 12:38:25 GMT):
Has joined the channel.
PiyushChittara (Thu, 27 Sep 2018 12:53:05 GMT):
anyplace to understand the stat report generated?? and what does "rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 50}}, {"type": "fixed-rate", "opts": {"tps" : 100}}, {"type": "fixed-rate", "opts": {"tps" : 150}}],
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 50}}, {"type": "fixed-rate", "opts": {"tps" : 100}}, {"type": "fixed-rate", "opts": {"tps" : 150}}],
any documentation to understand the resources stat table generated??
AlexanderZhovnuvaty (Thu, 27 Sep 2018 14:09:56 GMT):
Has joined the channel.
AlexanderZhovnuvaty (Thu, 27 Sep 2018 14:32:55 GMT):
hello. pls advise where is in the repo (https://github.com/hyperledger/caliper) exact use case tested by Caliper against sawtooth blockchain? thanks in advance.
AlexanderZhovnuvaty (Thu, 27 Sep 2018 14:34:13 GMT):
also, do you have plans about development of python binding in Caliper or it is JS only?
n-horiguchi (Fri, 28 Sep 2018 01:24:30 GMT):
Has joined the channel.
nkl199 (Fri, 28 Sep 2018 08:14:38 GMT):
Currently it is JS only, i don't foresee an immediate python binding coming along soon, but wouldn't see it ruled out completely. For sawtooth benchmarks, look at those under the `/benchmark` folder that include a `sawtooth.json` file
AlexanderZhovnuvaty (Fri, 28 Sep 2018 12:46:49 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=p5br5h2B8JZQsKELF) @nkl199 thanks!
forrunner (Sat, 29 Sep 2018 04:35:20 GMT):
Has joined the channel.
klenik (Sat, 29 Sep 2018 11:20:22 GMT):
@PiyushChittara You can detailed information about the rate controllers here: https://github.com/hyperledger/caliper/blob/master/docs/RateControllers.md
Regarding the generated report, there isn't much documentation about it, but I can try and answer your questions if something is not clear
klenik (Sat, 29 Sep 2018 11:20:22 GMT):
@PiyushChittara You can find detailed information about the rate controllers here: https://github.com/hyperledger/caliper/blob/master/docs/RateControllers.md
Regarding the generated report, there isn't much documentation about it, but I can try and answer your questions if something is not clear
Bartb0 (Tue, 02 Oct 2018 10:57:41 GMT):
Has joined the channel.
nimaafraz (Wed, 10 Oct 2018 15:49:58 GMT):
Has joined the channel.
rkrish82 (Thu, 11 Oct 2018 05:09:00 GMT):
@klenik @panyu 2 @Haojun If i running caliper benchmark test in non-docker mode on sawtooth with multiple node network.. I am getting following error.
rkrish82 (Thu, 11 Oct 2018 05:09:00 GMT):
Failed to read monitoring data
TypeError: Cannot read property 'length' of undefined
at processResult (/home/fabric/caliper/src/comm/bench-flow.js:183:26)
at p.then (/home/fabric/caliper/src/comm/client/client.js:155:20)
at
rkrish82 (Thu, 11 Oct 2018 05:09:54 GMT):
Even i commented in config file to monitor part.
rkrish82 (Thu, 11 Oct 2018 05:09:54 GMT):
Even i commented in config file the "monitor" part
rkrish82 (Thu, 11 Oct 2018 06:27:55 GMT):
Here is the input config file
{
"blockchain": {
"type": "sawtooth",
"config": "benchmark/smallbank/sawtooth.json"
},
"test": {
"name": "smallbank",
"description" : "This is smallbank benchmark for caliper",
"clients": {
"type": "local",
"number": 5
},
"rounds": [
{
"label" : "smallOperations",
"txNumber" : [10000],
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 80}}],
"arguments": {"accounts":1000, "txnPerBatch":10},
"callback" : "benchmark/smallbank/smallbankOperations.js"
},
{
"label" : "query",
"txNumber" : [5000],
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 50}}],
"callback" : "benchmark/smallbank/query.js"
}]
},
"monitor": {
"type": ["docker","process"],
"docker":{
"name": ["all"]
},
"process": [
{
"command" : "node",
"arguments" : "local-client.js",
"multiOutput" : "avg"
}
],
"interval": 1
}
}
shashank-poojary (Thu, 11 Oct 2018 11:52:52 GMT):
Has joined the channel.
shashank-poojary (Thu, 11 Oct 2018 11:54:58 GMT):
Hey guys i am getting this error for some transactions can some one help me with this
Failed to complete transaction [a8f5a...]:Error: Invalid transaction: MVCC_READ_CONFLICT
at eh.registerTxEvent (/home/shashankp/projects/Block-Chain/caliper/caliper/src/fabric/e2eUtils.js:663:39)
at EventHub._processTxOnEvents (/home/shashankp/projects/Block-Chain/caliper/caliper/node_modules/fabric-client/lib/EventHub.js:784:5)
at ClientDuplexStream.
klenik (Thu, 11 Oct 2018 12:01:17 GMT):
@shashank-poojary this means, that one of your transaction tried to modify a value, that was already modified by an other transaction since. Check out the Fabric docs about the exact state versioning semantics
shashank-poojary (Thu, 11 Oct 2018 12:21:33 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=SfzSfhthsxB8qnH74) @klenik Thank you for the information. Is there any way to avoid the read/write conflict while doing loadtest.
klenik (Thu, 11 Oct 2018 12:39:39 GMT):
Well, the behavior (reads/writes) of the clients is usually given (specification, business requirement, etc). So:
* you can play around with the data model on the chaincode side to minimize the conflict on a theoretical level (see [this example](https://github.com/hyperledger/fabric-samples/tree/release-1.2/high-throughput), which almost completely eliminates conflicts)
* the source of the conflict is that transaction `A` modifies state `Key1(v1)` to `Key1(v2)` and this change isn't committed soon enough, so transaction `B` modifies the "stale" value `Key1(v1)` to `Key1(v3)`. When the latter transaction is committed, the `Key1(v1)` value is already modified, so the conflict invalidates the latter transaction. So the idea is to commit the first change "soon enough", and this **might** be achieved by lowering the block timeout setting of the orderer. Note, that there **might** be performance implications, which should be evaluated, but this is a deep domain :)
klenik (Thu, 11 Oct 2018 12:39:39 GMT):
Well, the behavior (reads/writes) of the clients is usually given (specification, business requirement, etc). So:
* you can play around with the data model on the chaincode side to minimize the conflict on a theoretical level (see [this example](https://github.com/hyperledger/fabric-samples/tree/release-1.2/high-throughput), which almost completely eliminates conflicts)
* the source of the conflict is that transaction `A` modifies state `Key1(v1)` to `Key1(v2)` and this change isn't committed soon enough, so transaction `B` modifies the "stale" value `Key1(v1)` to `Key1(v3)`. When the latter transaction is committed, the `Key1(v1)` value is already modified, so the conflict invalidates the latter transaction. So the idea is to commit the first change "soon enough", and this __might__ be achieved by lowering the block timeout setting of the orderer. Note, that there __might__ be performance implications, which should be evaluated, but this is a deep domain :)
panyu2 (Fri, 12 Oct 2018 01:57:15 GMT):
@FlyingTiger would you please give some suggestions on @rkrish82 issue?
FlyingTiger (Fri, 12 Oct 2018 03:25:18 GMT):
@rkrish82 Could you please post your commands that running caliper benchmark test in non-docker mode?
FlyingTiger (Fri, 12 Oct 2018 03:27:08 GMT):
As the architecture document said, a process monitor is used to monitor specified local process. For example, users can use this monitor to watch the resource consumption of simulated blockchain clients.
rkrish82 (Fri, 12 Oct 2018 12:39:09 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=MTpPYAHvMMC5uzjH5) @FlyingTiger Command I used to run smallbank benchmark test is same as docker mode, I.e node main.js -c config-smallbank.json -n sawtooth.json
rkrish82 (Fri, 12 Oct 2018 12:41:01 GMT):
In sawtooth.json I specified the rest end point with IP of the machine where sawtooth is installed and all sawtooth components are running as service
rkrish82 (Fri, 12 Oct 2018 12:42:31 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=3ETZRM4fxEAYnTkJ4) @FlyingTiger I don't want monitoring of process of remote machine. I need only the tps and latency data from the caliper
FlyingTiger (Mon, 15 Oct 2018 03:01:48 GMT):
@rkrish82 The length of undefined was fixed at https://github.com/hyperledger/caliper/pull/188, Could you please update the caliper, and try it again?
rkrish82 (Mon, 15 Oct 2018 06:28:36 GMT):
@FlyingTiger Thanks. It is working now..
rkrish82 (Mon, 15 Oct 2018 08:28:12 GMT):
@FlyingTiger I am getting one more issue while sawtooth test, test doesn't throw any error but test doesn't exit normally. At the end it generate report and but it doesn't exit
rkrish82 (Mon, 15 Oct 2018 08:28:21 GMT):
Generated report at /home/fabric/caliper/benchmark/simple/report20181015T082509.html
Client exited
rkrish82 (Mon, 15 Oct 2018 08:28:44 GMT):
I have to kill it manually
rkrish82 (Mon, 15 Oct 2018 08:29:28 GMT):
Here is the input config json file used
rkrish82 (Mon, 15 Oct 2018 08:29:29 GMT):
{
"blockchain": {
"type": "sawtooth",
"config": "benchmark/simple/sawtooth.json"
},
"test": {
"name": "simple",
"description" : "This is an example benchmark for caliper",
"clients": {
"type": "local",
"number": 1
},
"rounds": [{
"label" : "open",
"txNumber" : [5000],
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 50}}],
"arguments": { "money": 10000, "txnPerBatch":10 },
"callback" : "benchmark/simple/open.js"
},
{
"label" : "query",
"txNumber" : [500],
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 50}}],
"callback" : "benchmark/simple/query.js"
}]
},
"monitor": {
"type": ["docker", "process"],
"docker":{
"name": ["all"]
},
"process": [
{
"command" : "node",
"arguments" : "local-client.js",
"multiOutput" : "avg"
}
],
"interval": 1
}
}
rkrish82 (Mon, 15 Oct 2018 08:32:37 GMT):
And in sawtooth.json, i am using ip machine where sawtooth components (validator and rest-api) are running.
FlyingTiger (Tue, 16 Oct 2018 02:37:19 GMT):
@rkrish82 Could you please post the log output when it doesn't exit?
rkrish82 (Tue, 16 Oct 2018 03:26:49 GMT):
@FlyingTiger I always get the same issue, test doesn't exit..
rkrish82 (Tue, 16 Oct 2018 03:32:11 GMT):
Steps to reproduce
1. Remove start and end command entry from benchmark/smallbank/config-smallbank-sawtooth.json
2. Manually start the docker container
docker-compose -f network/sawtooth/smallbank/sawtooth-smallbank-go.yaml up
3. Start the smallbank test
node main.js -c config-smallbank-sawtooth.json -n sawtooth.json
rkrish82 (Tue, 16 Oct 2018 03:33:32 GMT):
test.log
tian (Tue, 16 Oct 2018 07:55:23 GMT):
Has joined the channel.
LinuxLearner1 (Tue, 16 Oct 2018 18:12:59 GMT):
Has joined the channel.
RobertDiebels (Wed, 17 Oct 2018 11:15:39 GMT):
Has joined the channel.
FlyingTiger (Wed, 17 Oct 2018 11:42:01 GMT):
I'm looking for the reason that could not exit normally, @rkrish82
Ferrymania (Thu, 18 Oct 2018 06:38:05 GMT):
Has joined the channel.
FlyingTiger (Thu, 18 Oct 2018 06:49:36 GMT):
@rkrish82 The PR https://github.com/hyperledger/caliper/pull/196 fixed not exit normally, could you please try it?
FlyingTiger (Thu, 18 Oct 2018 06:56:08 GMT):
But I think the problem maybe caused by the connected stream not released https://github.com/hyperledger/caliper/blob/master/src/sawtooth/sawtooth.js#L284
shashank-poojary (Thu, 18 Oct 2018 09:50:57 GMT):
Selection_013.png
shashank-poojary (Thu, 18 Oct 2018 09:53:56 GMT):
Selection_014.png
klenik (Thu, 18 Oct 2018 10:08:22 GMT):
@shashank-poojary Are you running the entire network on one machine?
shashank-poojary (Thu, 18 Oct 2018 10:17:20 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=E6uLp4BNWSGLrhKCp) @klenik @klenik Yes.
shashank-poojary (Thu, 18 Oct 2018 10:17:20 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=E6uLp4BNWSGLrhKCp) @klenik Yes.
klenik (Thu, 18 Oct 2018 10:23:06 GMT):
Well then that's your bottleneck :) 6 peer containers, 6 couchdb containers, 3 ca containers, plus caliper load generation. A production network would look something like 6 machines for the peer+couchdb pairs, 3 machines for the 3 CAs of the orgs (usually these already exist, just need to integrate them). Take a look at the evaluation part of the THE Fabric paper: https://dl.acm.org/citation.cfm?id=3190538
shashank-poojary (Thu, 18 Oct 2018 10:26:35 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=aNZ93GoJHnyjZ2vAS) @klenik @klenik Thank you for the information.
marcusvcs (Thu, 18 Oct 2018 17:39:18 GMT):
Has joined the channel.
hotbydefault (Fri, 19 Oct 2018 03:44:03 GMT):
Has joined the channel.
houqinghui (Mon, 22 Oct 2018 04:31:30 GMT):
Has joined the channel.
BarkhaJasani (Mon, 22 Oct 2018 18:24:08 GMT):
Has joined the channel.
BarkhaJasani (Mon, 22 Oct 2018 18:34:01 GMT):
hi all, This is Barkha
BarkhaJasani (Mon, 22 Oct 2018 18:35:22 GMT):
I am a noobie to Caliper, the reason i am in this channel is because i am looking for a high throughput permissioned blockchain that could handle mobile/IOT device level txs.. could be 1 Million TPS
BarkhaJasani (Mon, 22 Oct 2018 18:35:38 GMT):
could anyone please suggest me the best possible option i could go with?
panyu2 (Tue, 23 Oct 2018 07:17:48 GMT):
I have not seen 1Million TPS blockchain. Maybe you can use Caliper to test your interested blockchain to see how large the TPS can be.
RobertDiebels (Tue, 23 Oct 2018 09:28:28 GMT):
@BarkhaJasani I've recently read a news letter about Corda reaching about 1.3 Million transactions in a single day. So I doubt that 1 Million Tx/s will be something you'll find anywhere.
RobertDiebels (Tue, 23 Oct 2018 09:28:28 GMT):
@BarkhaJasani I've recently read a news letter about Corda reaching about 100 Million transactions in a single day. So I doubt that 1 Million Tx/s will be something you'll find anywhere.
RobertDiebels (Tue, 23 Oct 2018 09:28:28 GMT):
@BarkhaJasani I've recently read a news letter about Corda reaching about 100 Million transactions in a single day. So I doubt that 1 Million Tx/s will be something you'll find anywhere. [ http://www.dtcc.com/news/2018/october/16/dtcc-unveils-groundbreaking-study-on-dlt ]
RobertDiebels (Tue, 23 Oct 2018 09:29:52 GMT):
"The study, which was conducted by Accenture with additional support provided by technology service providers Digital Asset (DA) and R3, proved that DLT can perform at levels necessary to process an entire trading day’s volume at peak rates, which equates to 115,000,000 daily trades, or 6,300 trades per second for five continuous hours. "
RobertDiebels (Tue, 23 Oct 2018 09:33:26 GMT):
The maximum I've reached with Fabric 1.2 is about 130 Tx/s on a single ledger.
hurf (Wed, 24 Oct 2018 05:58:26 GMT):
Also I'm curious what business will require 1m tps. AFAIK Visa has a designed maximum capacity of 60 thousands tps, and it serves the world's transactions fine. Even for Alipay, the peak is 400 thousand, and it only last for server seconds.
BarkhaJasani (Wed, 24 Oct 2018 06:39:45 GMT):
trying to solve a usecase where need to deal with all the IOT/mobile device level txs
BarkhaJasani (Wed, 24 Oct 2018 06:39:45 GMT):
trying to solve a usecase where need to deal with all the IOT/mobile device level txs @hurf
BarkhaJasani (Wed, 24 Oct 2018 06:40:52 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=Gi9t3ZeFttnQPpFLT) @RobertDiebels do u have any idea on howmany TPS sawtooth can handle?
karthikmohan91 (Wed, 24 Oct 2018 06:51:58 GMT):
@BarkhaJasani max i got from fabric is around 100 tps ... one million is quite a big ask
BarkhaJasani (Wed, 24 Oct 2018 07:05:25 GMT):
i wanted to know about sawtooth
BarkhaJasani (Wed, 24 Oct 2018 07:05:25 GMT):
i wanted to know about sawtooth throughput
BarkhaJasani (Wed, 24 Oct 2018 07:05:25 GMT):
i wanted to know about sawtooth throughput, howmany TPS it can handle?
RobertDiebels (Wed, 24 Oct 2018 11:33:47 GMT):
@BarkhaJasani I have not tested SawTooth so I don't know.
RobertDiebels (Wed, 24 Oct 2018 11:37:43 GMT):
I am writing my Master Thesis on partitioning permissioned blockchains right now and so far I've reached about 330 Tx/s using a single ledger with Hyperledger Fabric. I doubt that I'll get close to 1 Million though haha xD.
RobertDiebels (Wed, 24 Oct 2018 11:37:43 GMT):
I am writing my Master Thesis on partitioning permissioned blockchains right now and so far I've reached a maximum of 330 Tx/s using a single ledger with Hyperledger Fabric. I doubt that I'll get close to 1 Million though haha xD.
NavjotSingh (Thu, 25 Oct 2018 11:42:30 GMT):
Has joined the channel.
ArianStef (Fri, 26 Oct 2018 13:53:00 GMT):
Has joined the channel.
MaheshBalan_Pravici (Fri, 26 Oct 2018 22:32:22 GMT):
Has joined the channel.
harryc (Sat, 27 Oct 2018 20:56:23 GMT):
Hey guis. I just started using caliper. After installing caliper, I tried to run example using "node main.js -c config-composer.json" command. But I got this error, "composer.installSmartContract() failed, Error: Error trying to start business network. Error: No valid responses from any peers.". I have added compose and fabric package in package.jon. Could you help me out for this?
houqinghui (Mon, 29 Oct 2018 06:46:30 GMT):
@harryc do you see the documentation [https://github.com/hyperledger/caliper/blob/master/docs/Composer.md]?
harryc (Mon, 29 Oct 2018 07:59:17 GMT):
@houqinghui Thanks I am following it and the document indicates business file should be located at /caliper/contract/composer, so I located the bna file at both of /caliper/contract/composer and /caliper/src/contract/composer because the it is a bit ambiguous for me.
harryc (Mon, 29 Oct 2018 08:02:27 GMT):
@houqinghui I am trying to run an example of config-composer.json. It is using basic-sample-network and 2-org-1-peer fabric model.
houqinghui (Mon, 29 Oct 2018 11:45:24 GMT):
@harryc do you install docker and docker-compose ? if installed , please check the version that is very import.
houqinghui (Mon, 29 Oct 2018 11:46:24 GMT):
@harryc the right version is very important !
Nabilel 1 (Mon, 29 Oct 2018 13:02:35 GMT):
Hello everyone, I am very new to caliper and I am trying to run my first test against fabcar. I would like to measure the throughput of the transactions. Can you please how to write test cases to do that?
houqinghui (Mon, 29 Oct 2018 13:30:31 GMT):
@Nabilel 1 you can use the default use case to test the fabric , follow the readme file .
Nabilel 1 (Mon, 29 Oct 2018 16:46:41 GMT):
ok thanks
harryc (Mon, 29 Oct 2018 17:20:28 GMT):
@houqinghui I am using docker version 18.06.1-ce, docker-compose version 1.22.0. I tried to use both combination of composer 0.19.5/fabric 1.1.0 and composer 0.20.2/fabric1.2.1 through package.json of caliper project.
houqinghui (Tue, 30 Oct 2018 00:34:46 GMT):
@harryc please make sure composer version 0.19.0 and fabric version 1.1.0, npm install composer-admin@0.19.0 composer-client@0.19.0 composer-common@0.19.0 fabric-ca-client@1.1.0 fabric-client@1.1.0
houqinghui (Tue, 30 Oct 2018 00:36:05 GMT):
@harryc when you install them rightly , please chect ther version of gRPC.
githubcpc (Tue, 30 Oct 2018 03:04:59 GMT):
Has joined the channel.
harryc (Tue, 30 Oct 2018 04:09:11 GMT):
@houqinghui I googled to check grpc version, but i couldn't find any solution. do you know how to check it? I am using mac.
houqinghui (Tue, 30 Oct 2018 06:05:11 GMT):
@harryc you can modify CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE = 2-org-1-peer_default in the docker-composer.yaml at /network/fabric/2-org-1-peer.
panyu2 (Tue, 30 Oct 2018 06:34:45 GMT):
I used to use "npm list grpc" to see if the version is fit for fabric-ca 1.1.0 and fabric-ca-client1.1.0. Make sure the grpc version should be 1.10.1
panyu2 (Tue, 30 Oct 2018 06:35:44 GMT):
@harryc
Nabilel 1 (Tue, 30 Oct 2018 10:08:18 GMT):
Hello everyone, I am trying to understand what's happening while executing the tests. I am running the fabric/simple.go example and when I add fmt.Printf("Argument %s ", args[1]) it does not print anything. Can you please help me
Nabilel 1 (Tue, 30 Oct 2018 12:27:51 GMT):
How can I query hyperldeger fabric using caliper?
nkl199 (Tue, 30 Oct 2018 13:25:22 GMT):
your 'query' is a function within the deployed chaincode, which needs to be called in a specfic way. Check out the marbles demo (benchmark example) for more details on that one
harryc (Tue, 30 Oct 2018 17:24:19 GMT):
@panyu2 thank you! grpc vesion is 1.10.1 for fab-cli 1.2.1 and 1.14.2 for fab-cli 1.3.0
harryc (Tue, 30 Oct 2018 17:24:46 GMT):
@houqinghui Thank you it works after changing it!
toddinpal (Tue, 30 Oct 2018 22:29:14 GMT):
Has joined the channel.
toddinpal (Tue, 30 Oct 2018 22:31:14 GMT):
Hi, I'm trying to run caliper against Fabric 1.1. I've installed all the pre-reqs with the proper versions, yet I still get an error in Instantiate chaincode... The proposals timeout
toddinpal (Tue, 30 Oct 2018 22:31:54 GMT):
I'm simply using: npm test simple -c ./benchmark/simple/config.json -n ./benchmark/simple/fabric.json
houqinghui (Wed, 31 Oct 2018 00:42:49 GMT):
@toddinpal you can modify CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE = 2-org-1-peer_default in the docker-composer.yaml at /network/fabric/2-org-1-peer.
toddinpal (Wed, 31 Oct 2018 03:47:12 GMT):
@houqinghui Same result...
toddinpal (Wed, 31 Oct 2018 03:47:15 GMT):
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: REQUEST_TIMEOUT
at Timeout._onTimeout (/home/bcsdev/node_modules/fabric-client/lib/Peer.js:124:19)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
houqinghui (Wed, 31 Oct 2018 06:15:07 GMT):
@toddinpal you can use "npm list grpc" to see if the version is fit for fabric-ca 1.1.0 and fabric-ca-client1.1.0, make sure the grpc version should be 1.10.1 .
Nabilel 1 (Wed, 31 Oct 2018 09:44:24 GMT):
hello everyone, when I run my caliper I always get traffic in traffic out 0B. Can anyone tell me why is that?
toddinpal (Wed, 31 Oct 2018 11:23:34 GMT):
@houqinghui yeah, right versions:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d82c8bbf75ae hyperledger/fabric-peer:x86_64-1.1.0 "peer node start" About a minute ago Up About a minute 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer0.org2.example.com
5327285f2ebf hyperledger/fabric-peer:x86_64-1.1.0 "peer node start" About a minute ago Up About a minute 0.0.0.0:7057->7051/tcp, 0.0.0.0:7059->7053/tcp peer1.org1.example.com
cdf95398b2ad hyperledger/fabric-peer:x86_64-1.1.0 "peer node start" About a minute ago Up About a minute 0.0.0.0:8057->7051/tcp, 0.0.0.0:8059->7053/tcp peer1.org2.example.com
9efed0489813 hyperledger/fabric-peer:x86_64-1.1.0 "peer node start" About a minute ago Up About a minute 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
a814c68381cb hyperledger/fabric-ca:x86_64-1.1.0 "sh -c 'fabric-ca-se…" About a minute ago Up About a minute 0.0.0.0:7054->7054/tcp ca_peerOrg1
772b0bdd4598 hyperledger/fabric-ca:x86_64-1.1.0 "sh -c 'fabric-ca-se…" About a minute ago Up About a minute 0.0.0.0:8054->7054/tcp ca_peerOrg2
967aea8ffb17 hyperledger/fabric-orderer:x86_64-1.1.0 "orderer" About a minute ago Up About a minute 0.0.0.0:7050->7050/tcp orderer.example.com
7d9b066e2212 hyperledger/fabric-ca:x86_64-1.1.0 "sh -c 'fabric-ca-se…" About a minute ago Up About a minute 7054/tcp simplenetwork_ca_1
$ npm list grpc
/home/bcsdev
└─┬ fabric-client@1.1.0
└── grpc@1.10.1
$
toddinpal (Wed, 31 Oct 2018 11:24:23 GMT):
$ node -v
v8.12.0
toddinpal (Wed, 31 Oct 2018 11:32:40 GMT):
@houqinghui Here is the end of one of the peer log files:
2018-10-31 11:29:04.026 UTC [nodeCmd] serve -> INFO 023 Starting peer with ID=[name:"peer0.org2.example.com" ], network ID=[dev], address=[peer0.org2.example.com:7051]
2018-10-31 11:29:04.032 UTC [nodeCmd] serve -> INFO 024 Started peer with ID=[name:"peer0.org2.example.com" ], network ID=[dev], address=[peer0.org2.example.com:7051]
2018-10-31 11:29:13.574 UTC [ledgermgmt] CreateLedger -> INFO 025 Creating ledger [mychannel] with genesis block
2018-10-31 11:29:13.776 UTC [fsblkstorage] newBlockfileMgr -> INFO 026 Getting block information from block storage
2018-10-31 11:29:14.002 UTC [kvledger] CommitWithPvtData -> INFO 027 Channel [mychannel]: Committed block [0] with 1 transaction(s)
2018-10-31 11:29:14.128 UTC [ledgermgmt] CreateLedger -> INFO 028 Created ledger [mychannel] with genesis block
2018-10-31 11:29:14.368 UTC [cscc] Init -> INFO 029 Init CSCC
2018-10-31 11:29:14.369 UTC [sccapi] deploySysCC -> INFO 02a system chaincode cscc/mychannel(github.com/hyperledger/fabric/core/scc/cscc) deployed
2018-10-31 11:29:14.370 UTC [sccapi] deploySysCC -> INFO 02b system chaincode lscc/mychannel(github.com/hyperledger/fabric/core/scc/lscc) deployed
2018-10-31 11:29:14.393 UTC [escc] Init -> INFO 02c Successfully initialized ESCC
2018-10-31 11:29:14.393 UTC [sccapi] deploySysCC -> INFO 02d system chaincode escc/mychannel(github.com/hyperledger/fabric/core/scc/escc) deployed
2018-10-31 11:29:14.393 UTC [sccapi] deploySysCC -> INFO 02e system chaincode vscc/mychannel(github.com/hyperledger/fabric/core/scc/vscc) deployed
2018-10-31 11:29:14.393 UTC [qscc] Init -> INFO 02f Init QSCC
2018-10-31 11:29:14.393 UTC [sccapi] deploySysCC -> INFO 030 system chaincode qscc/mychannel(github.com/hyperledger/fabric/core/chaincode/qscc) deployed
2018-10-31 11:29:15.141 UTC [lscc] executeInstall -> INFO 031 Installed Chaincode [simple] Version [v0] to peer
2018-10-31 11:29:15.614 UTC [golang-platform] GenerateDockerBuild -> INFO 032 building chaincode with ldflagsOpt: '-ldflags "-linkmode external -extldflags '-static'"'
2018-10-31 11:29:15.614 UTC [golang-platform] GenerateDockerBuild -> INFO 033 building chaincode with tags:
$
RobertDiebels (Wed, 31 Oct 2018 16:24:54 GMT):
@toddinpal Do you have any other logs for the peer?
RobertDiebels (Wed, 31 Oct 2018 16:25:52 GMT):
It might be that it's taking a bit longer to initialize the chaincode and that's what causing it to fail.
RobertDiebels (Wed, 31 Oct 2018 16:26:17 GMT):
Consider increasing the timeout value for instantiation.
rkrish82 (Fri, 02 Nov 2018 08:41:07 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=EccMTiJMa4beNbWh9) @FlyingTiger this doesn't fix hang issue..
rkrish82 (Fri, 02 Nov 2018 08:45:22 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=9eLjBTdc2oQc8mZH9) @FlyingTiger How and when to release that stream?
denis3007 (Fri, 02 Nov 2018 10:39:57 GMT):
Has joined the channel.
anant706 (Sun, 04 Nov 2018 15:59:17 GMT):
Has joined the channel.
HaiTranThanh (Mon, 05 Nov 2018 02:57:56 GMT):
Has joined the channel.
HaiTranThanh (Mon, 05 Nov 2018 03:08:33 GMT):
Hi everyone. I'm confused with the term "commit" of transaction when using Caliper to measure Sawtooth performance. All the result report of simple test is showed while sawtooth validator is still validating block to push on chain, not when the validators end (I have removed end command entry from benchmark/simple/config-sawtooth.json so that I can watch the validator container validate with Kitematic). Could you please explain to me how monitor of caliper watch transaction from creating time to submitting validator time or to push on chain time?
FlyingTiger (Tue, 06 Nov 2018 06:08:11 GMT):
@rkrish82 PR #212 fix hang issue, please update, and have a try.
FlyingTiger (Tue, 06 Nov 2018 07:02:25 GMT):
@rkrish82 Could you please give some help to @HaiTranThanh?
FlyingTiger (Tue, 06 Nov 2018 07:03:05 GMT):
Explain to @HaiTranThanh how monitor of caliper watch transaction from creating time to submitting validator time or to push on chain time?
klenik (Tue, 06 Nov 2018 10:47:21 GMT):
@toddinpal @RobertDiebels Timeout during a chaincode instantiation is a tricky thing. You would expect that it is an actual timeout, but in my experience it is an error during executing (or trying to execute) the chaincode `Init` function.
The confusing part is, that this error appears/logged in the `dev***` chaincode container that is created by the peer (and not the peer container itself). But since the peer doesn't receive an OK from the CC init in time (because of the error), it will report a timeout, and delete the container, and yessss, the error message with it :)
So to observe the actual error, you have to follow the logs of the `dev***` container once it is created (`docker logs --follow dev***`), but before the peer deletes it. For this, you should increase the timeout on the client/Caliper side AND on the peer side with the `CORE_CHAINCODE_STARTUPTIMEOUT=300s` env setting for example.
klenik (Tue, 06 Nov 2018 10:47:21 GMT):
@toddinpal @RobertDiebels Timeout during a chaincode instantiation is a tricky thing. You would expect that it is an actual timeout, but in my experience it is an error during executing (or trying to execute) the chaincode `Init` function.
The confusing part is, that this error appears/logged in the `dev***` chaincode container that is created by the peer (and not the peer container itself). But since the peer doesn't receive an OK from the CC init in time (because of the error), it will report a timeout, and delete the container, and yessss, the error message with it :)
So to observe the actual error, you have to follow the logs of the `dev***` container once it is created (`docker logs --follow dev***` ), but before the peer deletes it. For this, you should increase the timeout on the client/Caliper side AND on the peer side with the `CORE_CHAINCODE_STARTUPTIMEOUT=300s` env setting for example.
klenik (Tue, 06 Nov 2018 10:47:21 GMT):
@toddinpal @RobertDiebels Timeout during a chaincode instantiation is a tricky thing. You would expect that it is an actual timeout, but in my experience it is an error during executing (or trying to execute) the chaincode `Init` function.
The confusing part is, that this error appears/logged in the `dev***` chaincode container that is created by the peer (and not the peer container itself). But since the peer doesn't receive an OK from the CC init in time (because of the error), it will report a timeout, and delete the container, and yessss, the error message with it :)
So to observe the actual error, you have to follow the logs of the `dev***` container once it is created (`docker logs --follow dev*** `), but before the peer deletes it. For this, you should increase the timeout on the client/Caliper side AND on the peer side with the `CORE_CHAINCODE_STARTUPTIMEOUT=300s` env setting for example.
klenik (Tue, 06 Nov 2018 10:47:21 GMT):
@toddinpal @RobertDiebels Timeout during a chaincode instantiation is a tricky thing. You would expect that it is an actual timeout, but in my experience it is an error during executing (or trying to execute) the chaincode `Init` function.
The confusing part is, that this error appears/logged in the `dev***` chaincode container that is created by the peer (and not the peer container itself). But since the peer doesn't receive an OK from the CC init in time (because of the error), it will report a timeout, and delete the container, and yessss, the error message with it :)
So to observe the actual error, you have to follow the logs of the `dev***` container once it is created ( `docker logs --follow dev***`), but before the peer deletes it. For this, you should increase the timeout on the client/Caliper side AND on the peer side with the `CORE_CHAINCODE_STARTUPTIMEOUT=300s` env setting for example.
marcusvcs (Tue, 06 Nov 2018 18:09:04 GMT):
Hi, I am trying to test Fabric using the 3-org-3-peer network. First I start the containers and then I try to run using `node main -c config.json` in the smallbank folder. I am getting the following error:
```
```
marcusvcs (Tue, 06 Nov 2018 18:09:04 GMT):
Hi, I am trying to test Fabric using the 3-org-3-peer network. First I start the containers and then I try to run using `node main -c config.json` in the smallbank folder. I am getting the following error:
```
E1106 16:04:59.278170400 721 ssl_transport_security.cc:989] Handshake failed with fatal error SSL_ERROR_SSL: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number.
error: [Orderer.js]: sendBroadcast - on error: "Error: 14 UNAVAILABLE: Connect Failed\n
```
marcusvcs (Tue, 06 Nov 2018 18:09:45 GMT):
If I use the simplenetwork network everything works
houqinghui (Wed, 07 Nov 2018 01:06:14 GMT):
@Nabilel 1 hi, have you solved your problem?
houqinghui (Wed, 07 Nov 2018 06:06:28 GMT):
@marcusvcs please see https://jira.hyperledger.org/browse/CE-453?jql=text%20~%20%22wrong%20version%20number%22
houqinghui (Wed, 07 Nov 2018 07:30:53 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=Hpx6wWfxvGKNR5Q5d) @marcusvcs You can try to enable the TLS (ORDERER_GENERAL_TLS_ENABLED=true) if you donot enabled the TLS on thte server side.
FlyingTiger (Wed, 07 Nov 2018 10:56:55 GMT):
@HaiTranThanh Could you please post some information for All the result report of simple test is showed while sawtooth validator is still validating block to push on chain, not when the validators end?
klenik (Wed, 07 Nov 2018 17:48:49 GMT):
[Annual Caliper Newsletter]
The Caliper team is pleased to announce that Caliper now has a new website for its documentation!
You can find it [here](https://hyperledger.github.io/caliper/).
If you would like to contribute to the documentation, please make a pull request to the `gh-pages` branch of Caliper. The exact procedure and guidelines are documented in the branch’s [readme](https://github.com/hyperledger/caliper/blob/gh-pages/README.md)
And last but not least, many thanks to Sam Winslet and Nick Lincoln for putting this awesome site together!!
FlyingTiger (Thu, 08 Nov 2018 01:08:39 GMT):
:thumbsup: A new website
MaherBouidani (Thu, 08 Nov 2018 09:28:39 GMT):
Hello Guys, What is the command used to run the test on the HL composer mode, I followed the documentation and placed everything in its place but I could not find the command to run the test
?
nkl199 (Thu, 08 Nov 2018 09:30:53 GMT):
it is started via the same method as other tests - a `main.js` file that points to the required config file
MaherBouidani (Thu, 08 Nov 2018 09:32:22 GMT):
node benchmark/composer/main.js ?
RobertDiebels (Thu, 08 Nov 2018 09:34:05 GMT):
@klenik Looks amazing well done :D !
MaherBouidani (Thu, 08 Nov 2018 09:38:52 GMT):
Do I have to delete the fabric images in docker (for my composer) before proceeding into testing the caliper?
MaherBouidani (Thu, 08 Nov 2018 09:38:56 GMT):
It gives me this error
MaherBouidani (Thu, 08 Nov 2018 09:40:07 GMT):
Screen Shot 2018-11-08 at 1.39.40 AM.png
klenik (Thu, 08 Nov 2018 09:46:04 GMT):
@MaherBouidani You either delete the containers to start a fresh benchmark, or you remove the network start-up script from the config, and it should connect to an already existing network. I'd recommend the first
MaherBouidani (Thu, 08 Nov 2018 09:49:31 GMT):
@klenik Thank you
MaherBouidani (Thu, 08 Nov 2018 10:15:54 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=uswvXMCjJpFLsYNzD) @harryc I have the same issue, does it work for you? what changes did you make?
lcj (Thu, 08 Nov 2018 13:29:03 GMT):
Has joined the channel.
MaherBouidani (Fri, 09 Nov 2018 05:19:36 GMT):
Screen Shot 2018-11-08 at 9.19.13 PM.png
MaherBouidani (Fri, 09 Nov 2018 05:20:12 GMT):
I have this error guys. I am testing my composer business network
MaherBouidani (Fri, 09 Nov 2018 05:20:25 GMT):
composer 0.19.15
rkrish82 (Mon, 12 Nov 2018 08:13:07 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=R86RSM7pE7L667gsW) @HaiTranThanh To measure transaction through put time with time taken to commit the transaction to block chain. commit time to block chain - time at which transaction submitted.
klenik (Mon, 12 Nov 2018 10:39:54 GMT):
@MaherBouidani Based on the read set mismatch, my guess is that `mychannel` already exists and you try to create it again. Did you reset (remove) the network before starting the test?
nkl199 (Mon, 12 Nov 2018 16:59:55 GMT):
@MaherBouidani -there's been an update in the way networks are named in Docker: the network name specified in the docker compose files needs to match the parent directory within which it resides. If you look at the `network/fabric/
LegoEngineering (Mon, 12 Nov 2018 19:30:01 GMT):
Has joined the channel.
klenik (Mon, 12 Nov 2018 20:18:43 GMT):
@MaherBouidani @nkl199 However, be aware of the following strange behavior: https://github.com/hyperledger/caliper/issues/198
panyu2 (Tue, 13 Nov 2018 09:04:53 GMT):
Hi,to whom concerns the Caliper's regular meeting, the meeting will take place at UTC 6am on 11.14. The link of the meeting can be found on the Caliper's wiki https://wiki.hyperledger.org/projects/caliper
HaiTranThanh (Tue, 13 Nov 2018 15:09:52 GMT):
Hi everyone, I'm a newbie in Fabric. I have deployed successful with single node. Now I want to deploy fabric on network with mutilnode (physical machine) by using Docker Swarm and Caliper (for benchmark performance), could anyone help me?
klenik (Tue, 13 Nov 2018 15:12:16 GMT):
@HaiTranThanh you should ask the deployment question in the #fabric channel. If you deployed the network successfully, then you need to specify the remote endpoints of the nodes to Caliper. Take a look at the remote sample config in the `benchmark/simple` directory
megafyk (Tue, 13 Nov 2018 15:14:54 GMT):
Has joined the channel.
HaiTranThanh (Tue, 13 Nov 2018 15:43:04 GMT):
I have deployed a fabric local network with 2 pc successfully. Each PC contains 1 organizations with an orderer and 2 peers. I have look at fabric-remote.json file and change ip and crypto-config path but it's not working. Can u give me an example of changing this file?
klenik (Tue, 13 Nov 2018 20:37:32 GMT):
@HaiTranThanh What is the exact error you're getting?
hariharan-avs (Wed, 14 Nov 2018 03:40:43 GMT):
Has joined the channel.
hariharan-avs (Wed, 14 Nov 2018 03:45:17 GMT):
Hi Guys, I have an issue while running caliper tests on fabric. With fabric client v1.1 the tests run, but receiving very low tps on AWS. There are few transactions failing with below error error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error executing chaincode: premature execution - chaincode (simple:v0) is being launched
at new createStatusError (/home/builder/caliper/node_modules/grpc/src/client.js:64:15)
at /home/builder/caliper/node_modules/grpc/src/client.js:583:15
Failed to complete transaction [a0db5...]:Error: Endorsement denied: Error: 2 UNKNOWN: error executing chaincode: premature execution - chaincode (simple:v0) is being launched
at Object.invokebycontext (/home/builder/caliper/src/fabric/e2eUtils.js:611:27)
at
hariharan-avs (Wed, 14 Nov 2018 03:45:17 GMT):
Hi Guys, I have an issue while running caliper tests on fabric. With fabric client v1.1 the tests run, but receiving very low tps on AWS. There are few transactions failing with below error
hariharan-avs (Wed, 14 Nov 2018 03:45:17 GMT):
Hi Guys, I have an issue while running caliper tests on fabric. With fabric client v1.1 the tests run, but receiving very low tps on AWS. There are few transactions failing with below : error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error executing chaincode: premature execution - chaincode (simple:v0) is being launched
at new createStatusError (/home/builder/caliper/node_modules/grpc/src/client.js:64:15)
at /home/builder/caliper/node_modules/grpc/src/client.js:583:15
Failed to complete transaction [a0db5...]:Error: Endorsement denied: Error: 2 UNKNOWN: error executing chaincode: premature execution - chaincode (simple:v0) is being launched
at Object.invokebycontext (/home/builder/caliper/src/fabric/e2eUtils.js:611:27)
at
hariharan-avs (Wed, 14 Nov 2018 03:45:17 GMT):
Hi Guys, I have an issue while running #caliper caliper tests on #fabric. With fabric client v1.1 the tests run, but receiving very low tps on AWS. There are few transactions failing with below : error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error executing chaincode: premature execution - chaincode (simple:v0) is being launched
at new createStatusError (/home/builder/caliper/node_modules/grpc/src/client.js:64:15)
at /home/builder/caliper/node_modules/grpc/src/client.js:583:15
Failed to complete transaction [a0db5...]:Error: Endorsement denied: Error: 2 UNKNOWN: error executing chaincode: premature execution - chaincode (simple:v0) is being launched
at Object.invokebycontext (/home/builder/caliper/src/fabric/e2eUtils.js:611:27)
at
hariharan-avs (Wed, 14 Nov 2018 03:45:17 GMT):
Hi Guys, I have an issue while running #caliper caliper tests on #fabric. With fabric client v1.1 the tests run, but receiving very low tps on AWS. There are few transactions failing with below : ```
``` error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error executing chaincode: premature execution - chaincode (simple:v0) is being launched
at new createStatusError (/home/builder/caliper/node_modules/grpc/src/client.js:64:15)
at /home/builder/caliper/node_modules/grpc/src/client.js:583:15
Failed to complete transaction [a0db5...]:Error: Endorsement denied: Error: 2 UNKNOWN: error executing chaincode: premature execution - chaincode (simple:v0) is being launched
at Object.invokebycontext (/home/builder/caliper/src/fabric/e2eUtils.js:611:27)
at
nkl199 (Wed, 14 Nov 2018 06:10:53 GMT):
there was a breaking change that went into Fabric 1.3, which makes the client and ca-client incompatible with that which Caliper is uses - there is a change ready to be merged that will make Caliper compatible, but for now it is only possible to use Fabric client(s) at the 1.2 level
hariharan-avs (Wed, 14 Nov 2018 08:17:25 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=oEoLn8RpXbX8NnR6m) @nkl199 Thanks for the information
githubcpc (Fri, 16 Nov 2018 06:55:37 GMT):
Could I use Caliper to test a deployed chaincode on my HLFv1.1 with 3 orderer?
klenik (Fri, 16 Nov 2018 07:39:19 GMT):
@githubcpc currently, Caliper supports only a single orderer, but an update is coming to fix this
githubcpc (Fri, 16 Nov 2018 08:32:29 GMT):
@klenik I run the main.js succefully in single Host.But when I test the remote,I can't get the docker images monitor info.
githubcpc (Fri, 16 Nov 2018 08:34:35 GMT):
remote-fabric-test.png
githubcpc (Fri, 16 Nov 2018 08:36:22 GMT):
And something wrong occures to me when subbmit the test transactions.
githubcpc (Fri, 16 Nov 2018 08:40:10 GMT):
I use the same chaincode to test this. The fails higher than single Host.
klenik (Fri, 16 Nov 2018 09:16:31 GMT):
@githubcpc can you provide some error messages? Transaction failures should be logged to the console
githubcpc (Fri, 16 Nov 2018 09:32:22 GMT):
2018-11-16T07:23:53+00:00 - ERROR [e2eUtils.js]: Failed to complete transaction [87043...]:Error: Timeout
at Timeout.setTimeout [as _onTimeout] (/root/caliper/src/fabric/e2eUtils.js:656:54)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
2018-11-16T07:23:53+00:00 - ERROR [e2eUtils.js]: Failed to complete transaction [04357...]:Error: Endorsement denied: Error: REQUEST_TIMEOUT
at Object.invokebycontext (/root/caliper/src/fabric/e2eUtils.js:614:27)
at
githubcpc (Fri, 16 Nov 2018 09:33:00 GMT):
@klenik There are much error like this
githubcpc (Fri, 16 Nov 2018 09:36:02 GMT):
I hava already modify timeout from 120000 to 600000 before I run this test.
githubcpc (Fri, 16 Nov 2018 09:36:59 GMT):
I also set the env.
export DOCKER_CLIENT_TIMEOUT=120
export COMPOSE_HTTP_TIMEOUT=120
klenik (Fri, 16 Nov 2018 09:46:57 GMT):
@githubcpc The first error is from the client side, the seconds is from the peer side. Set the `CORE_CHAINCODE_EXECUTETIMEOUT=100s` env setting for the peer containers (with whatever value you need)
githubcpc (Fri, 16 Nov 2018 13:08:24 GMT):
@klenik Thanks.I will try it again.
anant706 (Sat, 17 Nov 2018 00:18:40 GMT):
Clipboard - November 16, 2018 6:15 PM
anant706 (Sat, 17 Nov 2018 00:18:40 GMT):
Clipboard - November 16, 2018 6:15 PM
anant706 (Sat, 17 Nov 2018 00:19:26 GMT):
I am following : https://github.com/hyperledger/caliper
Invoking the below cmd:
npm install grpc@1.10.1 fabric-ca-client@1.1.0 fabric-client@1.1.0
anant706 (Sat, 17 Nov 2018 00:20:56 GMT):
Clipboard - November 16, 2018 6:20 PM
anant706 (Sat, 17 Nov 2018 00:20:56 GMT):
Clipboard - November 16, 2018 6:20 PM
klenik (Sat, 17 Nov 2018 00:39:28 GMT):
@anant706 Based on the first screenshot, you're using node 10.X. Try node 8.X and lets see what happens
klenik (Sat, 17 Nov 2018 00:42:02 GMT):
also, can you share the entire log starting from executing `npm install grpc@1.10.1 fabric-ca-client@1.1.0 fabric-client@1.1.0` ?
anant706 (Sat, 17 Nov 2018 00:44:46 GMT):
i am working on Fabric 1.2, will caliper work on this version?
klenik (Sat, 17 Nov 2018 11:04:53 GMT):
@anant706 Yes, you just have to install the 1.2.0 SDK modules. However, some 1.2 features are not supported, like private collections
anant706 (Sat, 17 Nov 2018 16:44:50 GMT):
yes yes.. I am done ..I am very happy @klenik . By your support I finally did it.
anant706 (Sat, 17 Nov 2018 16:45:20 GMT):
A very big THANK YOU @klenik :)
SiamakKarimi (Sat, 17 Nov 2018 19:17:43 GMT):
Has joined the channel.
SiamakKarimi (Sat, 17 Nov 2018 19:24:57 GMT):
How can I simulate the performance of my following IoT-based Application with Caliper?
In my senario, there are N number Nodes(permissioned network without need to proof of work) that store sensor data in Distributed Hash Tables (DHTs) while the pointer to the DHT storage address is stored in the blockchain. How I can simulate and show the performance of system and other parameters such as required time to add new block, proccessing time, update time of peer's nodes with received transaction?
klenik (Sat, 17 Nov 2018 19:58:40 GMT):
@SiamakKarimi Caliper currently supports only Hyperledger Fabric, Sawtooth and Iroha. The gathered metrics follow the ones defined by the Performance and Scalability Working Group. Additional information collection has to be implemented by you
SiamakKarimi (Sat, 17 Nov 2018 22:17:25 GMT):
I appreciate your response, I would like to store my transaction in hyperledger as a permissioned blockchian and I don't need to use smart contract as all nodes knows each other and there is no need to consensus. however, How can I get performance parameter from Caliper to evaluate my scenario.
klenik (Sun, 18 Nov 2018 08:32:47 GMT):
@SiamakKarimi
1) You can't interact with the ledger without a smart contract. The smart contract will process your transactions, and the performance of your solution is also related to transaction processing.
2) If you don't need consensus, then you don't need blockchain. Just because your nodes know each other, it doesn't mean that they trust each other.
3) How many parties are in your scenario? If every sensor belongs to a single organization, then again, you don't need blockchain. DLTs supposed to facilitate the collaboration between multiple organizations with semi-trust between them.
Your scenario is still not clear to me, but see the Caliper docs about how to connect to a network and write your own performance tests: https://hyperledger.github.io/caliper/
RobertDiebels (Tue, 20 Nov 2018 13:02:29 GMT):
Hey guys, I've reported an issue + root-cause trace + possible solution for the `getUpdates()` error a lot of people are seeing. Unfortunately I don't have the time to create a PR but hopefully the trace should be sufficient for a proper solution. See this issue https://github.com/hyperledger/caliper/issues/219
panyu2 (Wed, 21 Nov 2018 01:14:08 GMT):
Hi,to whom concerns the regular meeting, the meeting will take place at UTC 6am on 11.21. The link of the meeting can be found on the Caliper's wiki https://wiki.hyperledger.org/projects/caliper
funkol2007 (Wed, 21 Nov 2018 03:19:11 GMT):
Has joined the channel.
funkol2007 (Wed, 21 Nov 2018 03:19:15 GMT):
Hello, I want to deploy a network with multi machines and use kafka model. What should I motify the config file fabric.json? I can not find the kafka configuration items.
rkrish82 (Wed, 21 Nov 2018 09:27:00 GMT):
@panyu2 @klenik Sometimes caliper calculates the throughput tps wrong..
panyu2 (Wed, 21 Nov 2018 09:32:59 GMT):
can you give more details?
panyu2 (Wed, 21 Nov 2018 09:32:59 GMT):
@rkrish82 can you give more details?
panyu2 (Wed, 21 Nov 2018 09:35:00 GMT):
@funkol2007 , take a look at this issue https://github.com/hyperledger/caliper/issues/171
funkol2007 (Wed, 21 Nov 2018 09:36:06 GMT):
Hi, I am testing a fabric network with caliper. And the nework contains 1 orderer 2 orgs (org1 has 2peers and org2 has 1 peer) with kafka ordering mode. I have successly create a channel on the three peers. But when I start the caliper it report the err msg: error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: access denied: channel [] creator org [Org1MSP]. Then I check the peer log, it says that: 2018-11-21 17:00:52.775 CST [protoutils] ValidateProposalMessage -> WARN 04d channel []: MSP error: the supplied identity is not valid: x509: certificate signed by unknown authority . So I think the client access peer node with wrong msp. But I don't where to configurate this item. Who can help me with this problem. Very Thanks.
funkol2007 (Wed, 21 Nov 2018 09:36:51 GMT):
@panyu2 Thanks and I have deployed the net work but not use docker.
funkol2007 (Wed, 21 Nov 2018 09:41:13 GMT):
Clipboard - November 21, 2018 5:40 PM
funkol2007 (Wed, 21 Nov 2018 09:41:30 GMT):
Clipboard - November 21, 2018 5:41 PM
rkrish82 (Wed, 21 Nov 2018 09:52:54 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=dv6BJY5YDteZRzZ3e) @panyu2 Sometime it reports throughput tps value greater than the input tps value.
SiamakKarimi (Wed, 21 Nov 2018 12:12:41 GMT):
I was wonder if you could help me whether I can use Caliper to simulation or evaluate my academic research in the integration of blockchain and internet of things(such as blockchain in smart city)?
houqinghui (Thu, 22 Nov 2018 00:47:28 GMT):
@SiamakKarimi can you explain it detailedly?
funkol2007 (Thu, 22 Nov 2018 02:26:29 GMT):
Who can help me to solute the question I asked yesterday? And I also create an issue on caliper but no one answer...
houqinghui (Thu, 22 Nov 2018 03:01:51 GMT):
@funkol2007 can you list the error stack in cliper issue?
houqinghui (Thu, 22 Nov 2018 03:01:51 GMT):
@funkol2007 can you list the error stack detailedly in cliper issue?
houqinghui (Thu, 22 Nov 2018 03:14:38 GMT):
Clipboard - November 22, 2018 11:14 AM
houqinghui (Thu, 22 Nov 2018 03:14:38 GMT):
Clipboard - November 22, 2018 11:14 AM
houqinghui (Thu, 22 Nov 2018 03:14:52 GMT):
is the directory crypto-config-test made by you ?, why is "command" is blank? @funkol2007
funkol2007 (Thu, 22 Nov 2018 04:41:28 GMT):
crypto-config-test is made by me. and you mean "command" in config-test.json? because I have deployed network manually
and not use docker so I didn't set "command" item in config-test.json file. @houqinghui
panyu2 (Thu, 22 Nov 2018 07:43:43 GMT):
https://github.com/hyperledger/caliper/issues/225#issuecomment-440940170 @funkol2007 Take a look at the pr 162
panyu2 (Thu, 22 Nov 2018 07:54:53 GMT):
@rkrish82 Could you please list the test result? Or how can we reproduce the problem?
SiamakKarimi (Thu, 22 Nov 2018 11:12:25 GMT):
Let me ask a simple question and write with detail. Can I use hyperledger fabric, for example, to store IoT data and transactions of applications such as smart home, city?
SiamakKarimi (Thu, 22 Nov 2018 11:12:25 GMT):
Let me ask a simple question and then write with detail. Can I use hyperledger fabric, for example, to store IoT data and transactions of applications such as smart home, city?
SiamakKarimi (Thu, 22 Nov 2018 11:12:25 GMT):
Let me ask a simple question and then write with detail. Can I use hyperledger fabric, for example, to store the IoT data and transactions of applications such as smart home, city?
houqinghui (Fri, 23 Nov 2018 01:27:36 GMT):
@SiamakKarimi you can do it , but each transactions data size is limited.
oborovyk (Fri, 23 Nov 2018 13:54:09 GMT):
Has left the channel.
anant706 (Sat, 24 Nov 2018 05:08:26 GMT):
Caliper report analysis
anant706 (Sat, 24 Nov 2018 05:08:26 GMT):
Caliper report analysis
anant706 (Sat, 24 Nov 2018 05:08:26 GMT):
Caliper report analysis
anant706 (Sat, 24 Nov 2018 05:08:26 GMT):
Caliper report analysis
anant706 (Sat, 24 Nov 2018 05:08:26 GMT):
Caliper report analysis
anant706 (Sat, 24 Nov 2018 05:08:26 GMT):
Caliper report analysis
anant706 (Sat, 24 Nov 2018 05:08:42 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=sy3ycPuv27j8JiQtN) My Question is:
Q1. What do we mean by 'label 1, 2' and how 4 Peers are contributing to it?
Q2. What do we mean by label 3, when we compare it with 'send rate' ?
Q3. What is difference between label 3 and lable 5 and why there is much gap in memory utilization of both?
anant706 (Sat, 24 Nov 2018 05:08:59 GMT):
My Question is:
Q1. What do we mean by 'label 1, 2' and how 4 Peers are contributing to it?
Q2. What do we mean by label 3, when we compare it with 'send rate' ?
Q3. What is difference between label 3 and lable 5 and why there is much gap in memory utilization of both?
klenik (Sat, 24 Nov 2018 10:08:41 GMT):
@anant706
Q1-2) In the summary you see the client side observations. Your 5 clients (I think that's the number for the config you're using) submitted 1000 transactions in total. They sent these transaction at a rate of 49 transactions per second (TPS). The DLT platform (here Fabric) processed (endorsed, ordered and committed) these transactions at a rate of 47 TPS. So you could say that Fabric handled your transaction load (the 2 TPS difference aside). Peers don't contribute to the send rate, that's a client side load generated by the processes Caliper spawns. The throughput is affected by the peers (numbers, resources) since they commit the transactions, and the throughput is the number of transactions committed per second.
Q3) First, the difference between the `peer...` and `dev-peer...` containers. When you instantiate a chaincode, every peer that instantiated the chaincode (thus becoming endorsing peer for that chaincode) creates and start a separate Docker container for the running chaincode (separation is good most of the time: robustness, security, etc.). So your `peer...` containers are the Fabric binaries, and they manage multiple channels, chaincodes, etc., so they consume some memory. Your chaincode container/binary on the other hand is (hopefully) not that complicated so it consumes less.
Q4) I assume that you're also interested the resource utilization differences between two `peer...` containers. For every round (and for the entire round), Caliper selects a random peer from each organization to send the endorsements to. So it's possible that a peer is not (or just a few times) selected for the entire test. That's why you see this difference between peer containers. This limitation will be lifted soon.
anant706 (Sun, 25 Nov 2018 03:02:50 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=yX2vSX3QJnppD9knZ) @klenik Thank for your explaination.
So, when you say, "They sent these transaction at a rate of 49 transactions per second (TPS)" is it the average rate of all 4 Peers or individual rate?
anant706 (Sun, 25 Nov 2018 03:02:50 GMT):
@klenik Thank for your explaination.
Next Question, when you say, "They sent these transaction at a rate of 49 transactions per second (TPS)" *is it the average rate of all 4 Peers or individual rate*?
anant706 (Sun, 25 Nov 2018 03:02:50 GMT):
@klenik Thank for your explaination.
Next Question, when you say, "They sent these transaction at a rate of 49 transactions per second (TPS)" *is it the average rate of all 5 clients or individual rate*?
anant706 (Sun, 25 Nov 2018 03:02:50 GMT):
@klenik Thank for your explaination.
Next Question, when you say, "They sent these transaction at a rate of 49 transactions per second (TPS)" *is it the average rate of all 5 clients or individual rate*?
And second, if I decrease the TPS by decreasing the number of clients, then will my Throughput increase?
anant706 (Sun, 25 Nov 2018 03:02:50 GMT):
@klenik Thank for your explaination.
Next Question, when you say, "They sent these transaction at a rate of 49 transactions per second (TPS)" *is it the average rate of all 5 clients or individual rate*?
And second, *if I decrease the TPS by decreasing the number of clients, then will my Throughput increase?*
klenik (Sun, 25 Nov 2018 10:05:23 GMT):
@anant706 It is the average rate of all 5 clients. The sending rate is set in the rate controller section of the configuration and it's automatically distributed among the clients. For example, if you set a fix rate of 100 TPS, and you have 10 clients configured (in the clients section of the config), then every client will send transactions at 10 TPS. So just decreasing the number of clients won't decrease the sending rate.
For the second question. It depends. The throughput can't be higher than the sending rate, since the best case is that Fabric can process transactions as fast as you (your clients) send them (in this case sending TPS = throughput). But if you send at a really high TPS then it might overload the system, which may decrease the throughput if the system is not prepared for this (this phenomenon is called thrashing). But it's not a fact, just a possibility.
luigima (Sun, 25 Nov 2018 13:44:22 GMT):
Has joined the channel.
luigima (Sun, 25 Nov 2018 13:45:52 GMT):
I just benchmarked the impact of the number of required endorsers on the performance. There is no difference, how can that be? I tested policies with 1-4 endorsements
klenik (Sun, 25 Nov 2018 14:26:55 GMT):
The transaction proposals are simulated independently on the target organizations' peers. If they "process in sync" then it's possible that you (as a client) don't see the difference. Although I'm sure you could come up with scenarios where the extra load of an extra endorsement (for every transaction) has an effect on the system.
klenik (Sun, 25 Nov 2018 14:26:55 GMT):
@luigima The transaction proposals are simulated independently on the target organizations' peers. If they "process in sync" then it's possible that you (as a client) don't see the difference. Although I'm sure you could come up with scenarios where the extra load of an extra endorsement (for every transaction) has an effect on the system.
luigima (Sun, 25 Nov 2018 18:33:52 GMT):
Okay I get that. But shouldnt the size of the transaction increase linearly as more endorsements are added? Shouldn't this affect performance?
anant706 (Sun, 25 Nov 2018 20:36:28 GMT):
What is the upper limit or you can say MAX number of transaction per second in Fabric?
MaherBouidani (Mon, 26 Nov 2018 11:29:01 GMT):
Hi guys
MaherBouidani (Mon, 26 Nov 2018 11:29:42 GMT):
question please, when in caliper we defined 2org with 1 peer each. What is each org assigned for?
MaherBouidani (Mon, 26 Nov 2018 11:30:34 GMT):
Org as fabric documentation is to include set of members(through MSP) and nodes (peer, orderer)
MaherBouidani (Mon, 26 Nov 2018 11:30:50 GMT):
so when I test my own bna with 2org and 1 peer each
MaherBouidani (Mon, 26 Nov 2018 11:31:05 GMT):
does it mean that my bna was replicated in both org?
MaherBouidani (Mon, 26 Nov 2018 11:31:28 GMT):
or arbitrary assigned some member of my bna into the first one
MaherBouidani (Mon, 26 Nov 2018 11:31:34 GMT):
the others into the second one
MaherBouidani (Mon, 26 Nov 2018 11:31:35 GMT):
...
MaherBouidani (Mon, 26 Nov 2018 11:31:47 GMT):
It is kinda not clear for me that
MaherBouidani (Mon, 26 Nov 2018 11:33:44 GMT):
Screen Shot 2018-11-26 at 3.33.28 AM.png
klenik (Mon, 26 Nov 2018 11:34:28 GMT):
@luigima The time-consuming part of a transaction is the endorsement, ordering and committing. Not sure that an extra or two endorsement signature and read/write set adds a significant delay. You could have a scenario where the read/write set is huge, but I think it will affect the endorsement and commit times more than the network latency. But this is just a guess, you need to verify it specifically to your use case
klenik (Mon, 26 Nov 2018 11:36:35 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=TvRWm3rrMaMKKqhrq) @anant706 It depends entirely on your use case and the resources you commit (i.e., scaling the network). The way it usually works is that your contractor say a minimum throughput your design needs to achieve, and the rest is engineering magic :)
klenik (Mon, 26 Nov 2018 11:38:37 GMT):
@MaherBouidani Composer is kind of a "proxy" deployed to each peer of a Fabric network, and it's deployed the same way to every peer. The relationship to organizations is reflected by the peers cert and the network cards you use on the client side. But I'm sure you'll get a more precise answer on the #composer channel
MaherBouidani (Mon, 26 Nov 2018 11:40:29 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=ET2F5xQiigwvfYHSa) @klenik Thank you, I am gonna ask them there....cuz the point is, you can theoretically deploy each participant of bna in its own org !
MaherBouidani (Mon, 26 Nov 2018 11:40:37 GMT):
since It makes sense
MaherBouidani (Mon, 26 Nov 2018 11:40:55 GMT):
Org for Trader, another Org for cutomers
MaherBouidani (Mon, 26 Nov 2018 11:41:02 GMT):
....so on so forth
MaherBouidani (Mon, 26 Nov 2018 11:42:09 GMT):
the question is each card for each participant, is it for one org or multiple org...in case of composer fabric
MaherBouidani (Mon, 26 Nov 2018 11:42:23 GMT):
I have one org with one peer in implementation
klenik (Mon, 26 Nov 2018 11:42:33 GMT):
@MaherBouidani The BNA only contains the types of participants, which must be known to every organization. Managing the actual participant instances is the responsibility of the respective roles (the org of TraderXY). And it is usually tied to the authentication of the orgs (TraderXY can't create a CustomerZ instance)
gregdhill (Mon, 26 Nov 2018 12:41:06 GMT):
Has joined the channel.
MaherBouidani (Mon, 26 Nov 2018 13:04:57 GMT):
does it make sense?
MaherBouidani (Mon, 26 Nov 2018 13:05:45 GMT):
Screen Shot 2018-11-26 at 5.04.33 AM.png
MaherBouidani (Mon, 26 Nov 2018 13:05:45 GMT):
Screen Shot 2018-11-26 at 5.04.33 AM.png
MaherBouidani (Mon, 26 Nov 2018 13:06:11 GMT):
why first the send rate is 19? I put 18 in the config file
MaherBouidani (Mon, 26 Nov 2018 13:06:22 GMT):
and when I used two rounds with the second one is PID
MaherBouidani (Mon, 26 Nov 2018 13:06:34 GMT):
It gives me no fails transactions
MaherBouidani (Mon, 26 Nov 2018 13:06:49 GMT):
is there any explanation guys?
MaherBouidani (Mon, 26 Nov 2018 13:09:00 GMT):
Screen Shot 2018-11-26 at 5.08.29 AM.png
MaherBouidani (Mon, 26 Nov 2018 13:09:00 GMT):
Screen Shot 2018-11-26 at 5.08.29 AM.png
klenik (Mon, 26 Nov 2018 15:19:44 GMT):
@MaherBouidani Can you share your exact config file (as a github gist)? Are you running one of the example benchmarks or your own? The 40 TPS throughput for the 19 TPS send rate definitely looks troubling...
MaherBouidani (Mon, 26 Nov 2018 16:02:39 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=GqJbfb4KCjfEd9d6F) @klenik the problem is solved....
houqinghui (Tue, 27 Nov 2018 00:58:58 GMT):
@MaherBouidani can you share the ways to sovle the problem ?
jorgego (Tue, 27 Nov 2018 02:01:24 GMT):
Has joined the channel.
panyu2 (Tue, 27 Nov 2018 04:33:16 GMT):
Hi,to whom concerns the regular meeting, the meeting will take place at UTC 3pm on 11.27. The link of the meeting can be found on the Caliper's wiki https://wiki.hyperledger.org/projects/caliper
funkol2007 (Tue, 27 Nov 2018 08:33:54 GMT):
Does Caliper support multi orderers?
MaherBouidani (Tue, 27 Nov 2018 08:49:46 GMT):
For whom interested, I found a research paper about Fabric performance. It is one of the best research papers I read so far !
MaherBouidani (Tue, 27 Nov 2018 08:49:46 GMT):
to who interested, I found a research paper about Fabric performance. It is one of the best research papers I read so far !
MaherBouidani (Tue, 27 Nov 2018 08:49:59 GMT):
Hyperledger Fabric Perfromance Paper.pdf
klenik (Tue, 27 Nov 2018 08:59:00 GMT):
@funkol2007 The support is coming soon
MaherBouidani (Tue, 27 Nov 2018 09:17:33 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=Za3R5c4MP9tnp8khJ) @houqinghui basically, It depends on what are you looking for. So what I did, I made a conditions for my experiment. the first experiment targets the network load, the second one targets the impact of send Tx
MaherBouidani (Tue, 27 Nov 2018 09:17:33 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=Za3R5c4MP9tnp8khJ) @houqinghui basically, It depends on what are you looking for. So what I did, I made a conditions for my experiment. the first experiment targets the network load, the second one targets the impact of the send Tx....you should fixed parameters and changes others, depends on your target
MaherBouidani (Tue, 27 Nov 2018 09:17:33 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=Za3R5c4MP9tnp8khJ) @houqinghui basically, It depends on what are you looking for. So what I did, I made a conditions for my experiment. the first experiment targets the network load, the second one targets the impact of the send Tx....you should fixed parameters and changes others, depends on your target. For better understanding, I advise you to read the research paper I just posted here
funkol2007 (Tue, 27 Nov 2018 09:18:31 GMT):
@klenik Does it has the schedule?
klenik (Tue, 27 Nov 2018 10:19:24 GMT):
@funkol2007 the PR that adds the new features will be raised this week, I still have to write the documentation for it :)
JoanArcas (Tue, 27 Nov 2018 11:08:22 GMT):
Has joined the channel.
luigima (Tue, 27 Nov 2018 13:01:01 GMT):
Related to Fabric but is observed by caliper. getClientIdentity() within the chaincode performes horrible. Anyone happen to know why?
klenik (Tue, 27 Nov 2018 13:07:31 GMT):
@luigima I think you should direct this question to the #fabric channel, with the details of exactly how you use it. Also, take a look at [this](https://github.com/hyperledger/fabric/tree/release-1.3/core/chaincode/lib/cid) library.
luigima (Tue, 27 Nov 2018 13:27:28 GMT):
I do, thanks @klenik!
me020523 (Wed, 28 Nov 2018 03:17:01 GMT):
Has joined the channel.
garunkumar450 (Thu, 29 Nov 2018 06:25:05 GMT):
Has joined the channel.
garunkumar450 (Thu, 29 Nov 2018 06:40:21 GMT):
is there any interface for caliper
garunkumar450 (Thu, 29 Nov 2018 08:29:37 GMT):
how to setup hyperledger caliper for hyperledger composer
PhilAhn (Thu, 29 Nov 2018 08:54:12 GMT):
Has joined the channel.
klenik (Thu, 29 Nov 2018 11:15:01 GMT):
@garunkumar450
- The current entry point for Caliper is the async `run()` function in `src/comm/bench-flow.js`. See the `main.js` files of the example benchmarks for how to use it.
- For the Composer integration, see the [Getting Started page](https://hyperledger.github.io/caliper/docs/1_Getting_Started.html) and the [Composer Configuration page](https://hyperledger.github.io/caliper/docs/Composer_Configuration.html) of the docs website
garunkumar450 (Thu, 29 Nov 2018 12:19:45 GMT):
@klenik is there any web interface for caliper like explorer
garunkumar450 (Thu, 29 Nov 2018 12:35:52 GMT):
caliper1.PNG
garunkumar450 (Thu, 29 Nov 2018 12:35:52 GMT):
caliper1.PNG
garunkumar450 (Thu, 29 Nov 2018 12:35:52 GMT):
caliper1.PNG
garunkumar450 (Thu, 29 Nov 2018 12:44:02 GMT):
caliper2.PNG
garunkumar450 (Thu, 29 Nov 2018 12:44:02 GMT):
caliper2.PNG
garunkumar450 (Thu, 29 Nov 2018 12:56:07 GMT):
caliper3.PNG
garunkumar450 (Thu, 29 Nov 2018 12:56:07 GMT):
caliper3.PNG
garunkumar450 (Thu, 29 Nov 2018 12:56:07 GMT):
caliper3.PNG
garunkumar450 (Thu, 29 Nov 2018 12:56:07 GMT):
caliper3.PNG
klenik (Thu, 29 Nov 2018 13:51:05 GMT):
@garunkumar450
- Caliper will be published as an npm package, so it can be included by any (remotely available) backend, but currently we're not planning to provide a "self-hosted" mode, since its working would be mainly dependent on the individual use cases.
- It looks like you can't download the necessary docker images. But it's resolved based on the other errors.
- The command failed error is probably because there aren't any chaincode containers and images to stop/remove. I think docker signals this as a non-zero return value, so it is considered a fail.
klenik (Thu, 29 Nov 2018 13:51:37 GMT):
Can you successfully run a benchmark beside these start/end script errors?
bacthosan (Thu, 29 Nov 2018 14:11:32 GMT):
Has joined the channel.
bacthosan (Thu, 29 Nov 2018 14:14:41 GMT):
Iroha_Bug.png
bacthosan (Thu, 29 Nov 2018 14:14:41 GMT):
Iroha_Bug.png
TopJohn (Fri, 30 Nov 2018 04:07:01 GMT):
Has joined the channel.
garunkumar450 (Fri, 30 Nov 2018 05:35:19 GMT):
caliper4.PNG
garunkumar450 (Fri, 30 Nov 2018 05:35:19 GMT):
caliper4.PNG
garunkumar450 (Fri, 30 Nov 2018 05:35:19 GMT):
caliper4.PNG
garunkumar450 (Fri, 30 Nov 2018 05:35:19 GMT):
caliper4.PNG
yinzhiwu (Fri, 30 Nov 2018 06:06:03 GMT):
Has joined the channel.
garunkumar450 (Fri, 30 Nov 2018 07:16:41 GMT):
caliper5.PNG
garunkumar450 (Fri, 30 Nov 2018 07:16:41 GMT):
caliper5.PNG
garunkumar450 (Fri, 30 Nov 2018 07:16:41 GMT):
caliper5.PNG
klenik (Fri, 30 Nov 2018 10:54:56 GMT):
@nkl199 Can you help with the Composer error?
klenik (Fri, 30 Nov 2018 11:03:28 GMT):
@garunkumar450 For the `ajv` problem, see this issue: https://github.com/hyperledger/caliper/issues/242
(although I see other connection issues as well, not sure if they're related or not)
garunkumar450 (Fri, 30 Nov 2018 14:33:49 GMT):
namespace org.tanla.cpm
asset Preferences identified by MN {
o String MN regex=/^[0-9]{10}$/
o Integer DS
o Integer ST
o String PR regex=/^[0-9]{1,20}$/
o String RN regex=/^[0-Z]{1,25}$/
o Integer BM
o DateTime MT
}
@returns(String)
transaction addupdatePreference {
o Preferences UPS
}
garunkumar450 (Fri, 30 Nov 2018 14:41:04 GMT):
caliper6.PNG
garunkumar450 (Fri, 30 Nov 2018 14:42:11 GMT):
@klenik for the above caliper6.png while i am runnig node benchmark/composer/main.js -c composer_config/json i getting the eroor
garunkumar450 (Fri, 30 Nov 2018 14:42:11 GMT):
@klenik for the above caliper6.png while i am runnig node benchmark/composer/main.js -c composer_config/json i getting the eroor
model file
-----------
asset Preferences identified by MN {
o String MN regex=/^[0-9]{10}$/
o Integer DS
o Integer ST
o String PR regex=/^[0-9]{1,20}$/
o String RN regex=/^[0-Z]{1,25}$/
o Integer BM
o DateTime MT
}
@returns(String)
transaction addupdatePreference {
o Preferences UPS
}
logic.js
--------
/**
* adding the preference
* @param {org.tanla.cpm.addupdatePreference} newPreference - the selling transaction
* @returns {String}
* @transaction
*/
async function addupdatePreference(newPreference) {
try{
// Get the asset registry for the asset.
const assetRegistry = await getAssetRegistry('org.tanla.cpm.Preferences');
const exists = await assetRegistry.exists(newPreference.UPS.MN);
if(exists){
var factory = getFactory();
var preferenceobject =factory.newResource('org.tanla.cpm', 'Preferences', newPreference.UPS.MN);
var preferenceObject = await assetRegistry.get(newPreference.UPS.MN);
preferenceObject.DS=newPreference.UPS.DS;
preferenceObject.ST=newPreference.UPS.ST;
preferenceObject.PR=newPreference.UPS.PR;
preferenceObject.RN=newPreference.UPS.RN;
preferenceObject.BM=newPreference.UPS.BM;
preferenceObject.MT=newPreference.UPS.MT;
await assetRegistry.update(preferenceObject);
return newPreference.transactionId ;
}
else{
var NS = 'org.tanla.cpm';
var factory = getFactory();
var preferenceObject = factory.newResource(NS, 'Preferences', newPreference.UPS.MN);
preferenceObject.MN=newPreference.UPS.MN;
preferenceObject.DS=newPreference.UPS.DS;
preferenceObject.ST=newPreference.UPS.ST;
preferenceObject.PR=newPreference.UPS.PR;
preferenceObject.RN=newPreference.UPS.RN;
preferenceObject.BM=newPreference.UPS.BM;
preferenceObject.MT=newPreference.UPS.MT;
await assetRegistry.add(preferenceObject) ;
return newPreference.transactionId ;
}
}
catch(err){
return err;
}
}
composer_config.json: {
"test": {
"name": "Composer Performance test",
"description" : "This is an example Composer perf test",
"clients": {
"type": "local",
"number": 1
},
"rounds": [{
"label" : "basic-sample-network",
"txNumber" : [25],
"trim" : 0,
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 5}}],
"arguments": {"testAssets": 25},
"callback" : "benchmark/composer/composer-samples/basic-sample-network.js"
},
{
"label" : "vehicle-lifecycle-network",
"txNumber" : [100],
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" :8}}],
"arguments": {"testAssets": 10, "testMatches": 5},
"callback" : "benchmark/composer/composer-micro/query-asset.js"
},
{
"label" : "cpm_network",
"txNumber" : [1000],
"trim" : 0,
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 5}}],
"arguments": {"testAssets": 25},
"callback" : "/home/tanla/CPMLOADTEST/caliper/src/contract/composer/cpm_network/lib/logic.js"
}]
},
"monitor": {
"type": ["docker", "process"],
"docker":{
"name": ["all"]
},
"process": [
{
"command" : "node",
"arguments" : "bench-client.js",
"multiOutput" : "avg"
}
],
"interval": 1
}
}
~
~
garunkumar450 (Fri, 30 Nov 2018 14:42:11 GMT):
@klenik for the above caliper6.png while i am runnig node benchmark/composer/main.js -c composer_config/json i getting the error this is model and logic and config file
model file
-----------
asset Preferences identified by MN {
o String MN regex=/^[0-9]{10}$/
o Integer DS
o Integer ST
o String PR regex=/^[0-9]{1,20}$/
o String RN regex=/^[0-Z]{1,25}$/
o Integer BM
o DateTime MT
}
@returns(String)
transaction addupdatePreference {
o Preferences UPS
}
logic.js
--------
/**
* adding the preference
* @param {org.tanla.cpm.addupdatePreference} newPreference - the selling transaction
* @returns {String}
* @transaction
*/
async function addupdatePreference(newPreference) {
try{
// Get the asset registry for the asset.
const assetRegistry = await getAssetRegistry('org.tanla.cpm.Preferences');
const exists = await assetRegistry.exists(newPreference.UPS.MN);
if(exists){
var factory = getFactory();
var preferenceobject =factory.newResource('org.tanla.cpm', 'Preferences', newPreference.UPS.MN);
var preferenceObject = await assetRegistry.get(newPreference.UPS.MN);
preferenceObject.DS=newPreference.UPS.DS;
preferenceObject.ST=newPreference.UPS.ST;
preferenceObject.PR=newPreference.UPS.PR;
preferenceObject.RN=newPreference.UPS.RN;
preferenceObject.BM=newPreference.UPS.BM;
preferenceObject.MT=newPreference.UPS.MT;
await assetRegistry.update(preferenceObject);
return newPreference.transactionId ;
}
else{
var NS = 'org.tanla.cpm';
var factory = getFactory();
var preferenceObject = factory.newResource(NS, 'Preferences', newPreference.UPS.MN);
preferenceObject.MN=newPreference.UPS.MN;
preferenceObject.DS=newPreference.UPS.DS;
preferenceObject.ST=newPreference.UPS.ST;
preferenceObject.PR=newPreference.UPS.PR;
preferenceObject.RN=newPreference.UPS.RN;
preferenceObject.BM=newPreference.UPS.BM;
preferenceObject.MT=newPreference.UPS.MT;
await assetRegistry.add(preferenceObject) ;
return newPreference.transactionId ;
}
}
catch(err){
return err;
}
}
composer_config.json: {
"test": {
"name": "Composer Performance test",
"description" : "This is an example Composer perf test",
"clients": {
"type": "local",
"number": 1
},
"rounds": [{
"label" : "basic-sample-network",
"txNumber" : [25],
"trim" : 0,
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 5}}],
"arguments": {"testAssets": 25},
"callback" : "benchmark/composer/composer-samples/basic-sample-network.js"
},
{
"label" : "vehicle-lifecycle-network",
"txNumber" : [100],
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" :8}}],
"arguments": {"testAssets": 10, "testMatches": 5},
"callback" : "benchmark/composer/composer-micro/query-asset.js"
},
{
"label" : "cpm_network",
"txNumber" : [1000],
"trim" : 0,
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 5}}],
"arguments": {"testAssets": 25},
"callback" : "/home/tanla/CPMLOADTEST/caliper/src/contract/composer/cpm_network/lib/logic.js"
}]
},
"monitor": {
"type": ["docker", "process"],
"docker":{
"name": ["all"]
},
"process": [
{
"command" : "node",
"arguments" : "bench-client.js",
"multiOutput" : "avg"
}
],
"interval": 1
}
}
~
~
garunkumar450 (Fri, 30 Nov 2018 14:42:11 GMT):
@klenik for the above caliper6.png while i am runnig node benchmark/composer/main.js -c composer_config/json i getting the error this is model and logic and config file
model file
-----------
asset Preferences identified by MN {
o String MN regex=/^[0-9]{10}$/
o Integer DS
o Integer ST
o String PR regex=/^[0-9]{1,20}$/
o String RN regex=/^[0-Z]{1,25}$/
o Integer BM
o DateTime MT
}
@returns(String)
transaction addupdatePreference {
o Preferences UPS
}
logic.js
--------
/**
* adding the preference
* @param {org.tanla.cpm.addupdatePreference} newPreference - the selling transaction
* @returns {String}
* @transaction
*/
async function addupdatePreference(newPreference) {
try{
// Get the asset registry for the asset.
const assetRegistry = await getAssetRegistry('org.tanla.cpm.Preferences');
const exists = await assetRegistry.exists(newPreference.UPS.MN);
if(exists){
var factory = getFactory();
var preferenceobject =factory.newResource('org.tanla.cpm', 'Preferences', newPreference.UPS.MN);
var preferenceObject = await assetRegistry.get(newPreference.UPS.MN);
preferenceObject.DS=newPreference.UPS.DS;
preferenceObject.ST=newPreference.UPS.ST;
preferenceObject.PR=newPreference.UPS.PR;
preferenceObject.RN=newPreference.UPS.RN;
preferenceObject.BM=newPreference.UPS.BM;
preferenceObject.MT=newPreference.UPS.MT;
await assetRegistry.update(preferenceObject);
return newPreference.transactionId ;
}
else{
var NS = 'org.tanla.cpm';
var factory = getFactory();
var preferenceObject = factory.newResource(NS, 'Preferences', newPreference.UPS.MN);
preferenceObject.MN=newPreference.UPS.MN;
preferenceObject.DS=newPreference.UPS.DS;
preferenceObject.ST=newPreference.UPS.ST;
preferenceObject.PR=newPreference.UPS.PR;
preferenceObject.RN=newPreference.UPS.RN;
preferenceObject.BM=newPreference.UPS.BM;
preferenceObject.MT=newPreference.UPS.MT;
await assetRegistry.add(preferenceObject) ;
return newPreference.transactionId ;
}
}
catch(err){
return err;
}
}
composer_config.json: {
"test": {
"name": "Composer Performance test",
"description" : "This is an example Composer perf test",
"clients": {
"type": "local",
"number": 1
},
"rounds": [{
"label" : "basic-sample-network",
"txNumber" : [25],
"trim" : 0,
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 5}}],
"arguments": {"testAssets": 25},
"callback" : "benchmark/composer/composer-samples/basic-sample-network.js"
},
{
"label" : "vehicle-lifecycle-network",
"txNumber" : [100],
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" :8}}],
"arguments": {"testAssets": 10, "testMatches": 5},
"callback" : "benchmark/composer/composer-micro/query-asset.js"
},
{
"label" : "cpm_network",
"txNumber" : [1000],
"trim" : 0,
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 5}}],
"arguments": {"testAssets": 25},
"callback" : "/home/tanla/CPMLOADTEST/caliper/src/contract/composer/cpm_network/lib/logic.js"
}]
},
"monitor": {
"type": ["docker", "process"],
"docker":{
"name": ["all"]
},
"process": [
{
"command" : "node",
"arguments" : "bench-client.js",
"multiOutput" : "avg"
}
],
"interval": 1
}
}
~
~
how to write the call back function for the above model and logic.js for loadtesting of ourbusiness network
garunkumar450 (Fri, 30 Nov 2018 14:42:11 GMT):
@klenik for the above caliper6.png while i am runnig node benchmark/composer/main.js -c composer_config/json i getting the error this is model and logic and config file
model file
-----------
asset Preferences identified by MN {
o String MN regex=/^[0-9]{10}$/
o Integer DS
o Integer ST
o String PR regex=/^[0-9]{1,20}$/
o String RN regex=/^[0-Z]{1,25}$/
o Integer BM
o DateTime MT
}
@returns(String)
transaction addupdatePreference {
o Preferences UPS
}
logic.js
--------
/**
* adding the preference
* @param {org.tanla.cpm.addupdatePreference} newPreference - the selling transaction
* @returns {String}
* @transaction
*/
async function addupdatePreference(newPreference) {
try{
// Get the asset registry for the asset.
const assetRegistry = await getAssetRegistry('org.tanla.cpm.Preferences');
const exists = await assetRegistry.exists(newPreference.UPS.MN);
if(exists){
var factory = getFactory();
var preferenceobject =factory.newResource('org.tanla.cpm', 'Preferences', newPreference.UPS.MN);
var preferenceObject = await assetRegistry.get(newPreference.UPS.MN);
preferenceObject.DS=newPreference.UPS.DS;
preferenceObject.ST=newPreference.UPS.ST;
preferenceObject.PR=newPreference.UPS.PR;
preferenceObject.RN=newPreference.UPS.RN;
preferenceObject.BM=newPreference.UPS.BM;
preferenceObject.MT=newPreference.UPS.MT;
await assetRegistry.update(preferenceObject);
return newPreference.transactionId ;
}
else{
var NS = 'org.tanla.cpm';
var factory = getFactory();
var preferenceObject = factory.newResource(NS, 'Preferences', newPreference.UPS.MN);
preferenceObject.MN=newPreference.UPS.MN;
preferenceObject.DS=newPreference.UPS.DS;
preferenceObject.ST=newPreference.UPS.ST;
preferenceObject.PR=newPreference.UPS.PR;
preferenceObject.RN=newPreference.UPS.RN;
preferenceObject.BM=newPreference.UPS.BM;
preferenceObject.MT=newPreference.UPS.MT;
await assetRegistry.add(preferenceObject) ;
return newPreference.transactionId ;
}
}
catch(err){
return err;
}
}
composer_config.json: {
"test": {
"name": "Composer Performance test",
"description" : "This is an example Composer perf test",
"clients": {
"type": "local",
"number": 1
},
"rounds": [{
"label" : "basic-sample-network",
"txNumber" : [25],
"trim" : 0,
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 5}}],
"arguments": {"testAssets": 25},
"callback" : "benchmark/composer/composer-samples/basic-sample-network.js"
},
{
"label" : "vehicle-lifecycle-network",
"txNumber" : [100],
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" :8}}],
"arguments": {"testAssets": 10, "testMatches": 5},
"callback" : "benchmark/composer/composer-micro/query-asset.js"
},
{
"label" : "cpm_network",
"txNumber" : [1000],
"trim" : 0,
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 5}}],
"arguments": {"testAssets": 25},
"callback" : "/home/tanla/CPMLOADTEST/caliper/src/contract/composer/cpm_network/lib/logic.js"
}]
},
"monitor": {
"type": ["docker", "process"],
"docker":{
"name": ["all"]
},
"process": [
{
"command" : "node",
"arguments" : "bench-client.js",
"multiOutput" : "avg"
}
],
"interval": 1
}
}
~
~
how to write the call back function for the above model and logic.js for loadtesting of ourbusiness network
garunkumar450 (Fri, 30 Nov 2018 14:42:11 GMT):
@klenik for the above caliper6.png while i am runnig node benchmark/composer/main.js -c composer_config/json i getting the error this is model and logic and config file
model file
-----------
asset Preferences identified by MN {
o String MN regex=/^[0-9]{10}$/
o Integer DS
o Integer ST
o String PR regex=/^[0-9]{1,20}$/
o String RN regex=/^[0-Z]{1,25}$/
o Integer BM
o DateTime MT
}
@returns(String)
transaction addupdatePreference {
o Preferences UPS
}
logic.js
--------
/**
* adding the preference
* @param {org.tanla.cpm.addupdatePreference} newPreference - the selling transaction
* @returns {String}
* @transaction
*/
async function addupdatePreference(newPreference) {
try{
// Get the asset registry for the asset.
const assetRegistry = await getAssetRegistry('org.tanla.cpm.Preferences');
const exists = await assetRegistry.exists(newPreference.UPS.MN);
if(exists){
var factory = getFactory();
var preferenceobject =factory.newResource('org.tanla.cpm', 'Preferences', newPreference.UPS.MN);
var preferenceObject = await assetRegistry.get(newPreference.UPS.MN);
preferenceObject.DS=newPreference.UPS.DS;
preferenceObject.ST=newPreference.UPS.ST;
preferenceObject.PR=newPreference.UPS.PR;
preferenceObject.RN=newPreference.UPS.RN;
preferenceObject.BM=newPreference.UPS.BM;
preferenceObject.MT=newPreference.UPS.MT;
await assetRegistry.update(preferenceObject);
return newPreference.transactionId ;
}
else{
var NS = 'org.tanla.cpm';
var factory = getFactory();
var preferenceObject = factory.newResource(NS, 'Preferences', newPreference.UPS.MN);
preferenceObject.MN=newPreference.UPS.MN;
preferenceObject.DS=newPreference.UPS.DS;
preferenceObject.ST=newPreference.UPS.ST;
preferenceObject.PR=newPreference.UPS.PR;
preferenceObject.RN=newPreference.UPS.RN;
preferenceObject.BM=newPreference.UPS.BM;
preferenceObject.MT=newPreference.UPS.MT;
await assetRegistry.add(preferenceObject) ;
return newPreference.transactionId ;
}
}
catch(err){
return err;
}
}
composer_config.json: {
"test": {
"name": "Composer Performance test",
"description" : "This is an example Composer perf test",
"clients": {
"type": "local",
"number": 1
},
"rounds": [{
"label" : "basic-sample-network",
"txNumber" : [25],
"trim" : 0,
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 5}}],
"arguments": {"testAssets": 25},
"callback" : "benchmark/composer/composer-samples/basic-sample-network.js"
},
{
"label" : "vehicle-lifecycle-network",
"txNumber" : [100],
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" :8}}],
"arguments": {"testAssets": 10, "testMatches": 5},
"callback" : "benchmark/composer/composer-micro/query-asset.js"
},
{
"label" : "cpm_network",
"txNumber" : [1000],
"trim" : 0,
"rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 5}}],
"arguments": {"testAssets": 25},
"callback" : "/home/tanla/CPMLOADTEST/caliper/src/contract/composer/cpm_network/lib/logic.js"
}]
},
"monitor": {
"type": ["docker", "process"],
"docker":{
"name": ["all"]
},
"process": [
{
"command" : "node",
"arguments" : "bench-client.js",
"multiOutput" : "avg"
}
],
"interval": 1
}
}
~
~
callbackfunction is:
garunkumar450 (Sat, 01 Dec 2018 12:59:19 GMT):
caliper7.PNG
garunkumar450 (Sat, 01 Dec 2018 12:59:19 GMT):
caliper7.PNG
RajuSomala (Mon, 03 Dec 2018 04:10:45 GMT):
Has joined the channel.
HaiTranThanh (Mon, 03 Dec 2018 08:13:47 GMT):
Has anyone successed in building the testing of Iroha network performance with Caliper?
klenik (Mon, 03 Dec 2018 09:35:23 GMT):
@garunkumar450 Please share your files in a more readable format, like GitHub gists :)
Amir (Mon, 03 Dec 2018 11:41:23 GMT):
Has joined the channel.
Amir (Mon, 03 Dec 2018 11:44:14 GMT):
tutorial
Garrett (Mon, 03 Dec 2018 20:19:01 GMT):
Has joined the channel.
Garrett (Mon, 03 Dec 2018 20:43:39 GMT):
Would love to pick someone's brain on using Caliper for a composer blockchain if anyone is around
Garrett (Mon, 03 Dec 2018 20:44:32 GMT):
wasnt sure if the network has to be on the same machine as the caliper tests running or not
Garrett (Mon, 03 Dec 2018 20:48:27 GMT):
also i think this file was removed from the github
Garrett (Mon, 03 Dec 2018 20:48:47 GMT):
The sample configuration file /caliper/benchmark/composer/config-composer.json indicates how a test should be run:
The sample configuration file /caliper/benchmark/composer/config-composer.json indicates how a test should be run:
The sample configuration file /caliper/benchmark/composer/config-composer.json indicates how a test should be run:
The sample configuration file /caliper/benchmark/composer/config-composer.json indicates how a test should be run:
The sample configuration file /caliper/benchmark/composer/config-composer.json indicates how a test should be run:
The sample configuration file /caliper/benchmark/composer/config-composer.json indicates how a test should be run:
/caliper/benchmark/composer/config-composer.json
Garrett (Mon, 03 Dec 2018 20:49:08 GMT):
"/caliper/benchmark/composer/config-composer.json"
lotty02cho (Tue, 04 Dec 2018 02:34:36 GMT):
Does any saw about this issues about TCP write?
```
$ node benchmark/simple/main.js
info: [bench-flow.js]: ####### Caliper Test ######
info: [bench-flow.js]: Executing command: docker-compose -f network/fabric/2org2peer/docker-compose.yaml up -d
Creating network "2org2peer_default" with the default driver
Creating ca.org2.example.com
Creating couchdb.peer0.org2.example.com
Creating orderer.example.com
Creating couchdb.peer1.org1.example.com
Creating couchdb.peer1.org2.example.com
Creating ca.org1.example.com
Creating couchdb.peer0.org1.example.com
Creating peer1.org2.example.com
Creating peer0.org2.example.com
Creating peer0.org1.example.com
Creating peer1.org1.example.com
info: [create-channel.js]: Creating mychannel...
info: [create-channel.js]: Created mychannel successfully
info: [create-channel.js]: Sleeping 5s...
info: [join-channel.js]: Joining channels...
info: [join-channel.js]: Joining mychannel...
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 14 UNAVAILABLE: TCP Write failed
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper_v1.1/node_modules/grpc/src/client.js:583:15
error: [join-channel.js]: Failed to join peers: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [join-channel.js]: Failed to join peers: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [join-channel.js]: Failed to join peers: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [fabric.js]: Fabric initialization failed: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [fabric.js]: Fabric initialization failed: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [fabric.js]: Fabric initialization failed: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [bench-flow.js]: Error: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [bench-flow.js]: Error: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [bench-flow.js]: Error: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
info: [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0
info: [bench-flow.js]: Executing command: docker-compose -f network/fabric/2org2peer/docker-compose.yaml down;docker rm $(docker ps -aq);docker rmi $(docker images dev* -q)
Stopping peer1.org1.example.com ... done
Stopping peer0.org1.example.com ... done
........
```
lotty02cho (Tue, 04 Dec 2018 02:34:36 GMT):
Does anyone saw about this issues about TCP write?
```
$ node benchmark/simple/main.js
info: [bench-flow.js]: ####### Caliper Test ######
info: [bench-flow.js]: Executing command: docker-compose -f network/fabric/2org2peer/docker-compose.yaml up -d
Creating network "2org2peer_default" with the default driver
Creating ca.org2.example.com
Creating couchdb.peer0.org2.example.com
Creating orderer.example.com
Creating couchdb.peer1.org1.example.com
Creating couchdb.peer1.org2.example.com
Creating ca.org1.example.com
Creating couchdb.peer0.org1.example.com
Creating peer1.org2.example.com
Creating peer0.org2.example.com
Creating peer0.org1.example.com
Creating peer1.org1.example.com
info: [create-channel.js]: Creating mychannel...
info: [create-channel.js]: Created mychannel successfully
info: [create-channel.js]: Sleeping 5s...
info: [join-channel.js]: Joining channels...
info: [join-channel.js]: Joining mychannel...
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 14 UNAVAILABLE: TCP Write failed
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper_v1.1/node_modules/grpc/src/client.js:583:15
error: [join-channel.js]: Failed to join peers: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [join-channel.js]: Failed to join peers: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [join-channel.js]: Failed to join peers: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [fabric.js]: Fabric initialization failed: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [fabric.js]: Fabric initialization failed: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [fabric.js]: Fabric initialization failed: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [bench-flow.js]: Error: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [bench-flow.js]: Error: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
error: [bench-flow.js]: Error: TypeError: Cannot read property 'stack' of undefined
at joinChannel (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/src/fabric/join-channel.js:162:84)
info: [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0
info: [bench-flow.js]: Executing command: docker-compose -f network/fabric/2org2peer/docker-compose.yaml down;docker rm $(docker ps -aq);docker rmi $(docker images dev* -q)
Stopping peer1.org1.example.com ... done
Stopping peer0.org1.example.com ... done
........
```
houqinghui (Tue, 04 Dec 2018 05:55:00 GMT):
@lotty02cho the problem is like the issue #112 , you can take a look at the issue.
one solution:
docker-compose -f network/fabric-v11/2-org-2-peer/docker-compose.yaml up -d in another shell
remove "start": "docker-compose -f network/fabric-v11/2-org-2-peer/docker-compose.yaml up -d", from config.json
3.node benchmark/simple/main.js
another solution:
change user to root user.
houqinghui (Tue, 04 Dec 2018 05:55:00 GMT):
@lotty02cho the problem is like the issue ~#112~ , you can take a look at the issue.
one solution:
docker-compose -f network/fabric-v11/2-org-2-peer/docker-compose.yaml up -d in another shell
remove "start": "docker-compose -f network/fabric-v11/2-org-2-peer/docker-compose.yaml up -d", from config.json
3.node benchmark/simple/main.js
another solution:
change user to root user.
houqinghui (Tue, 04 Dec 2018 05:55:00 GMT):
@lotty02cho the problem is like the issue #112 [https://github.com/hyperledger/caliper/issues/112] , you can take a look at the issue.
one solution:
docker-compose -f network/fabric-v11/2-org-2-peer/docker-compose.yaml up -d in another shell
remove "start": "docker-compose -f network/fabric-v11/2-org-2-peer/docker-compose.yaml up -d", from config.json
3.node benchmark/simple/main.js
another solution:
change user to root user.
houqinghui (Tue, 04 Dec 2018 05:55:00 GMT):
@lotty02cho the problem is like the issue #112 [https://github.com/hyperledger/caliper/issues/112] , you can take a look at the issue.
one solution:
docker-compose -f network/fabric-v11/2-org-2-peer/docker-compose.yaml up -d in another shell
remove "start": "docker-compose -f network/fabric-v11/2-org-2-peer/docker-compose.yaml up -d", from config.json
3.node benchmark/simple/main.js
another solution:
change user to root user.
houqinghui (Tue, 04 Dec 2018 06:00:10 GMT):
@Garrett yes, you are right, the file "/caliper/benchmark/composer/config-composer.json" has been removed, and add the file "caliper/benchmark/composer/config-composer.yaml", now we change the config file format from json to yaml,
houqinghui (Tue, 04 Dec 2018 06:01:22 GMT):
@lotty02cho you can try it , if cannot sovle the error, please open an issue in the github.
Cliff.Huang (Tue, 04 Dec 2018 09:36:16 GMT):
Has joined the channel.
lotty02cho (Tue, 04 Dec 2018 09:47:10 GMT):
@houqinghui Thanks, it works for me.
lotty02cho (Tue, 04 Dec 2018 09:48:21 GMT):
I try to my own query benchmark, but there is issue like below. Does anyone see that kind of issues?
```
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error executing chaincode: transaction returned with failure: #{"status":14031,"message":"Received unknown function query invocation"}
at new createStatusError (/opt/gopath/src/github.com/hyperledger/caliper_v1.1/node_modules/grpc/src/client.js:64:15)
at /opt/gopath/src/github.com/hyperledger/caliper_v1.1/node_modules/grpc/src/client.js:583:15
```
RobertDiebels (Tue, 04 Dec 2018 14:38:55 GMT):
@lotty02cho Does the function you're invoking exist?
RobertDiebels (Tue, 04 Dec 2018 14:40:33 GMT):
If you're using the marbles_02 example see: https://github.com/hyperledger/fabric/blob/c45fde94b72a0f2fad7db37dff54d08ed4b280a8/examples/chaincode/go/marbles02/marbles_chaincode.go#L154
RobertDiebels (Tue, 04 Dec 2018 14:40:56 GMT):
You might want to check the logs of your chaincode containers.
SiamakKarimi (Wed, 05 Dec 2018 13:01:04 GMT):
I was wonder if you could introduce me links or references showing a sample implemented on hyperledger fabric and uses Caliper for evaluation or simulation where by increasing the number of node how the simulation result will change.
calvin.heo (Wed, 05 Dec 2018 16:59:02 GMT):
Has joined the channel.
SiamakKarimi (Wed, 05 Dec 2018 18:54:15 GMT):
and the operating system of my laptop is Win10. Would you tell me whether I can create a hyperledger fabric app and use Caliper to evaluate it? To start, would you introduce a simple hyperledger fabric app as a sample evaluated by Caliper (and how)? How can I achieve the execution time of transactions?
klenik (Thu, 06 Dec 2018 11:45:27 GMT):
@SiamakKarimi
1) What you describe is a scalability analysis campaign where you change the network topology (here the number of nodes) in each step. So this is not really the "sample" category that can be put together in an afternoon.
2) Fabric supports the Windows platform, see the Fabric docs for details. Caliper hasn't been tested on Windows. In theory, Node.js and npm is available for windows, so try it and we'll welcome your results :)
SiamakKarimi (Thu, 06 Dec 2018 12:26:07 GMT):
I appreciate your attention. To start, please introduce me a useful sample code or link or resource showing how it evaluated by Caliper.
SiamakKarimi (Thu, 06 Dec 2018 12:26:41 GMT):
So, is it better to use linux for Caliper?
SiamakKarimi (Thu, 06 Dec 2018 12:28:43 GMT):
Then, how can I use Caliper for evaluating this simple sample by increasing the number of nodes in each step.
nkl199 (Thu, 06 Dec 2018 14:09:09 GMT):
By "nodes" I assume that you mean peers within orgs (you mentioned hyperledger fabric applications), I would recommend running the existing fabric benchmarks and then step through the existing topologies (2Org1Peer through to 3Org3Peer iirc), then you could deploy your own chaincode and write a benchmark for that
nkl199 (Thu, 06 Dec 2018 14:09:53 GMT):
I would also by default use linux ... if you are on Windows then a Linux VM would be my personal route
SiamakKarimi (Thu, 06 Dec 2018 17:18:31 GMT):
For example this paper did it: https://www.hindawi.com/journals/scn/2018/3976093/ . I would like to carry out similar work.
SiamakKarimi (Thu, 06 Dec 2018 17:28:25 GMT):
I am new. To start, Please introduce a simple sample in hyperledger fabric such as simple chain code and How can I evaluate it with Caliper?
SiamakKarimi (Thu, 06 Dec 2018 19:06:47 GMT):
Regarding my study, in benchmark configuration file, I can define and change the number of node in benchmark configuration file in "test": { "number": 5 }, and for performance I can change the number of transactions in "rounds": [{
"txNumber" : [5000, 5000, 5000]}
greivinlopez (Thu, 06 Dec 2018 19:33:25 GMT):
Has joined the channel.
klenik (Thu, 06 Dec 2018 20:01:39 GMT):
The 5 refers to the number of client generating the workload. The number of Fabric nodes (orderers and peers) is different, it is specified in the other (network) configuration file (that describes the actual network topology you deployed)
SiamakKarimi (Thu, 06 Dec 2018 20:40:33 GMT):
in this paper: https://www.hindawi.com/journals/scn/2018/3976093/ wrote: performance
evaluation of the two platforms will be assessed in terms
of execution time, latency, and throughput, by varying the
workload (number of transactions and requests (query or
invoke) that was requested simultaneously by the peers)
SiamakKarimi (Thu, 06 Dec 2018 20:42:03 GMT):
in this paper: https://www.hindawi.com/journals/scn/2018/3976093/ wrote:
SiamakKarimi (Thu, 06 Dec 2018 20:42:03 GMT):
in this paper: https://www.hindawi.com/journals/scn/2018/3976093/ wrote: To analyze the blockchain platform’s performance, we have deployed a simple money transfer application (chaincode).
SiamakKarimi (Thu, 06 Dec 2018 20:42:14 GMT):
performance evaluation will be assessed by varying the workload (number of transactions and requests that was requested simultaneously by the peers)
SiamakKarimi (Thu, 06 Dec 2018 20:42:14 GMT):
1)performance evaluation will be assessed by varying the workload (number of transactions and requests that was requested simultaneously by the peers)
SiamakKarimi (Thu, 06 Dec 2018 20:43:22 GMT):
the scalability will be analyzed by varying the number of nodes up to 20 nodes.
SiamakKarimi (Thu, 06 Dec 2018 20:43:22 GMT):
2)the scalability will be analyzed by varying the number of nodes up to 20 nodes.
SiamakKarimi (Thu, 06 Dec 2018 20:44:55 GMT):
Please help me how this paper did it, Particularly 2.
ShubhamKarnakar (Sat, 08 Dec 2018 12:43:52 GMT):
Has joined the channel.
nkl199 (Mon, 10 Dec 2018 11:35:46 GMT):
@SiamakKarimi - I would recommend that you contact the authors on the above requests ... if you have any specific Caliper questions then we can help with those. The authors in the paper mention that they use a "modified form of Hyperledger Caliper" ... so we would be guessing at exactly how they ran their tests. For the paper, it also looks like a "node" is a "peer". So they added more and more peers, and ran their modified Caliper tests against these.
panyu2 (Tue, 11 Dec 2018 00:04:36 GMT):
Hi,to whom concerns the regular meeting, the Caliper meeting is postponed this week due to the Global Forum.
yinzhiwu (Tue, 11 Dec 2018 01:40:43 GMT):
Whether Caliper has supported Fabric 1.2 now? Could someone answer my question? Thanks a lot.
panyu2 (Tue, 11 Dec 2018 10:03:12 GMT):
@yinzhiwu Attila is working on this. @klenik
klenik (Tue, 11 Dec 2018 11:21:15 GMT):
@yinzhiwu you can already run tests against a Fabric v1.2 network, but the new features (private collections) are not supported. Install the 1.2 SDK modules
MuckT (Wed, 12 Dec 2018 18:03:14 GMT):
Has joined the channel.
wangqq (Thu, 13 Dec 2018 06:25:38 GMT):
Has joined the channel.
wangqq (Thu, 13 Dec 2018 06:46:42 GMT):
How to test a network that is already running。Now, I have ran the e2e_cli example in fabric1.1. I want to use caliper to test the network that is running now. What should I do?
wangqq (Thu, 13 Dec 2018 06:49:44 GMT):
please help me
wangqq (Thu, 13 Dec 2018 06:50:37 GMT):
Clipboard - December 13, 2018 2:50 PM
klenik (Thu, 13 Dec 2018 06:52:33 GMT):
@wangqq Remove the `command` property from the network configuration files, since you don't need to start the network again.
wangqq (Thu, 13 Dec 2018 06:54:35 GMT):
I have deleted the configuration, but still can't
wangqq (Thu, 13 Dec 2018 07:01:11 GMT):
After deleting the command, does the rest remain the same?
wangqq (Thu, 13 Dec 2018 07:13:30 GMT):
@klenik
klenik (Thu, 13 Dec 2018 07:19:03 GMT):
Yes, but check the address of the peers and orderers. And you can set the channel's `deployed` property to true. The network configuration has to mirror your network topology. The chaincode should be recognized as installed/instantiated, but if not, also delete the chaincode from the `chaincodes` section.
klenik (Thu, 13 Dec 2018 07:19:03 GMT):
@wangqq Yes, but check the address of the peers and orderers. And you can set the channel's `deployed` property to true. The network configuration has to mirror your network topology. The chaincode should be recognized as installed/instantiated, but if not, also delete the chaincode from the `chaincodes` section.
wangqq (Thu, 13 Dec 2018 07:28:26 GMT):
Thank you very much. I think my approach is similar to yours, but I have a problem, If there are kafka nodes and zookeeper nodes in the running network, how should I do it?
wangqq (Thu, 13 Dec 2018 07:30:09 GMT):
How to set the kafka node and the zookeeper node in the fabric-simple in the network configuration file, which makes me very confused
wangqq (Thu, 13 Dec 2018 07:43:34 GMT):
Clipboard - December 13, 2018 3:41 PM
wangqq (Thu, 13 Dec 2018 07:58:22 GMT):
@klenik
klenik (Thu, 13 Dec 2018 08:32:11 GMT):
@wangqq Can you share your network config file (github gist is the best)? And what kind of network are you starting manually? Based on the error, the channel can't initialize itself with the genesis block, which could indicate that it can't reach a necessary node (I think an orderer node)
yinzhiwu (Thu, 13 Dec 2018 10:53:37 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=tWfxsXPmk8ARi7i8Z) @klenik Many thanks
Abhinavgrg074 (Fri, 14 Dec 2018 06:13:45 GMT):
Has joined the channel.
Rantwijk (Fri, 14 Dec 2018 09:50:18 GMT):
Has joined the channel.
FlyingTiger (Mon, 17 Dec 2018 07:22:18 GMT):
@wangqq Could you test your deployed network now?
wangqq (Mon, 17 Dec 2018 07:31:16 GMT):
NO
wangqq (Mon, 17 Dec 2018 07:31:43 GMT):
and you
FlyingTiger (Mon, 17 Dec 2018 07:36:54 GMT):
@wangqq Did you put the crypto-config you generated into './network/fabric/config/crypto-config' dir?
wangqq (Mon, 17 Dec 2018 07:38:03 GMT):
yes I replaced it
wangqq (Mon, 17 Dec 2018 07:39:22 GMT):
Do you hava a good idea
wangqq (Mon, 17 Dec 2018 07:41:14 GMT):
have
FlyingTiger (Mon, 17 Dec 2018 07:42:17 GMT):
your error information is "Promise is rejected: Error: 14 UNAVAILABLE: EOF
at new createStatusError "?
wangqq (Mon, 17 Dec 2018 07:43:44 GMT):
yes
FlyingTiger (Mon, 17 Dec 2018 07:44:52 GMT):
Could you please disabling TLS, and try it again?
wangqq (Mon, 17 Dec 2018 07:49:25 GMT):
No I did not disable it
wangqq (Mon, 17 Dec 2018 07:50:05 GMT):
Do you tried it? Is it effective?
wangqq (Mon, 17 Dec 2018 07:51:07 GMT):
I am using Fabric1.4 now, I heard people say that there seems to be a test function.
wangqq (Mon, 17 Dec 2018 07:51:37 GMT):
Do you tried Fabric1.4?
FlyingTiger (Mon, 17 Dec 2018 07:53:28 GMT):
No. I tested the deployed network, but not 1.4, and it works.
FlyingTiger (Mon, 17 Dec 2018 07:53:41 GMT):
https://github.com/hyperledger/hyperledger/issues/69
FlyingTiger (Mon, 17 Dec 2018 07:55:15 GMT):
The issue is about "Promise is rejected: Error: 14 UNAVAILABLE: EOF"
wangqq (Mon, 17 Dec 2018 07:56:04 GMT):
Thanks you
wangqq (Mon, 17 Dec 2018 07:57:32 GMT):
I will try it now.
wangqq (Mon, 17 Dec 2018 08:46:47 GMT):
@FlyingTiger My attempt has failed. The error is still the one. Do you have a good document? Can I have a look?
FlyingTiger (Mon, 17 Dec 2018 08:58:14 GMT):
I have no document. Could you use sudo command to try?
wangqq (Mon, 17 Dec 2018 09:08:57 GMT):
My user is root
wangqq (Mon, 17 Dec 2018 09:09:12 GMT):
@FlyingTiger
FlyingTiger (Mon, 17 Dec 2018 09:24:13 GMT):
could you please post your fabric version, grpc version, fabric-client version and fabric-ca-client version?
wangqq (Mon, 17 Dec 2018 10:55:20 GMT):
yes it is fabric1.1 grpc1.10.1 fabric-client1.1 fabric-ca-client1.1
FlyingTiger (Tue, 18 Dec 2018 09:31:48 GMT):
All of them are OK
mslavitch (Tue, 18 Dec 2018 15:39:28 GMT):
Has joined the channel.
panyu2 (Wed, 19 Dec 2018 01:02:44 GMT):
Hi,to whom concerns the regular meeting, the meeting will take place at UTC 6am on 12.9. The link of the meeting can be found on the Caliper's wiki https://wiki.hyperledger.org/projects/caliper
junki (Fri, 21 Dec 2018 00:55:03 GMT):
Has joined the channel.
panyu2 (Fri, 21 Dec 2018 03:25:14 GMT):
Hi,to whom concerns the regular meeting, since there are conflicts between the next two week's meeting time and vocations (Christmas holiday and New year‘s holiday), these two meetings will be postponed. The latest meeting will be scheduled for UTC 6 am on January 9.
NavjotSingh1 (Fri, 21 Dec 2018 13:36:30 GMT):
Has joined the channel.
NavjotSingh1 (Sat, 22 Dec 2018 06:01:23 GMT):
Guys, newbie here. I have been trying hard to get caliper working on my EC2 instance, it just wont work. I get that same old timeout error which doesnt go away even after increasing the timeout period from 12000 to 24000.
NavjotSingh1 (Sat, 22 Dec 2018 06:04:06 GMT):
Screen Shot 2018-12-22 at 1.01.01 AM.png
klenik (Sat, 22 Dec 2018 14:44:06 GMT):
@NavjotSingh1 the issue is with deploying the network. Make sure you open the necessary ports on your VMs and that they can reach each other. Ask around in the #fabric channel if you still can't get it working
NavjotSingh1 (Sat, 22 Dec 2018 15:01:40 GMT):
@klenik thank you, i will try that.
amiec (Mon, 24 Dec 2018 01:09:00 GMT):
Has joined the channel.
theprodigy (Mon, 24 Dec 2018 09:11:38 GMT):
Has joined the channel.
theprodigy (Mon, 24 Dec 2018 09:14:58 GMT):
Guys i am trying to use caliper on my network but it is giving me following error ```
lubuntu@flpeer1:~/caliper/benchmark/composer$ node main.js -c my-config.json
module.js:550
throw err;
^
Error: Cannot find module 'moment'
at Function.Module._resolveFilename (module.js:548:15)
at Function.Module._load (module.js:475:25)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object.
nkl199 (Mon, 24 Dec 2018 10:29:45 GMT):
go to the root directory (`/caliper`) and run `npm install`
nkl199 (Mon, 24 Dec 2018 10:30:32 GMT):
you will then need to do `npm run composer-deps` too, as you are running a composer benchmark (by the looks of it)
amiec (Wed, 26 Dec 2018 21:56:57 GMT):
Hi all, I'm a graduate student at the University of Oregon and will be experimenting with some performance analysis of Hyperledger Sawtooth over the next few months. I'm interested in intelligent benchmarking for reasons that will be obvious to this group. I have a few initial questions and will greatly appreciate any help or wisdom that anyone has to share!
First - I read the papers published by the group who wrote BLOCKBENCH and noticed BLOCKBENCH is cited by Caliper. As a performance analysis tool, does anyone have any notes about why I might choose to use one over the other? Both? Pros and cons? Unique workloads?
Second - I've already run into trouble installing Caliper. I'll take another stab and come back with specific errors. Does anybody have any additional notes or resources beyond the main documentation page? (I'm an npm newbie) I'm installing on a linux system running Ubuntu 16.04.
Thanks in advance, and thanks for writing Caliper! it seems like a cool tool.
amiec (Wed, 26 Dec 2018 22:23:38 GMT):
Clipboard - December 26, 2018 2:23 PM
amiec (Wed, 26 Dec 2018 22:23:44 GMT):
I am having trouble installing the sawtooth dependencies. Please see included screenshot. I'm running the command with sudo (sudo npm install sawtooth-deps) but appears that I'm getting a permission denied error...
amiec (Wed, 26 Dec 2018 22:23:44 GMT):
I am having trouble installing the sawtooth dependencies. Please see included screenshot. I'm running the command with sudo (sudo npm install sawtooth-deps) but appears that I'm getting a permission denied error... I'm not great with systems stuff so I welcome you to dumb answers down accordingly ;)
panyu2 (Thu, 27 Dec 2018 07:27:10 GMT):
@amiec try to change into the root user and then install the dependencies
Bayeed (Thu, 27 Dec 2018 13:04:39 GMT):
Has joined the channel.
Bayeed (Thu, 27 Dec 2018 13:06:40 GMT):
can i integrate caliper with fabric v1.3 ?
amiec (Thu, 27 Dec 2018 16:22:10 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=hkCCatBnrBpTAbZB4) @panyu2 Thanks panyu2, that did it
houqinghui (Fri, 28 Dec 2018 00:37:03 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=on8WRk3koRByEhMjL) @Bayeed if you finish it, you can summit the PR at [https://github.com/hyperledger/caliper/pulls]
houqinghui (Fri, 28 Dec 2018 00:37:03 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=on8WRk3koRByEhMjL) @Bayeed if you finish it, you can summit the PR at https://github.com/hyperledger/caliper/pulls
houqinghui (Fri, 28 Dec 2018 00:37:03 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=on8WRk3koRByEhMjL) @Bayeed if you finish it, you can submit the PR at https://github.com/hyperledger/caliper/pull
TopJohn (Fri, 28 Dec 2018 06:18:23 GMT):
The document is not suitable for the caliper now ?
TopJohn (Fri, 28 Dec 2018 06:20:13 GMT):
Clipboard - 2018年12月28日下午2点19分
TopJohn (Fri, 28 Dec 2018 07:15:22 GMT):
Does anybody know?
houqinghui (Fri, 28 Dec 2018 11:00:15 GMT):
@TopJohn please list your command .
MohammadObaid (Tue, 01 Jan 2019 12:23:16 GMT):
Hi guys . We have deployed custom fabric network with kafka mechanism and custom chaincode on aws . Can we use caliper to get benchmark results ?
erikteaminova (Wed, 02 Jan 2019 13:39:16 GMT):
Has joined the channel.
Bayeed (Wed, 02 Jan 2019 14:34:54 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=xTLsddZCT4wqMoCtd) @houqinghui link doesn't work.
NedSnark (Wed, 02 Jan 2019 20:00:29 GMT):
Has joined the channel.
houqinghui (Thu, 03 Jan 2019 01:54:15 GMT):
@MohammadObaid yes you can use caliper to test your own fabric network,The caliper is independent with the backend blockchain network. You can use the default user case to test the fabric network. Of course you can use caliper to test your own fabric network that has been deployed by you. If you want to test your own fabric network, please follow the below steps:
a. You should modify the fabric configuration file such as fabric-node.json according to your own network topology;
b. Remove the property command, which can start the docker containers of the blockchain nodes.
c. If you has installed the chaincode, you should modify the property deployed to true in the channel property.
houqinghui (Thu, 03 Jan 2019 01:54:15 GMT):
@MohammadObaid yes you can use caliper to test your own fabric network,The caliper is independent with the backend blockchain network. You can use the default user case to test the fabric network. Of course you can use caliper to test your own fabric network that has been deployed by you. If you want to test your own fabric network, please follow the below steps:
a. You should modify the fabric configuration file such as fabric-node.json according to your own network topology;
b. Remove the property command, which can start the docker containers of the blockchain nodes.
c. If you has installed the chaincode, you should modify the property deployed to true in the channel property.
houqinghui (Thu, 03 Jan 2019 01:54:15 GMT):
@MohammadObaid yes you can use caliper to test your own fabric network.
The caliper is independent with the backend blockchain network. You can use the default user case to test the fabric network. Of course you can use caliper to test your own fabric network that has been deployed by you. If you want to test your own fabric network, please follow the below steps:
a. You should modify the fabric configuration file such as fabric-node.json according to your own network topology;
b. Remove the property command, which can start the docker containers of the blockchain nodes.
c. If you has installed the chaincode, you should modify the property deployed to true in the channel property.
houqinghui (Thu, 03 Jan 2019 01:56:25 GMT):
@Bayeed sorry, the url is https://github.com/hyperledger/caliper/pulls
houqinghui (Thu, 03 Jan 2019 01:56:25 GMT):
@Bayeed sorry, the url is https://github.com/hyperledger/caliper/pulls. if you test the fabric v1.3 successfully, you can submit the PR.
viswanathbadmi (Thu, 03 Jan 2019 08:56:10 GMT):
Has joined the channel.
viswanathbadmi (Thu, 03 Jan 2019 08:57:54 GMT):
Could you please share any document related to test performance of hyperledger fabric v 1.2 application. i am new to caliper.
liaoruohuai (Thu, 03 Jan 2019 10:21:09 GMT):
Has joined the channel.
nkl199 (Thu, 03 Jan 2019 10:49:38 GMT):
as an FYI, I have converted Caliper to work using the 1.3 SDK - making a quick tidy up before making a PR
amiec (Fri, 04 Jan 2019 01:25:50 GMT):
Does anybody know of any published performance analysis or benchmarking work that pertains to Hyperledger Sawtooth / PoET? This seems like the best community to ask. I am working on experimental design and trying to find the most relevant and useful experimental approaches. There is very little in the literature that I can find. Thank you!
rkrish82 (Fri, 04 Jan 2019 06:24:03 GMT):
@nkl199 When this PR#279 is getting merged? Is this PR makes caliper to run on fabric 1.3?
rkrish82 (Fri, 04 Jan 2019 09:11:55 GMT):
@nkl199 When tried running simple benchmark test with your changes in pr#279 with fabric 1.3 network setup, I am getting following error
rkrish82 (Fri, 04 Jan 2019 09:11:56 GMT):
error: [create-channel.js]: Failed to create channels: Error: Calling enrollment endpoint failed with error [Error: write EPROTO 140636573722432:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:827:
rkrish82 (Fri, 04 Jan 2019 09:12:27 GMT):
i am using network/fabric-v1.2/2org2peercouchdb/fabric-go-tls.json fabric network configuration
nkl199 (Fri, 04 Jan 2019 09:31:31 GMT):
@rkrish82 - will check locally on fabric-v1.2/2org2peercouchdb
nkl199 (Fri, 04 Jan 2019 09:31:31 GMT):
@rkrish82 - will check locally on fabric-v1.2/2org2peercouchdb - i ran on v1.2, but not with CouchDB (only LevelDB)
MohammadObaid (Fri, 04 Jan 2019 09:46:19 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=NRpkYKTvoEGffcrFi) @houqinghui Hi @houqinghui thanks for explanation . Where does this config file lies in caliper repo ? I tried to look into but there are so many files with different network toplogies .
rkrish82 (Fri, 04 Jan 2019 09:54:20 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=TMHnaAd3rpm6N4riS) @nkl199 Is the above error related to couchdb?
nkl199 (Fri, 04 Jan 2019 09:55:04 GMT):
it was an error in channel creation (so no) ... and i've just gone past that particular part of the bench flow ... currently chaincodes are being instantiated
rkrish82 (Fri, 04 Jan 2019 09:55:43 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=SBbFguFmemhKWozhd) I am using fabric dependencies - grpc@1.16.1, fabric-ca-client@1.3.0 fabric-client@1.3.0 fabric-network@unstable-1.
rkrish82 (Fri, 04 Jan 2019 09:55:43 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=SBbFguFmemhKWozhd) I am using fabric dependencies - grpc@1.16.1, fabric-ca-client@1.3.0 fabric-client@1.3.0 fabric-network@unstable-1. Are these right?
nkl199 (Fri, 04 Jan 2019 09:56:44 GMT):
in the package file there is a `npm run fabric-deps` which instals the 1.4beta code ... that is what I have been using
nkl199 (Fri, 04 Jan 2019 09:57:10 GMT):
the grpc version should iirc be 1.14 level
rkrish82 (Fri, 04 Jan 2019 09:57:27 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=LiFrX8MAwjv65rNhu) @nkl199 is it using fabric 1.4 release?
nkl199 (Fri, 04 Jan 2019 09:57:27 GMT):
but you get that for free with the fabric-deps run
nkl199 (Fri, 04 Jan 2019 09:57:54 GMT):
the unstable stream of the fabric-sdk-node, the official 1.4 has not been released yet
rkrish82 (Fri, 04 Jan 2019 09:57:55 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=Jrc4QfAu3mNZk4juX) @nkl199 Let me check with fabric-deps
nkl199 (Fri, 04 Jan 2019 09:58:01 GMT):
:thumbsup:
RobertDiebels (Fri, 04 Jan 2019 10:02:03 GMT):
@MohammadObaid You start caliper using `node benchmark/simple/main.js -c yourconfig.json -n yournetwork.json` so you have to supply your own configurations. Examples can be found in the `./benchmark` and `./network` folders.
nkl199 (Fri, 04 Jan 2019 10:03:54 GMT):
@rkrish82 - benchmark test (simple) passed on the `fabric-v1.2/2org2peercouchdb/fabric-go-tls.json` config
MohammadObaid (Fri, 04 Jan 2019 10:06:46 GMT):
Alright . Just one more test . Can I provide my custom data source for invoking transactions ?
MohammadObaid (Fri, 04 Jan 2019 10:06:46 GMT):
Alright . Just one more thing . Can I provide my custom data source for invoking transactions ?
RobertDiebels (Fri, 04 Jan 2019 10:09:25 GMT):
@MohammadObaid As in your own Chaincode? Or the arguments you pass to your chaincode? Both are possible.
RobertDiebels (Fri, 04 Jan 2019 10:09:58 GMT):
The change the argument simply replace the callback files for each round in the configuration.
RobertDiebels (Fri, 04 Jan 2019 10:09:58 GMT):
The change the arguments simply replace the callback files for each round in the configuration.
RobertDiebels (Fri, 04 Jan 2019 10:09:58 GMT):
To change the arguments simply replace the callback files for each round in the configuration.
RobertDiebels (Fri, 04 Jan 2019 10:12:00 GMT):
The chaincode you call should be present in the callback files. See https://github.com/hyperledger/caliper/blob/master/benchmark/simple/main.js https://github.com/hyperledger/caliper/blob/master/benchmark/simple/open.js and https://github.com/hyperledger/caliper/blob/master/benchmark/simple/query.js for details
MohammadObaid (Fri, 04 Jan 2019 10:22:19 GMT):
Alright Thanks a lot :)
RobertDiebels (Fri, 04 Jan 2019 10:23:04 GMT):
Happy to help :thumbsup:
aaliu (Tue, 08 Jan 2019 02:30:57 GMT):
Has joined the channel.
aaliu (Tue, 08 Jan 2019 02:37:33 GMT):
Clipboard - January 8, 2019 10:33 AM
aaliu (Tue, 08 Jan 2019 02:39:19 GMT):
npm problem?
wangqq (Tue, 08 Jan 2019 11:59:52 GMT):
I would like to ask how to test all the details of the fabric network operation, such as the CPU usage of each function, etc., I want to find a way to optimize the fabric network.
nkl199 (Tue, 08 Jan 2019 15:54:34 GMT):
@aaliu - it might help to look into the peer logs to see if there is any more detailed information there
sstone1 (Tue, 08 Jan 2019 16:02:16 GMT):
Has left the channel.
ajayatgit (Tue, 08 Jan 2019 18:08:02 GMT):
Has joined the channel.
aaliu (Wed, 09 Jan 2019 02:00:53 GMT):
Clipboard - January 9, 2019 9:56 AM
aaliu (Wed, 09 Jan 2019 02:02:46 GMT):
Clipboard - January 9, 2019 9:59 AM
aaliu (Wed, 09 Jan 2019 02:05:43 GMT):
@nkl199 I got this peer node's log when ran the "docker logs ..."
rkrish82 (Wed, 09 Jan 2019 09:43:15 GMT):
@nkl199 Is PR raised #279 is supports fabric 1.3
nkl199 (Wed, 09 Jan 2019 09:47:42 GMT):
the #279 PR enables the use of Fabric clients 1.3 and above and has been verified on fabric versions 1.2 and above
rkrish82 (Wed, 09 Jan 2019 10:55:28 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=LK8uBs7CyCuXgTqcP) @nkl199 I am getting this error fabric 1.3
rkrish82 (Wed, 09 Jan 2019 10:55:29 GMT):
error: [create-channel.js]: Failed to create channels: Error: Calling enrollment endpoint failed with error [Error: write EPROTO 140116271847232:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:827:
nkl199 (Wed, 09 Jan 2019 10:56:40 GMT):
what dependancies have you imported for the fabric versions?
nkl199 (Wed, 09 Jan 2019 10:57:05 GMT):
- did you use the `npm run fabric-deps` option from the pacakge file?
rkrish82 (Wed, 09 Jan 2019 11:08:53 GMT):
1.3.0
rkrish82 (Wed, 09 Jan 2019 11:15:10 GMT):
Even tried with npm run fabric-deps
nkl199 (Wed, 09 Jan 2019 11:16:11 GMT):
did you delete the node modules dir and remove the package-lock.json file before trying with fabric-deps ?
rkrish82 (Wed, 09 Jan 2019 11:23:01 GMT):
i did that
nkl199 (Wed, 09 Jan 2019 11:44:14 GMT):
i'll ask a colleague to pull my branch and run on their machine, as i cannot reproduce locally
aaliu (Wed, 09 Jan 2019 11:49:13 GMT):
@nkl199 I found the reason, it's about the network
nkl199 (Wed, 09 Jan 2019 13:07:37 GMT):
ah - docker network?
aaliu (Wed, 09 Jan 2019 14:27:32 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=xYYpGyPN8xrtJNyYx) @nkl199 over the wall in china, you know:sweat_smile:
aaliu (Wed, 09 Jan 2019 14:42:28 GMT):
I want to try fabric 1.3 and which grpc version should install?
nkl199 (Wed, 09 Jan 2019 14:50:42 GMT):
if you use the 'fabric-deps' install, it will grab the version for you, otherwise, go with 1.14.2
aaliu (Thu, 10 Jan 2019 00:22:58 GMT):
@nkl199 got it, thank you
rkrish82 (Thu, 10 Jan 2019 05:06:28 GMT):
@aaliu @nkl199 Any update on fabric benchmark test run on 1.3 release?
phamdat721101 (Thu, 10 Jan 2019 09:06:26 GMT):
Has joined the channel.
melanc (Fri, 11 Jan 2019 08:50:21 GMT):
Has joined the channel.
melanc (Fri, 11 Jan 2019 08:55:28 GMT):
i am getting this error fabric 1.2
info: [instantiate-chaincode.js]: Instantiating chaincodes...
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: access denied: channel [mychannel] creator org [Org1MSP]
melanc (Fri, 11 Jan 2019 08:56:18 GMT):
Anybody know how to solve that?
DieYoungWsn (Fri, 11 Jan 2019 09:12:23 GMT):
Has joined the channel.
DieYoungWsn (Fri, 11 Jan 2019 09:12:33 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=KJpobc3KT2EYHp6ND) @melanc me too
houqinghui (Fri, 11 Jan 2019 09:32:15 GMT):
@DieYoungWsn @melanc can you show us the complete error log that contains the command?
DieYoungWsn (Fri, 11 Jan 2019 09:32:59 GMT):
Clipboard - January 11, 2019 5:32 PM
DieYoungWsn (Fri, 11 Jan 2019 09:33:19 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=dq8nG8z96ao2xDKw7) @houqinghui @houqinghui
DieYoungWsn (Fri, 11 Jan 2019 09:33:53 GMT):
node ./benchmark/simple/main.js -c config.yaml -n fabric-go.json
houqinghui (Fri, 11 Jan 2019 09:43:09 GMT):
@DieYoungWsn do you run the command befor?
houqinghui (Fri, 11 Jan 2019 09:43:09 GMT):
@DieYoungWsn do you run the command successfully before?
DieYoungWsn (Fri, 11 Jan 2019 09:44:06 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=jQ7b65x8sQddwCPCY) @houqinghui Yes, many errors before this.
houqinghui (Fri, 11 Jan 2019 09:53:11 GMT):
@DieYoungWsn the error is "access denied", maybe the problem is related to docker,please executive “docker stop $(docker ps -aq)” and “docker rm $(docker ps -aq)” , before this , you can also run the command "docker ps"check the dockers in your machine ,
houqinghui (Fri, 11 Jan 2019 09:53:11 GMT):
@DieYoungWsn the error is "access denied", maybe the problem is related to docker,please executive “docker stop $(docker ps -aq)” and “docker rm $(docker ps -aq)” , before this , you can also run the command 'docker ps'check the dockers in your machine ,
houqinghui (Fri, 11 Jan 2019 09:53:11 GMT):
@DieYoungWsn the error is "access denied", maybe the problem is related to docker,please executive “docker stop $(docker ps -aq)” and “docker rm $(docker ps -aq)” , before this , you can also run the command`docker ps` check the dockers in your machine ,
houqinghui (Fri, 11 Jan 2019 09:53:11 GMT):
@DieYoungWsn the error is "access denied", maybe the problem is related to docker,please executive “docker stop $(docker ps -aq)” and “docker rm $(docker ps -aq)” , before this , you can also run the command `docker ps` check the dockers in your machine ,
DieYoungWsn (Fri, 11 Jan 2019 09:54:44 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=JqzzxAE52wuNuTXBx) @houqinghui thanks,i will try
SaraG (Fri, 11 Jan 2019 14:01:54 GMT):
Has joined the channel.
SaraG (Fri, 11 Jan 2019 14:04:13 GMT):
Hello to people of Caliper from Iroha people! :) Could I please ask a 1-minute of maintainers' team time? :vulcan:
houqinghui (Mon, 14 Jan 2019 01:19:55 GMT):
@SaraG feel free to write your questions and we will answer them.
wangqq (Mon, 14 Jan 2019 06:32:30 GMT):
@houqinghui Hello, I would like to ask where is the official performance test result of the caliper of fabric1.2
houqinghui (Mon, 14 Jan 2019 06:38:28 GMT):
@wangqq no, but you can
houqinghui (Mon, 14 Jan 2019 06:38:28 GMT):
@wangqq no, but you can refer to the paper "Performance Benchmarking and Optimizing
Hyperledger Fabric Blockchain Platform" from IBM.
houqinghui (Mon, 14 Jan 2019 06:43:04 GMT):
@wangqq the url is https://arxiv.org/pdf/1805.11390.pdf
wangqq (Mon, 14 Jan 2019 06:43:31 GMT):
Thank you
boymiss (Mon, 14 Jan 2019 07:17:12 GMT):
Has joined the channel.
SaraG (Mon, 14 Jan 2019 09:41:21 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=EXdRPuyuMDC4dxALD) @houqinghui Great! The thing is that we updated libraries and I believe you guys use some of those? They need to be updated, I am ready to help in any way if I can be of assistance. I can also write a message in a mailing list though not sure what way you'd prefer to use for communication. Please let me know if you have any questions :vulcan:
houqinghui (Mon, 14 Jan 2019 10:08:56 GMT):
@panyu2 @FlyingTiger @klenik @nkl199
houqinghui (Mon, 14 Jan 2019 10:15:27 GMT):
@SaraG we can communicate with each othe through rocket chat or git issue https://github.com/hyperledger/caliper/issues
houqinghui (Mon, 14 Jan 2019 10:15:27 GMT):
@SaraG we can communicate with each other through rocket chat or git issue https://github.com/hyperledger/caliper/issues
boymiss (Mon, 14 Jan 2019 12:38:22 GMT):
:flag_cn:
JonasM (Mon, 14 Jan 2019 16:05:54 GMT):
Has joined the channel.
DieYoungWsn (Tue, 15 Jan 2019 01:47:36 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=y6WKYx22JxHtz2Qnu) @boymiss 五星红旗好
boymiss (Tue, 15 Jan 2019 02:05:39 GMT):
:grin:
wangqq (Tue, 15 Jan 2019 02:20:55 GMT):
I want to use caliper to test the fabric network on other machines, how should I do it?
wangqq (Tue, 15 Jan 2019 03:52:29 GMT):
Clipboard - January 15, 2019 11:51 AM
wangqq (Tue, 15 Jan 2019 03:53:04 GMT):
Clipboard - January 15, 2019 11:53 AM
wangqq (Tue, 15 Jan 2019 03:54:33 GMT):
Clipboard - January 15, 2019 11:54 AM
wangqq (Tue, 15 Jan 2019 03:57:17 GMT):
Can someone help me see what is wrong? thank
houqinghui (Tue, 15 Jan 2019 05:54:16 GMT):
Clipboard - January 15, 2019 1:53 PM
houqinghui (Tue, 15 Jan 2019 05:55:19 GMT):
@wangqq are these files located in both computer?
wangqq (Tue, 15 Jan 2019 05:58:03 GMT):
yes, I copied the past from the e2e example.
wangqq (Tue, 15 Jan 2019 05:59:17 GMT):
Their two paths are different
panyu2 (Tue, 15 Jan 2019 06:13:03 GMT):
Hi,to whom concerns the regular meeting, the meeting will take place at UTC 8am on 1.16. The link of the meeting can be found on the Caliper's wiki https://wiki.hyperledger.org/projects/caliper
davidkhala (Tue, 15 Jan 2019 06:26:08 GMT):
Hi maintainers, I find a great effort has just been done by an individual team. They provide another fabric benchmark test. See in https://jira.hyperledger.org/browse/FAB-13203
panyu2 (Tue, 15 Jan 2019 09:29:14 GMT):
@davidkhala , Thanks.
wangqq (Wed, 16 Jan 2019 01:15:11 GMT):
Clipboard - January 16, 2019 9:14 AM
wangqq (Wed, 16 Jan 2019 01:15:47 GMT):
@houqinghui @panyu2
houqinghui (Wed, 16 Jan 2019 03:04:41 GMT):
Clipboard - January 16, 2019 11:03 AM
houqinghui (Wed, 16 Jan 2019 03:04:41 GMT):
Clipboard - January 16, 2019 11:03 AM
houqinghui (Wed, 16 Jan 2019 03:05:41 GMT):
@wangqq
wangqq (Wed, 16 Jan 2019 03:53:27 GMT):
I modified it and defined it as my own file.
wangqq (Wed, 16 Jan 2019 03:55:25 GMT):
Clipboard - January 16, 2019 11:55 AM
wangqq (Wed, 16 Jan 2019 03:56:18 GMT):
Now that problem has been solved, I have encountered a new problem now.
wangqq (Wed, 16 Jan 2019 03:57:31 GMT):
Clipboard - January 16, 2019 11:57 AM
wangqq (Wed, 16 Jan 2019 03:59:40 GMT):
Do you have actual operation notes, I want to check it out?
wangqq (Wed, 16 Jan 2019 04:00:15 GMT):
I’ve been bothering you recently, thanks
wangqq (Wed, 16 Jan 2019 06:02:22 GMT):
Chain code, do I need to replace it?
wangqq (Wed, 16 Jan 2019 07:36:52 GMT):
@houqinghui Can the certificate file be generated using fabric-ca?
BhaskarRaju (Wed, 16 Jan 2019 07:40:38 GMT):
Has joined the channel.
wangqq (Wed, 16 Jan 2019 08:19:33 GMT):
Clipboard - January 16, 2019 4:19 PM
wangqq (Wed, 16 Jan 2019 08:20:53 GMT):
How to solve this mistake?
wangqq (Wed, 16 Jan 2019 08:21:20 GMT):
:joy:
houqinghui (Wed, 16 Jan 2019 08:59:44 GMT):
@wangqq no you can use cryptogen to generate your msp
houqinghui (Wed, 16 Jan 2019 08:59:44 GMT):
@wangqq no you can use cryptogen to generate your msp . how do you solve your last error?
wangqq (Wed, 16 Jan 2019 09:08:47 GMT):
The certificate problem, the last error, I used the certificate generated by the fabric-ca, after I replaced it, it would be fine.
LHS_ETR (Thu, 17 Jan 2019 01:37:10 GMT):
Has joined the channel.
LHS_ETR (Thu, 17 Jan 2019 01:55:14 GMT):
hi guys, i'm just start studying caliper. is there any tutorials for beginner? kind of video or youtube for starter.
houqinghui (Thu, 17 Jan 2019 02:09:21 GMT):
@LHS_ETR sorry, we donot have made video or youtube for freshman, you can refer to the document web of caliper and run the caliper step by step, the url is https://hyperledger.github.io/caliper/, if you have questions, you can communicate with us through rocket chat or github issue.
LHS_ETR (Thu, 17 Jan 2019 05:15:47 GMT):
coa
phamdat721101 (Thu, 17 Jan 2019 07:44:41 GMT):
caliper_error.PNG
phamdat721101 (Thu, 17 Jan 2019 07:44:57 GMT):
Is there anyone know how to solve this error ? thanks
houqinghui (Thu, 17 Jan 2019 09:04:41 GMT):
@phamdat721101 please list your command. which use case do you run?
Surabhi1777 (Thu, 17 Jan 2019 09:37:27 GMT):
Has joined the channel.
Surabhi1777 (Thu, 17 Jan 2019 09:44:15 GMT):
Hello,
Surabhi1777 (Thu, 17 Jan 2019 09:49:18 GMT):
I am using Caliper to load 1GB of data on my hyperledger fabric network which is remote network. Network configuration is : 3 Org with 2 peers per org. I am using simple chaincode and my endorsement policy is signing from Org1MSP and Org2MSP. Now when I shut down peer0org1 and start data loading then it throws me an error as follows:
error: [Remote.js]: Error: Failed to connect before the deadline
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: Failed to connect before the deadline
at checkState (/home/ubuntu/caliper/node_modules/grpc/src/client.js:838:16)
error: [Channel.js]: getChannelConfig - Failed getting channel config. Error: Error: Failed to connect before the deadline
at checkState (/home/ubuntu/caliper/node_modules/grpc/src/client.js:838:16)
error: [Channel.js]: Error: Failed to connect before the deadline
at checkState (/home/ubuntu/caliper/node_modules/grpc/src/client.js:838:16)
error: [local-client.js]: Client[4085] encountered an error: Error: Error: Failed to connect before the deadline
at getChannelConfig.then.catch (/home/ubuntu/caliper/node_modules/fabric-client/lib/Channel.js:356:27)
at
Surabhi1777 (Thu, 17 Jan 2019 09:52:27 GMT):
Is it that caliper by default connects to peer0org1, are there any configuartions related to this?
nkl199 (Thu, 17 Jan 2019 12:37:14 GMT):
it depends on the client number:
- client1 -> peer1
- client2 -> peer2
and if clients > peers, then it wraps around again
mwall (Thu, 17 Jan 2019 13:23:02 GMT):
Has joined the channel.
LHS_ETR (Fri, 18 Jan 2019 01:48:03 GMT):
clip
LHS_ETR (Fri, 18 Jan 2019 01:48:05 GMT):
hi guys, i try benchmark sawtooth sample but it doesn't work.
plz help me.
LHS_ETR (Fri, 18 Jan 2019 01:48:05 GMT):
hi guys, i try benchmark sawtooth sample but it doesn't work.
plz help me.
LHS_ETR (Fri, 18 Jan 2019 01:48:05 GMT):
hi guys, i try benchmark sawtooth sample but it doesn't work.
plz help me. thx
houqinghui (Fri, 18 Jan 2019 03:18:13 GMT):
@LHS_ETR please run the command `npm install` in the root directory of caliper to install the dependencies packages
LHS_ETR (Fri, 18 Jan 2019 03:51:45 GMT):
Clipboard - January 18, 2019 12:51 PM
LHS_ETR (Fri, 18 Jan 2019 03:51:46 GMT):
@houqinghui thanks for reply. but I already installed it.
houqinghui (Fri, 18 Jan 2019 04:46:43 GMT):
@LHS_ETR the error is "cannot find module 'fabric-client'", please execute the command `npm install fabric-ca-client@1.1.0 fabric-client@1.1.0`
Surabhi1777 (Fri, 18 Jan 2019 04:52:26 GMT): aaliu (Fri, 18 Jan 2019 10:28:32 GMT): aaliu (Fri, 18 Jan 2019 10:30:07 GMT): aaliu (Fri, 18 Jan 2019 10:30:07 GMT): aaliu (Fri, 18 Jan 2019 10:32:18 GMT): aaliu (Fri, 18 Jan 2019 10:35:17 GMT): aaliu (Fri, 18 Jan 2019 10:36:23 GMT): nkl199 (Fri, 18 Jan 2019 14:08:40 GMT): Bayeed (Fri, 18 Jan 2019 16:28:36 GMT): amiec (Fri, 18 Jan 2019 20:23:43 GMT): amiec (Fri, 18 Jan 2019 20:27:01 GMT): Bayeed (Fri, 18 Jan 2019 20:29:29 GMT): amiec (Fri, 18 Jan 2019 20:31:43 GMT): Bayeed (Fri, 18 Jan 2019 20:36:01 GMT): unlimited (Sat, 19 Jan 2019 20:04:23 GMT): unlimited (Sat, 19 Jan 2019 20:08:57 GMT): unlimited (Sat, 19 Jan 2019 20:10:25 GMT): rkrish82 (Sun, 20 Jan 2019 15:17:41 GMT): LHS_ETR (Mon, 21 Jan 2019 00:02:44 GMT): Surabhi1777 (Mon, 21 Jan 2019 05:15:49 GMT): DmitriPlakhov (Mon, 21 Jan 2019 12:39:25 GMT): ajbill (Mon, 21 Jan 2019 13:46:32 GMT): ajbill (Mon, 21 Jan 2019 13:49:40 GMT): unlimited (Mon, 21 Jan 2019 18:30:11 GMT): panyu2 (Tue, 22 Jan 2019 06:54:57 GMT): panyu2 (Tue, 22 Jan 2019 06:59:48 GMT): panyu2 (Tue, 22 Jan 2019 07:02:49 GMT): panyu2 (Tue, 22 Jan 2019 07:10:44 GMT): ajbill (Tue, 22 Jan 2019 21:57:59 GMT): houqinghui (Wed, 23 Jan 2019 00:44:47 GMT): unlimited (Wed, 23 Jan 2019 01:50:01 GMT): houqinghui (Wed, 23 Jan 2019 01:58:38 GMT): unlimited (Wed, 23 Jan 2019 01:59:19 GMT): unlimited (Wed, 23 Jan 2019 02:47:50 GMT): houqinghui (Wed, 23 Jan 2019 03:44:03 GMT): unlimited (Wed, 23 Jan 2019 04:02:49 GMT): CodeReaper (Wed, 23 Jan 2019 15:42:07 GMT): CodeReaper (Wed, 23 Jan 2019 15:42:07 GMT): unlimited (Wed, 23 Jan 2019 20:06:43 GMT): unlimited (Wed, 23 Jan 2019 20:08:45 GMT): houqinghui (Thu, 24 Jan 2019 01:15:36 GMT): LHS_ETR (Thu, 24 Jan 2019 05:37:37 GMT): CodeReaper (Thu, 24 Jan 2019 05:38:40 GMT): panyu2 (Thu, 24 Jan 2019 06:57:53 GMT): panyu2 (Thu, 24 Jan 2019 06:57:53 GMT): LHS_ETR (Thu, 24 Jan 2019 07:20:33 GMT): LHS_ETR (Thu, 24 Jan 2019 07:21:00 GMT): houqinghui (Thu, 24 Jan 2019 08:39:35 GMT): Nabilel 1 (Thu, 24 Jan 2019 10:56:58 GMT): ajbill (Thu, 24 Jan 2019 18:39:57 GMT): sherbetlemon (Thu, 24 Jan 2019 23:16:19 GMT): sherbetlemon (Thu, 24 Jan 2019 23:24:43 GMT): sherbetlemon (Thu, 24 Jan 2019 23:25:03 GMT): houqinghui (Fri, 25 Jan 2019 00:40:55 GMT): houqinghui (Fri, 25 Jan 2019 00:43:22 GMT): houqinghui (Fri, 25 Jan 2019 00:43:22 GMT): houqinghui (Fri, 25 Jan 2019 00:43:22 GMT): sherbetlemon (Fri, 25 Jan 2019 00:44:39 GMT): houqinghui (Fri, 25 Jan 2019 00:46:03 GMT): houqinghui (Fri, 25 Jan 2019 00:46:30 GMT): houqinghui (Fri, 25 Jan 2019 00:50:14 GMT): sherbetlemon (Fri, 25 Jan 2019 00:52:34 GMT): houqinghui (Fri, 25 Jan 2019 00:58:58 GMT): sherbetlemon (Fri, 25 Jan 2019 00:59:51 GMT): AlphaAsteroid (Fri, 25 Jan 2019 10:55:01 GMT): AlphaAsteroid (Fri, 25 Jan 2019 10:55:44 GMT): AlphaAsteroid (Fri, 25 Jan 2019 10:56:07 GMT): AlphaAsteroid (Fri, 25 Jan 2019 10:56:17 GMT): AlphaAsteroid (Fri, 25 Jan 2019 10:56:26 GMT): CodeReaper (Fri, 25 Jan 2019 10:56:51 GMT): CodeReaper (Fri, 25 Jan 2019 10:56:51 GMT): Nabilel 1 (Fri, 25 Jan 2019 15:56:07 GMT): panyu2 (Sat, 26 Jan 2019 00:54:41 GMT): houqinghui (Sat, 26 Jan 2019 02:03:48 GMT): amiec (Sun, 27 Jan 2019 20:29:43 GMT): LHS_ETR (Mon, 28 Jan 2019 01:09:45 GMT): LHS_ETR (Mon, 28 Jan 2019 01:09:55 GMT): LHS_ETR (Mon, 28 Jan 2019 01:15:01 GMT): LHS_ETR (Mon, 28 Jan 2019 01:15:01 GMT): mwklein (Mon, 28 Jan 2019 02:00:52 GMT): luomin (Mon, 28 Jan 2019 06:39:53 GMT): FlyingTiger (Mon, 28 Jan 2019 08:43:37 GMT): FlyingTiger (Mon, 28 Jan 2019 08:56:37 GMT): panyu2 (Mon, 28 Jan 2019 09:15:12 GMT): Nabilel 1 (Mon, 28 Jan 2019 10:06:53 GMT): peter.danko (Mon, 28 Jan 2019 11:41:26 GMT): unlimited (Mon, 28 Jan 2019 20:43:34 GMT): unlimited (Mon, 28 Jan 2019 20:43:55 GMT): amiec (Mon, 28 Jan 2019 21:49:33 GMT): amiec (Mon, 28 Jan 2019 21:49:33 GMT): houqinghui (Tue, 29 Jan 2019 01:12:30 GMT): houqinghui (Tue, 29 Jan 2019 01:16:53 GMT): LHS_ETR (Tue, 29 Jan 2019 07:19:59 GMT): LHS_ETR (Tue, 29 Jan 2019 07:21:07 GMT): LHS_ETR (Tue, 29 Jan 2019 07:22:00 GMT): LHS_ETR (Tue, 29 Jan 2019 07:22:00 GMT): Nabilel 1 (Tue, 29 Jan 2019 11:07:10 GMT): Nabilel 1 (Tue, 29 Jan 2019 11:07:10 GMT): Nabilel 1 (Tue, 29 Jan 2019 11:07:56 GMT): Nabilel 1 (Tue, 29 Jan 2019 11:10:30 GMT): Nabilel 1 (Tue, 29 Jan 2019 11:11:08 GMT): nordnes (Tue, 29 Jan 2019 21:10:12 GMT): nordnes (Tue, 29 Jan 2019 21:10:38 GMT): houqinghui (Wed, 30 Jan 2019 00:51:29 GMT): houqinghui (Wed, 30 Jan 2019 00:51:29 GMT): nordnes (Wed, 30 Jan 2019 01:05:14 GMT): houqinghui (Wed, 30 Jan 2019 01:07:22 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 06:19:49 GMT): RamyaLaxmi (Wed, 30 Jan 2019 06:44:01 GMT): RamyaLaxmi (Wed, 30 Jan 2019 06:50:34 GMT): houqinghui (Wed, 30 Jan 2019 06:53:57 GMT): houqinghui (Wed, 30 Jan 2019 06:53:57 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 07:07:50 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 07:07:50 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 07:11:11 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 07:11:11 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 07:11:11 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 07:11:12 GMT): houqinghui (Wed, 30 Jan 2019 07:27:01 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 07:34:31 GMT): houqinghui (Wed, 30 Jan 2019 07:37:48 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 07:39:09 GMT): houqinghui (Wed, 30 Jan 2019 07:40:29 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 07:40:50 GMT): houqinghui (Wed, 30 Jan 2019 07:41:41 GMT): houqinghui (Wed, 30 Jan 2019 07:44:01 GMT): houqinghui (Wed, 30 Jan 2019 07:44:07 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 07:44:54 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 07:45:28 GMT): houqinghui (Wed, 30 Jan 2019 07:47:02 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 07:47:28 GMT): Nabilel 1 (Wed, 30 Jan 2019 08:11:56 GMT): Nabilel 1 (Wed, 30 Jan 2019 08:12:12 GMT): Nabilel 1 (Wed, 30 Jan 2019 08:13:25 GMT): houqinghui (Wed, 30 Jan 2019 08:20:43 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 08:59:08 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 08:59:08 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 08:59:08 GMT): FlyingTiger (Wed, 30 Jan 2019 09:07:42 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 09:17:15 GMT): FlyingTiger (Wed, 30 Jan 2019 09:19:39 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 09:29:47 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 09:29:47 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 09:29:47 GMT): FlyingTiger (Wed, 30 Jan 2019 09:38:29 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 09:38:44 GMT): FlyingTiger (Wed, 30 Jan 2019 09:38:53 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 10:28:48 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 10:28:48 GMT): mamtabhardwaj12 (Wed, 30 Jan 2019 10:28:48 GMT): Bayeed (Wed, 30 Jan 2019 19:45:31 GMT): Bayeed (Wed, 30 Jan 2019 22:13:53 GMT): houqinghui (Thu, 31 Jan 2019 00:42:36 GMT): houqinghui (Thu, 31 Jan 2019 00:43:29 GMT): houqinghui (Thu, 31 Jan 2019 00:55:10 GMT): FlyingTiger (Thu, 31 Jan 2019 03:12:48 GMT): MuthuT (Thu, 31 Jan 2019 05:41:17 GMT): Bayeed (Thu, 31 Jan 2019 13:47:24 GMT): Bayeed (Thu, 31 Jan 2019 14:32:11 GMT): houqinghui (Fri, 01 Feb 2019 00:54:32 GMT): Bayeed (Fri, 01 Feb 2019 00:56:37 GMT): Bayeed (Fri, 01 Feb 2019 00:57:21 GMT): Bayeed (Fri, 01 Feb 2019 01:00:15 GMT): houqinghui (Fri, 01 Feb 2019 01:02:54 GMT): houqinghui (Fri, 01 Feb 2019 01:42:04 GMT): Bayeed (Fri, 01 Feb 2019 01:49:12 GMT): Zeshun (Tue, 05 Feb 2019 14:52:17 GMT): Zeshun (Tue, 05 Feb 2019 17:45:01 GMT): mamtabhardwaj12 (Wed, 06 Feb 2019 08:26:36 GMT): mamtabhardwaj12 (Wed, 06 Feb 2019 08:26:36 GMT): paparent (Wed, 06 Feb 2019 20:03:04 GMT): pfm (Thu, 07 Feb 2019 00:00:15 GMT): KimYong 1 (Thu, 07 Feb 2019 07:59:20 GMT): KimYong 1 (Thu, 07 Feb 2019 07:59:59 GMT): KimYong 1 (Thu, 07 Feb 2019 07:59:59 GMT): KimYong 1 (Thu, 07 Feb 2019 07:59:59 GMT): KimYong 1 (Thu, 07 Feb 2019 07:59:59 GMT): KimYong 1 (Thu, 07 Feb 2019 07:59:59 GMT): KimYong 1 (Thu, 07 Feb 2019 07:59:59 GMT): KimYong 1 (Thu, 07 Feb 2019 08:00:52 GMT): KimYong 1 (Thu, 07 Feb 2019 08:03:02 GMT): mamtabhardwaj12 (Thu, 07 Feb 2019 10:10:07 GMT): bmv025 (Fri, 08 Feb 2019 05:23:26 GMT): mamtabhardwaj12 (Fri, 08 Feb 2019 05:50:50 GMT): HLFPOC (Fri, 08 Feb 2019 06:24:00 GMT): HLFPOC (Fri, 08 Feb 2019 06:25:54 GMT): circlespainter (Sat, 09 Feb 2019 10:25:56 GMT): Bayeed (Sun, 10 Feb 2019 15:23:30 GMT): Bayeed (Sun, 10 Feb 2019 15:23:49 GMT): Bayeed (Sun, 10 Feb 2019 15:29:26 GMT): Bayeed (Sun, 10 Feb 2019 15:29:46 GMT): KimYong 1 (Mon, 11 Feb 2019 00:54:55 GMT): KimYong 1 (Mon, 11 Feb 2019 00:54:55 GMT): fridtjon (Mon, 11 Feb 2019 10:54:43 GMT): fridtjon (Mon, 11 Feb 2019 10:57:00 GMT): mamtabhardwaj12 (Tue, 12 Feb 2019 09:42:03 GMT): mamtabhardwaj12 (Tue, 12 Feb 2019 10:13:11 GMT): houqinghui (Wed, 13 Feb 2019 01:01:03 GMT): houqinghui (Wed, 13 Feb 2019 01:05:32 GMT): houqinghui (Wed, 13 Feb 2019 01:10:08 GMT): houqinghui (Wed, 13 Feb 2019 01:10:08 GMT): houqinghui (Wed, 13 Feb 2019 01:16:02 GMT): circlespainter (Wed, 13 Feb 2019 06:21:13 GMT): RamyaLaxmi (Wed, 13 Feb 2019 06:21:29 GMT): RamyaLaxmi (Wed, 13 Feb 2019 06:21:29 GMT): wangqq (Thu, 14 Feb 2019 01:10:32 GMT): wangqq (Thu, 14 Feb 2019 01:10:35 GMT): wangqq (Thu, 14 Feb 2019 01:11:45 GMT): houqinghui (Thu, 14 Feb 2019 01:31:41 GMT): houqinghui (Thu, 14 Feb 2019 01:34:00 GMT): wangqq (Thu, 14 Feb 2019 01:35:17 GMT): wangqq (Thu, 14 Feb 2019 01:35:23 GMT): wangqq (Thu, 14 Feb 2019 01:35:34 GMT): wangqq (Thu, 14 Feb 2019 01:37:25 GMT): wangqq (Thu, 14 Feb 2019 01:38:05 GMT): houqinghui (Thu, 14 Feb 2019 01:45:13 GMT): houqinghui (Thu, 14 Feb 2019 01:47:34 GMT): wangqq (Thu, 14 Feb 2019 02:00:30 GMT): wangqq (Thu, 14 Feb 2019 02:01:48 GMT): houqinghui (Thu, 14 Feb 2019 02:14:23 GMT): wangqq (Thu, 14 Feb 2019 02:15:28 GMT): wangqq (Thu, 14 Feb 2019 02:15:42 GMT): wangqq (Thu, 14 Feb 2019 02:16:11 GMT): wangqq (Thu, 14 Feb 2019 02:24:54 GMT): wangqq (Thu, 14 Feb 2019 02:26:08 GMT): wangqq (Thu, 14 Feb 2019 02:27:41 GMT): houqinghui (Thu, 14 Feb 2019 02:44:21 GMT): houqinghui (Thu, 14 Feb 2019 02:44:21 GMT): panyu2 (Thu, 14 Feb 2019 07:51:21 GMT): lotty02cho (Thu, 14 Feb 2019 08:42:09 GMT): lotty02cho (Thu, 14 Feb 2019 08:42:09 GMT): lotty02cho (Thu, 14 Feb 2019 08:42:09 GMT): lotty02cho (Thu, 14 Feb 2019 08:42:09 GMT): lotty02cho (Thu, 14 Feb 2019 08:46:38 GMT): FlyingTiger (Thu, 14 Feb 2019 10:24:52 GMT): FlyingTiger (Thu, 14 Feb 2019 10:36:59 GMT): nordnes (Thu, 14 Feb 2019 11:31:03 GMT): nordnes (Thu, 14 Feb 2019 11:31:03 GMT): jgiron (Thu, 14 Feb 2019 15:48:34 GMT): houqinghui (Fri, 15 Feb 2019 00:41:45 GMT): lotty02cho (Fri, 15 Feb 2019 02:08:39 GMT): lotty02cho (Fri, 15 Feb 2019 04:14:47 GMT): houqinghui (Fri, 15 Feb 2019 06:09:50 GMT): houqinghui (Fri, 15 Feb 2019 06:09:50 GMT): houqinghui (Fri, 15 Feb 2019 06:09:50 GMT): FlyingTiger (Fri, 15 Feb 2019 07:50:00 GMT): wangqq (Fri, 15 Feb 2019 08:31:35 GMT): wangqq (Fri, 15 Feb 2019 08:32:00 GMT): wangqq (Fri, 15 Feb 2019 08:33:44 GMT): wangqq (Fri, 15 Feb 2019 08:34:50 GMT): FlyingTiger (Fri, 15 Feb 2019 09:32:10 GMT): GeorgePaulose (Fri, 15 Feb 2019 10:54:13 GMT): klenik (Sat, 16 Feb 2019 09:54:54 GMT): nordnes (Sat, 16 Feb 2019 13:19:24 GMT): klenik (Sat, 16 Feb 2019 16:25:05 GMT): nordnes (Sat, 16 Feb 2019 20:22:29 GMT): Luxii (Sun, 17 Feb 2019 07:09:00 GMT): Luxii (Sun, 17 Feb 2019 07:12:10 GMT): Luxii (Sun, 17 Feb 2019 07:12:24 GMT): wangqq (Sun, 17 Feb 2019 08:24:18 GMT): klenik (Sun, 17 Feb 2019 10:35:57 GMT): Luxii (Sun, 17 Feb 2019 11:18:02 GMT): Luxii (Sun, 17 Feb 2019 11:21:54 GMT): Luxii (Sun, 17 Feb 2019 12:03:57 GMT): Luxii (Sun, 17 Feb 2019 12:04:04 GMT): klenik (Sun, 17 Feb 2019 14:15:00 GMT): amiec (Sun, 17 Feb 2019 23:57:55 GMT): houqinghui (Mon, 18 Feb 2019 00:54:52 GMT): houqinghui (Mon, 18 Feb 2019 01:21:05 GMT): GeorgePaulose (Mon, 18 Feb 2019 04:14:24 GMT): wangqq (Mon, 18 Feb 2019 04:29:18 GMT): houqinghui (Mon, 18 Feb 2019 04:32:50 GMT): houqinghui (Mon, 18 Feb 2019 04:32:50 GMT): GeorgePaulose (Mon, 18 Feb 2019 04:37:38 GMT): GeorgePaulose (Mon, 18 Feb 2019 04:37:58 GMT): GeorgePaulose (Mon, 18 Feb 2019 04:38:12 GMT): wangqq (Mon, 18 Feb 2019 04:39:16 GMT): wangqq (Mon, 18 Feb 2019 04:39:24 GMT): wangqq (Mon, 18 Feb 2019 04:40:47 GMT): wangqq (Mon, 18 Feb 2019 04:40:55 GMT): wangqq (Mon, 18 Feb 2019 04:42:32 GMT): wangqq (Mon, 18 Feb 2019 04:42:41 GMT): wangqq (Mon, 18 Feb 2019 04:46:10 GMT): Luxii (Mon, 18 Feb 2019 06:02:30 GMT): wangqq (Mon, 18 Feb 2019 06:42:49 GMT): houqinghui (Mon, 18 Feb 2019 07:36:36 GMT): wangqq (Mon, 18 Feb 2019 07:53:42 GMT): klenik (Mon, 18 Feb 2019 10:22:54 GMT): klenik (Mon, 18 Feb 2019 10:22:54 GMT): klenik (Mon, 18 Feb 2019 10:33:21 GMT): klenik (Mon, 18 Feb 2019 10:33:21 GMT): klenik (Mon, 18 Feb 2019 10:48:04 GMT): GeorgePaulose (Mon, 18 Feb 2019 12:01:10 GMT): GeorgePaulose (Mon, 18 Feb 2019 12:02:29 GMT): klenik (Mon, 18 Feb 2019 12:57:34 GMT): amiec (Mon, 18 Feb 2019 17:29:59 GMT): nekia (Tue, 19 Feb 2019 04:04:24 GMT): wangqq (Tue, 19 Feb 2019 07:02:31 GMT): wangqq (Tue, 19 Feb 2019 07:02:41 GMT): wangqq (Tue, 19 Feb 2019 07:02:48 GMT): wangqq (Tue, 19 Feb 2019 07:04:48 GMT): Luxii (Tue, 19 Feb 2019 07:09:02 GMT): Luxii (Tue, 19 Feb 2019 07:09:27 GMT): wangqq (Tue, 19 Feb 2019 07:14:32 GMT): Luxii (Tue, 19 Feb 2019 07:25:36 GMT): Luxii (Tue, 19 Feb 2019 07:25:58 GMT): Luxii (Tue, 19 Feb 2019 07:26:10 GMT): wangqq (Tue, 19 Feb 2019 07:34:06 GMT): wangqq (Tue, 19 Feb 2019 07:39:59 GMT): wangqq (Tue, 19 Feb 2019 07:41:01 GMT): wangqq (Tue, 19 Feb 2019 07:50:49 GMT): houqinghui (Tue, 19 Feb 2019 07:53:11 GMT): wangqq (Tue, 19 Feb 2019 08:04:16 GMT): wangqq (Tue, 19 Feb 2019 08:05:02 GMT): GeorgePaulose (Tue, 19 Feb 2019 08:41:26 GMT): GeorgePaulose (Tue, 19 Feb 2019 08:41:26 GMT): GeorgePaulose (Tue, 19 Feb 2019 08:45:39 GMT): GeorgePaulose (Tue, 19 Feb 2019 08:46:02 GMT): Luxii (Tue, 19 Feb 2019 08:59:21 GMT): Luxii (Tue, 19 Feb 2019 09:00:21 GMT): houqinghui (Tue, 19 Feb 2019 09:06:56 GMT): houqinghui (Tue, 19 Feb 2019 09:20:17 GMT): wangqq (Tue, 19 Feb 2019 09:23:32 GMT): klenik (Tue, 19 Feb 2019 09:24:35 GMT): klenik (Tue, 19 Feb 2019 09:28:14 GMT): klenik (Tue, 19 Feb 2019 09:28:14 GMT): GeorgePaulose (Tue, 19 Feb 2019 10:01:54 GMT): Luxii (Tue, 19 Feb 2019 17:05:53 GMT): klenik (Tue, 19 Feb 2019 18:38:08 GMT): Luxii (Tue, 19 Feb 2019 18:45:53 GMT): GeorgePaulose (Wed, 20 Feb 2019 09:26:15 GMT): hurf (Wed, 20 Feb 2019 10:50:50 GMT): hurf (Wed, 20 Feb 2019 10:52:26 GMT): klenik (Wed, 20 Feb 2019 11:40:33 GMT): wangqq (Thu, 21 Feb 2019 04:02:45 GMT): wangqq (Thu, 21 Feb 2019 04:35:47 GMT): klenik (Thu, 21 Feb 2019 06:07:05 GMT): klenik (Thu, 21 Feb 2019 06:07:05 GMT): wangqq (Thu, 21 Feb 2019 06:21:19 GMT): Luxii (Thu, 21 Feb 2019 06:24:19 GMT): Luxii (Thu, 21 Feb 2019 06:24:19 GMT): Luxii (Thu, 21 Feb 2019 06:25:23 GMT): wangqq (Thu, 21 Feb 2019 06:36:09 GMT): JaiHanani (Thu, 21 Feb 2019 06:48:15 GMT): houqinghui (Thu, 21 Feb 2019 07:07:05 GMT): houqinghui (Thu, 21 Feb 2019 07:07:56 GMT): wangqq (Thu, 21 Feb 2019 07:19:29 GMT): wangqq (Thu, 21 Feb 2019 07:19:43 GMT): GeorgePaulose (Thu, 21 Feb 2019 08:28:10 GMT): Luxii (Thu, 21 Feb 2019 08:53:09 GMT): Tandeep23 (Thu, 21 Feb 2019 09:11:33 GMT): houqinghui (Fri, 22 Feb 2019 01:22:09 GMT): houqinghui (Fri, 22 Feb 2019 01:23:50 GMT): RonaldReagan (Fri, 22 Feb 2019 01:47:37 GMT): wangqq (Fri, 22 Feb 2019 02:07:49 GMT): panyu2 (Fri, 22 Feb 2019 02:52:27 GMT): wangqq (Fri, 22 Feb 2019 02:54:52 GMT): panyu2 (Fri, 22 Feb 2019 02:59:24 GMT): panyu2 (Fri, 22 Feb 2019 02:59:24 GMT): panyu2 (Fri, 22 Feb 2019 06:06:10 GMT): wangqq (Fri, 22 Feb 2019 06:59:19 GMT): Luxii (Fri, 22 Feb 2019 11:24:08 GMT): Luxii (Fri, 22 Feb 2019 11:24:08 GMT): klenik (Fri, 22 Feb 2019 12:21:12 GMT): klenik (Fri, 22 Feb 2019 12:57:13 GMT): hurf (Sat, 23 Feb 2019 12:32:09 GMT): cadaroya (Sat, 23 Feb 2019 19:49:54 GMT): cadaroya (Sat, 23 Feb 2019 19:55:10 GMT): klenik (Sat, 23 Feb 2019 22:30:34 GMT): Sean_Bohan (Sat, 23 Feb 2019 23:15:49 GMT): cadaroya (Sun, 24 Feb 2019 03:56:19 GMT): klenik (Sun, 24 Feb 2019 08:18:25 GMT): cadaroya (Sun, 24 Feb 2019 08:29:47 GMT): klenik (Sun, 24 Feb 2019 08:35:05 GMT): GeorgePaulose (Mon, 25 Feb 2019 12:06:32 GMT): klenik (Mon, 25 Feb 2019 13:16:37 GMT): klenik (Mon, 25 Feb 2019 13:16:37 GMT): RonaldReagan (Tue, 26 Feb 2019 00:55:17 GMT): klenik (Tue, 26 Feb 2019 05:53:27 GMT): houqinghui (Wed, 27 Feb 2019 01:03:52 GMT): RobiHarid (Sun, 03 Mar 2019 20:31:08 GMT): RobiHarid (Sun, 03 Mar 2019 20:31:17 GMT): RobiHarid (Sun, 03 Mar 2019 20:31:56 GMT): RobiHarid (Sun, 03 Mar 2019 20:32:08 GMT): klenik (Mon, 04 Mar 2019 10:16:01 GMT): klenik (Mon, 04 Mar 2019 11:01:52 GMT): panyu2 (Tue, 05 Mar 2019 01:23:25 GMT): capriya (Tue, 05 Mar 2019 06:07:26 GMT): capriya (Tue, 05 Mar 2019 07:44:28 GMT): capriya (Tue, 05 Mar 2019 07:44:28 GMT): capriya (Tue, 05 Mar 2019 07:44:28 GMT): houqinghui (Tue, 05 Mar 2019 08:58:13 GMT): houqinghui (Tue, 05 Mar 2019 08:58:13 GMT): houqinghui (Tue, 05 Mar 2019 08:58:13 GMT): houqinghui (Tue, 05 Mar 2019 08:58:13 GMT): klenik (Tue, 05 Mar 2019 09:04:36 GMT): capriya (Tue, 05 Mar 2019 09:20:32 GMT): klenik (Tue, 05 Mar 2019 10:15:27 GMT): capriya (Tue, 05 Mar 2019 10:27:02 GMT): capriya (Tue, 05 Mar 2019 10:30:30 GMT): HappyThoughts (Tue, 05 Mar 2019 14:54:27 GMT): HappyThoughts (Tue, 05 Mar 2019 14:54:31 GMT): amiec (Tue, 05 Mar 2019 21:42:23 GMT): amiec (Tue, 05 Mar 2019 21:42:41 GMT): amiec (Tue, 05 Mar 2019 21:43:00 GMT): amiec (Tue, 05 Mar 2019 21:43:33 GMT): amiec (Tue, 05 Mar 2019 21:43:42 GMT): amiec (Tue, 05 Mar 2019 21:43:48 GMT): amiec (Tue, 05 Mar 2019 21:46:25 GMT): capriya (Wed, 06 Mar 2019 06:13:31 GMT): capriya (Wed, 06 Mar 2019 06:15:12 GMT): nkl199 (Wed, 06 Mar 2019 09:27:09 GMT): nkl199 (Wed, 06 Mar 2019 09:28:28 GMT): capriya (Wed, 06 Mar 2019 09:56:54 GMT): capriya (Wed, 06 Mar 2019 09:58:40 GMT): nkl199 (Wed, 06 Mar 2019 10:26:51 GMT): capriya (Wed, 06 Mar 2019 10:34:40 GMT): klenik (Wed, 06 Mar 2019 11:03:17 GMT): klenik (Wed, 06 Mar 2019 11:05:08 GMT): fridtjon (Wed, 06 Mar 2019 12:01:01 GMT): klenik (Wed, 06 Mar 2019 12:08:53 GMT): fridtjon (Wed, 06 Mar 2019 12:14:31 GMT): capriya (Wed, 06 Mar 2019 17:02:21 GMT): amiec (Wed, 06 Mar 2019 17:33:01 GMT): amiec (Wed, 06 Mar 2019 17:36:48 GMT): rkrish82 (Thu, 07 Mar 2019 04:01:56 GMT): panyu2 (Thu, 07 Mar 2019 06:36:06 GMT): capriya (Thu, 07 Mar 2019 11:04:31 GMT): capriya (Thu, 07 Mar 2019 11:06:07 GMT): klenik (Thu, 07 Mar 2019 12:13:16 GMT): klenik (Thu, 07 Mar 2019 17:09:58 GMT): mattsauce2 (Fri, 08 Mar 2019 01:56:27 GMT): achn98 (Fri, 08 Mar 2019 02:01:04 GMT): panyu2 (Fri, 08 Mar 2019 02:01:22 GMT): panyu2 (Fri, 08 Mar 2019 02:02:04 GMT): alokkv (Fri, 08 Mar 2019 02:28:00 GMT): rkrish82 (Fri, 08 Mar 2019 02:57:11 GMT): panyu2 (Fri, 08 Mar 2019 03:01:22 GMT): Arucald (Fri, 08 Mar 2019 03:06:04 GMT): cjml1982 (Fri, 08 Mar 2019 03:15:21 GMT): houqinghui (Fri, 08 Mar 2019 05:38:37 GMT): tangross (Fri, 08 Mar 2019 05:55:09 GMT): klenik (Fri, 08 Mar 2019 07:19:19 GMT): klenik (Fri, 08 Mar 2019 07:19:19 GMT): lidengjia (Fri, 08 Mar 2019 07:39:45 GMT): klenik (Fri, 08 Mar 2019 12:03:47 GMT): nkl199 (Fri, 08 Mar 2019 13:46:27 GMT): amiec (Fri, 08 Mar 2019 16:02:24 GMT): MichalRybarczyk (Sun, 10 Mar 2019 19:27:56 GMT): HappyThoughts (Sun, 10 Mar 2019 22:20:24 GMT): houqinghui (Mon, 11 Mar 2019 00:58:51 GMT): houqinghui (Mon, 11 Mar 2019 01:59:18 GMT): RonaldReagan (Mon, 11 Mar 2019 04:28:43 GMT): RonaldReagan (Mon, 11 Mar 2019 04:31:20 GMT): klenik (Mon, 11 Mar 2019 13:27:52 GMT): amiec (Mon, 11 Mar 2019 22:42:41 GMT): FlyingTiger (Tue, 12 Mar 2019 11:45:33 GMT): FlyingTiger (Tue, 12 Mar 2019 11:48:49 GMT): Jasonyou (Wed, 13 Mar 2019 01:18:04 GMT): Jasonyou (Wed, 13 Mar 2019 22:00:06 GMT): Jasonyou (Wed, 13 Mar 2019 22:00:10 GMT): FlyingTiger (Thu, 14 Mar 2019 01:26:33 GMT): Jasonyou (Thu, 14 Mar 2019 03:54:57 GMT): Kazekagegara (Thu, 14 Mar 2019 09:16:11 GMT): Kazekagegara (Thu, 14 Mar 2019 09:18:18 GMT): FlyingTiger (Thu, 14 Mar 2019 09:29:28 GMT): FlyingTiger (Thu, 14 Mar 2019 09:32:08 GMT): Kazekagegara (Thu, 14 Mar 2019 09:50:13 GMT): Kazekagegara (Thu, 14 Mar 2019 09:50:13 GMT): Kazekagegara (Thu, 14 Mar 2019 09:50:13 GMT): Kazekagegara (Thu, 14 Mar 2019 10:38:43 GMT): houqinghui (Thu, 14 Mar 2019 10:42:16 GMT): houqinghui (Thu, 14 Mar 2019 10:42:16 GMT): houqinghui (Thu, 14 Mar 2019 10:42:16 GMT): Kazekagegara (Thu, 14 Mar 2019 10:43:42 GMT): houqinghui (Thu, 14 Mar 2019 10:47:26 GMT): Kazekagegara (Thu, 14 Mar 2019 10:51:52 GMT): Kazekagegara (Thu, 14 Mar 2019 10:51:54 GMT): houqinghui (Thu, 14 Mar 2019 11:18:34 GMT): houqinghui (Thu, 14 Mar 2019 11:18:34 GMT): klenik (Thu, 14 Mar 2019 11:24:51 GMT): Kazekagegara (Thu, 14 Mar 2019 11:25:45 GMT): Kazekagegara (Thu, 14 Mar 2019 11:26:07 GMT): klenik (Thu, 14 Mar 2019 11:28:37 GMT): klenik (Thu, 14 Mar 2019 11:29:28 GMT): Kazekagegara (Thu, 14 Mar 2019 11:30:11 GMT): klenik (Thu, 14 Mar 2019 11:32:46 GMT): klenik (Thu, 14 Mar 2019 11:33:22 GMT): Kazekagegara (Thu, 14 Mar 2019 11:37:56 GMT): FlyingTiger (Thu, 14 Mar 2019 11:40:56 GMT): FlyingTiger (Thu, 14 Mar 2019 12:07:11 GMT): FlyingTiger (Thu, 14 Mar 2019 12:15:12 GMT): Kazekagegara (Thu, 14 Mar 2019 15:56:44 GMT): raymondyegon (Fri, 15 Mar 2019 09:25:57 GMT): PranavBhardwaja67 (Fri, 15 Mar 2019 12:01:23 GMT): PranavBhardwaja67 (Fri, 15 Mar 2019 12:01:38 GMT): PranavBhardwaja67 (Fri, 15 Mar 2019 12:01:44 GMT): PranavBhardwaja67 (Fri, 15 Mar 2019 12:54:36 GMT): pfm (Fri, 15 Mar 2019 17:06:55 GMT): walmon (Sat, 16 Mar 2019 18:06:49 GMT): houqinghui (Mon, 18 Mar 2019 02:19:27 GMT): houqinghui (Mon, 18 Mar 2019 02:35:46 GMT): PranavBhardwaja67 (Mon, 18 Mar 2019 05:28:50 GMT): houqinghui (Mon, 18 Mar 2019 07:31:32 GMT): houqinghui (Mon, 18 Mar 2019 08:41:49 GMT): klenik (Mon, 18 Mar 2019 09:33:20 GMT): sanket1211 (Mon, 18 Mar 2019 12:14:50 GMT): sanket1211 (Mon, 18 Mar 2019 12:15:57 GMT): klenik (Mon, 18 Mar 2019 12:47:18 GMT): PranavBhardwaja67 (Mon, 18 Mar 2019 15:41:55 GMT): pfm (Mon, 18 Mar 2019 23:43:57 GMT): MHBauer (Tue, 19 Mar 2019 01:23:59 GMT): swmdwn (Wed, 20 Mar 2019 05:56:35 GMT): npc0405 (Wed, 20 Mar 2019 09:31:27 GMT): mhs22 (Thu, 21 Mar 2019 05:55:19 GMT): fengbuzhi (Thu, 21 Mar 2019 16:12:01 GMT): HappyThoughts (Thu, 21 Mar 2019 23:20:18 GMT): swmdwn (Fri, 22 Mar 2019 04:58:25 GMT): swmdwn (Fri, 22 Mar 2019 05:01:00 GMT): swmdwn (Fri, 22 Mar 2019 05:05:35 GMT): klenik (Fri, 22 Mar 2019 06:53:14 GMT): houqinghui (Fri, 22 Mar 2019 07:00:32 GMT): nkl199 (Fri, 22 Mar 2019 10:04:28 GMT): whoneedi (Mon, 25 Mar 2019 06:01:25 GMT): lucky114407 (Mon, 25 Mar 2019 08:11:10 GMT): duwenhui (Mon, 25 Mar 2019 10:26:50 GMT): whoneedi (Tue, 26 Mar 2019 08:53:36 GMT): whoneedi (Tue, 26 Mar 2019 08:55:49 GMT): whoneedi (Tue, 26 Mar 2019 08:57:47 GMT): whoneedi (Tue, 26 Mar 2019 08:59:51 GMT): klenik (Tue, 26 Mar 2019 09:14:31 GMT): Silona (Tue, 26 Mar 2019 18:00:34 GMT): fengbuzhi (Tue, 26 Mar 2019 21:15:04 GMT): houqinghui (Wed, 27 Mar 2019 01:06:11 GMT): whoneedi (Wed, 27 Mar 2019 01:55:35 GMT): whoneedi (Wed, 27 Mar 2019 01:56:40 GMT): whoneedi (Wed, 27 Mar 2019 01:56:53 GMT): whoneedi (Wed, 27 Mar 2019 01:56:53 GMT): whoneedi (Wed, 27 Mar 2019 01:57:05 GMT): whoneedi (Wed, 27 Mar 2019 03:30:15 GMT): whoneedi (Wed, 27 Mar 2019 07:29:56 GMT): whoneedi (Wed, 27 Mar 2019 09:32:50 GMT): fengbuzhi (Wed, 27 Mar 2019 16:43:41 GMT): fengbuzhi (Wed, 27 Mar 2019 22:23:42 GMT): amiec (Wed, 27 Mar 2019 22:53:00 GMT): amiec (Wed, 27 Mar 2019 22:56:44 GMT): houqinghui (Thu, 28 Mar 2019 03:00:50 GMT): FlyingTiger (Thu, 28 Mar 2019 03:35:35 GMT): lucky114407 (Thu, 28 Mar 2019 04:36:19 GMT): lucky114407 (Thu, 28 Mar 2019 04:36:21 GMT): lucky114407 (Thu, 28 Mar 2019 04:37:06 GMT): jaswanth (Thu, 28 Mar 2019 05:49:39 GMT): ishanvi.anavkar (Thu, 28 Mar 2019 06:20:09 GMT): lucky114407 (Thu, 28 Mar 2019 09:15:11 GMT): lucky114407 (Thu, 28 Mar 2019 09:15:32 GMT): raphaelbenoit (Thu, 28 Mar 2019 09:39:26 GMT): nkl199 (Thu, 28 Mar 2019 18:03:31 GMT): lucky114407 (Fri, 29 Mar 2019 04:18:39 GMT): lucky114407 (Fri, 29 Mar 2019 04:18:39 GMT): lucky114407 (Fri, 29 Mar 2019 04:18:40 GMT): lucky114407 (Fri, 29 Mar 2019 04:54:14 GMT): narsimplyme (Fri, 29 Mar 2019 07:28:33 GMT): lucky114407 (Fri, 29 Mar 2019 09:31:01 GMT): ishanvi.anavkar (Fri, 29 Mar 2019 14:08:38 GMT): ishanvi.anavkar (Fri, 29 Mar 2019 14:09:04 GMT): nkl199 (Fri, 29 Mar 2019 14:30:23 GMT): houqinghui (Sat, 30 Mar 2019 05:55:17 GMT): VinayakBhat (Sun, 31 Mar 2019 09:28:03 GMT): VinayakBhat (Sun, 31 Mar 2019 09:29:54 GMT): RobiHarid (Sun, 31 Mar 2019 18:59:54 GMT): RobiHarid (Sun, 31 Mar 2019 19:11:25 GMT): RobiHarid (Sun, 31 Mar 2019 19:11:36 GMT): RobiHarid (Sun, 31 Mar 2019 19:11:43 GMT): houqinghui (Mon, 01 Apr 2019 01:31:58 GMT): ishanvi.anavkar (Mon, 01 Apr 2019 06:22:09 GMT): houqinghui (Mon, 01 Apr 2019 06:27:16 GMT): ishanvi.anavkar (Mon, 01 Apr 2019 07:15:35 GMT): ishanvi.anavkar (Mon, 01 Apr 2019 07:15:35 GMT): ishanvi.anavkar (Mon, 01 Apr 2019 07:34:03 GMT): VinayakBhat (Mon, 01 Apr 2019 09:29:23 GMT): VinayakBhat (Mon, 01 Apr 2019 09:30:27 GMT): ishanvi.anavkar (Mon, 01 Apr 2019 10:28:51 GMT): klenik (Mon, 01 Apr 2019 11:57:53 GMT): klenik (Mon, 01 Apr 2019 11:57:53 GMT): VinayakBhat (Mon, 01 Apr 2019 12:59:13 GMT): ishanvi.anavkar (Mon, 01 Apr 2019 12:59:32 GMT): VinayakBhat (Mon, 01 Apr 2019 13:24:34 GMT): VinayakBhat (Mon, 01 Apr 2019 13:24:44 GMT): VinayakBhat (Mon, 01 Apr 2019 13:40:06 GMT): klenik (Mon, 01 Apr 2019 14:01:50 GMT): nkl199 (Mon, 01 Apr 2019 14:02:03 GMT): rohanjulka19 (Mon, 01 Apr 2019 18:18:48 GMT): ZichengWang (Mon, 01 Apr 2019 20:44:04 GMT): stone-ch (Wed, 03 Apr 2019 02:11:40 GMT): kenty (Wed, 03 Apr 2019 09:29:12 GMT): ishanvi.anavkar (Wed, 03 Apr 2019 14:01:56 GMT): nkl199 (Wed, 03 Apr 2019 15:17:48 GMT): narsimplyme (Thu, 04 Apr 2019 02:12:31 GMT): narsimplyme (Thu, 04 Apr 2019 02:13:33 GMT): narsimplyme (Thu, 04 Apr 2019 02:36:57 GMT): klenik (Thu, 04 Apr 2019 03:35:19 GMT): narsimplyme (Thu, 04 Apr 2019 05:48:49 GMT): ishanvi.anavkar (Thu, 04 Apr 2019 06:08:57 GMT): klenik (Thu, 04 Apr 2019 06:20:51 GMT): ishanvi.anavkar (Thu, 04 Apr 2019 06:31:12 GMT): ishanvi.anavkar (Thu, 04 Apr 2019 06:33:07 GMT): narsimplyme (Fri, 05 Apr 2019 02:09:35 GMT): narsimplyme (Fri, 05 Apr 2019 02:12:52 GMT): narsimplyme (Fri, 05 Apr 2019 02:12:52 GMT): klenik (Fri, 05 Apr 2019 10:31:37 GMT): amiec (Fri, 05 Apr 2019 15:46:03 GMT): houqinghui (Mon, 08 Apr 2019 01:17:19 GMT): rarae (Mon, 08 Apr 2019 05:19:23 GMT): rarae (Mon, 08 Apr 2019 05:25:06 GMT): rarae (Mon, 08 Apr 2019 05:25:38 GMT): karanp0987 (Mon, 08 Apr 2019 05:50:10 GMT): karanp0987 (Mon, 08 Apr 2019 06:13:51 GMT): karanp0987 (Mon, 08 Apr 2019 06:14:03 GMT): karanp0987 (Mon, 08 Apr 2019 06:14:18 GMT): karanp0987 (Mon, 08 Apr 2019 06:15:25 GMT): karanp0987 (Mon, 08 Apr 2019 06:16:00 GMT): nkl199 (Mon, 08 Apr 2019 08:34:10 GMT): karanp0987 (Mon, 08 Apr 2019 08:51:26 GMT): nkl199 (Mon, 08 Apr 2019 09:53:51 GMT): nkl199 (Mon, 08 Apr 2019 09:53:51 GMT): Ruben-Joseph-Halder (Tue, 09 Apr 2019 01:50:54 GMT): Cong (Tue, 09 Apr 2019 02:18:30 GMT): rkrish82 (Tue, 09 Apr 2019 02:59:11 GMT): narsimplyme (Tue, 09 Apr 2019 05:38:47 GMT): narsimplyme (Tue, 09 Apr 2019 05:39:04 GMT): karanp0987 (Tue, 09 Apr 2019 14:09:19 GMT): nkl199 (Tue, 09 Apr 2019 14:47:53 GMT): houqinghui (Wed, 10 Apr 2019 00:45:38 GMT): narsimplyme (Wed, 10 Apr 2019 01:20:57 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 03:22:34 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 03:24:16 GMT): narsimplyme (Wed, 10 Apr 2019 04:05:40 GMT): houqinghui (Wed, 10 Apr 2019 04:35:29 GMT): karanp0987 (Wed, 10 Apr 2019 04:37:55 GMT): nwalisundara (Wed, 10 Apr 2019 05:18:24 GMT): nwalisundara (Wed, 10 Apr 2019 05:20:20 GMT): houqinghui (Wed, 10 Apr 2019 06:03:05 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 06:25:59 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 06:27:22 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 06:28:41 GMT): narsimplyme (Wed, 10 Apr 2019 06:34:34 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 06:38:54 GMT): nwalisundara (Wed, 10 Apr 2019 06:42:51 GMT): houqinghui (Wed, 10 Apr 2019 07:25:38 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 08:18:40 GMT): nkl199 (Wed, 10 Apr 2019 08:35:54 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 08:40:40 GMT): nwalisundara (Wed, 10 Apr 2019 08:41:55 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 08:43:18 GMT): nwalisundara (Wed, 10 Apr 2019 08:44:32 GMT): nkl199 (Wed, 10 Apr 2019 08:45:29 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 08:48:29 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 08:48:46 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 08:49:16 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 08:54:19 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 08:59:33 GMT): nkl199 (Wed, 10 Apr 2019 08:59:56 GMT): nkl199 (Wed, 10 Apr 2019 09:01:01 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 09:01:35 GMT): karanp0987 (Wed, 10 Apr 2019 09:05:45 GMT): karanp0987 (Wed, 10 Apr 2019 09:06:05 GMT): nkl199 (Wed, 10 Apr 2019 09:08:33 GMT): houqinghui (Wed, 10 Apr 2019 10:20:15 GMT): houqinghui (Wed, 10 Apr 2019 10:22:47 GMT): karanp0987 (Wed, 10 Apr 2019 10:25:44 GMT): houqinghui (Wed, 10 Apr 2019 10:55:13 GMT): nwalisundara (Wed, 10 Apr 2019 11:52:25 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 13:17:21 GMT): Ruben-Joseph-Halder (Wed, 10 Apr 2019 13:20:41 GMT): vkblue (Wed, 10 Apr 2019 13:37:51 GMT): klenik (Wed, 10 Apr 2019 17:53:08 GMT): Ruben-Joseph-Halder (Thu, 11 Apr 2019 00:52:48 GMT): Ruben-Joseph-Halder (Thu, 11 Apr 2019 01:06:45 GMT): Ruben-Joseph-Halder (Thu, 11 Apr 2019 01:15:44 GMT): nkl199 (Thu, 11 Apr 2019 08:39:45 GMT): Ruben-Joseph-Halder (Mon, 15 Apr 2019 02:05:43 GMT): Ruben-Joseph-Halder (Mon, 15 Apr 2019 02:06:09 GMT): Ruben-Joseph-Halder (Mon, 15 Apr 2019 02:07:02 GMT): houqinghui (Mon, 15 Apr 2019 02:19:59 GMT): houqinghui (Mon, 15 Apr 2019 02:21:30 GMT): Ruben-Joseph-Halder (Mon, 15 Apr 2019 02:27:29 GMT): RonaldReagan (Mon, 15 Apr 2019 12:15:29 GMT): RonaldReagan (Mon, 15 Apr 2019 12:15:29 GMT): RonaldReagan (Mon, 15 Apr 2019 12:15:29 GMT): RonaldReagan (Mon, 15 Apr 2019 12:17:32 GMT): klenik (Mon, 15 Apr 2019 12:31:44 GMT): rkrish82 (Mon, 15 Apr 2019 16:56:04 GMT): rkrish82 (Mon, 15 Apr 2019 16:56:07 GMT): klenik (Mon, 15 Apr 2019 19:27:15 GMT): JeffreyDing (Tue, 16 Apr 2019 00:13:33 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 03:02:57 GMT): rkrish82 (Tue, 16 Apr 2019 04:57:55 GMT): rkrish82 (Tue, 16 Apr 2019 04:59:01 GMT): rkrish82 (Tue, 16 Apr 2019 05:00:02 GMT): klenik (Tue, 16 Apr 2019 05:17:47 GMT): RonaldReagan (Tue, 16 Apr 2019 05:18:53 GMT): RonaldReagan (Tue, 16 Apr 2019 05:18:53 GMT): klenik (Tue, 16 Apr 2019 05:43:29 GMT): klenik (Tue, 16 Apr 2019 05:45:16 GMT): RonaldReagan (Tue, 16 Apr 2019 05:49:47 GMT): RonaldReagan (Tue, 16 Apr 2019 05:49:47 GMT): rkrish82 (Tue, 16 Apr 2019 06:59:09 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 07:09:43 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 07:10:04 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 07:12:20 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 07:14:03 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 07:16:29 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 07:17:15 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 07:17:22 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 07:33:44 GMT): houqinghui (Tue, 16 Apr 2019 07:50:17 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 07:54:35 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 07:56:59 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 08:09:42 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 08:11:01 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 08:11:34 GMT): Ruben-Joseph-Halder (Tue, 16 Apr 2019 08:12:01 GMT): rkrish82 (Tue, 16 Apr 2019 08:35:17 GMT): rkrish82 (Tue, 16 Apr 2019 08:35:18 GMT): klenik (Tue, 16 Apr 2019 09:22:45 GMT): Ruben-Joseph-Halder (Wed, 17 Apr 2019 02:48:59 GMT): Ruben-Joseph-Halder (Wed, 17 Apr 2019 02:50:15 GMT): nkl199 (Wed, 17 Apr 2019 08:14:08 GMT): nkl199 (Wed, 17 Apr 2019 08:14:08 GMT): nkl199 (Wed, 17 Apr 2019 08:14:08 GMT): nkl199 (Wed, 17 Apr 2019 08:14:08 GMT): RobiHarid (Wed, 17 Apr 2019 12:34:19 GMT): RobiHarid (Wed, 17 Apr 2019 12:34:22 GMT): KameshPalani (Wed, 17 Apr 2019 12:50:59 GMT): MattWilson8 (Wed, 17 Apr 2019 18:57:36 GMT): MattWilson8 (Wed, 17 Apr 2019 19:04:29 GMT): MattWilson8 (Wed, 17 Apr 2019 19:06:46 GMT): klenik (Wed, 17 Apr 2019 20:54:07 GMT): houqinghui (Thu, 18 Apr 2019 00:42:30 GMT): MattWilson8 (Thu, 18 Apr 2019 08:33:15 GMT): ishanvi.anavkar (Thu, 18 Apr 2019 11:32:23 GMT): ishanvi.anavkar (Thu, 18 Apr 2019 11:32:23 GMT): klenik (Thu, 18 Apr 2019 12:12:48 GMT): amiec (Thu, 18 Apr 2019 22:39:58 GMT): RonaldReagan (Fri, 19 Apr 2019 07:39:10 GMT): RonaldReagan (Fri, 19 Apr 2019 07:39:10 GMT): RonaldReagan (Fri, 19 Apr 2019 07:39:10 GMT): RonaldReagan (Fri, 19 Apr 2019 08:18:30 GMT): klenik (Fri, 19 Apr 2019 08:41:03 GMT): klenik (Fri, 19 Apr 2019 08:41:43 GMT): RonaldReagan (Fri, 19 Apr 2019 08:50:22 GMT): FlyingTiger (Sat, 20 Apr 2019 06:17:26 GMT): shekharrajak (Sun, 21 Apr 2019 13:14:48 GMT): shekharrajak (Sun, 21 Apr 2019 13:19:02 GMT): RonaldReagan (Tue, 23 Apr 2019 10:13:53 GMT): RonaldReagan (Tue, 23 Apr 2019 10:13:53 GMT): RonaldReagan (Tue, 23 Apr 2019 10:14:28 GMT): ishanvi.anavkar (Tue, 23 Apr 2019 14:20:25 GMT): ishanvi.anavkar (Tue, 23 Apr 2019 14:21:27 GMT): julient (Tue, 23 Apr 2019 16:29:31 GMT): narsimplyme (Wed, 24 Apr 2019 01:01:44 GMT): Silona (Wed, 24 Apr 2019 02:09:47 GMT): klenik (Wed, 24 Apr 2019 06:09:45 GMT): shekharrajak (Wed, 24 Apr 2019 08:01:09 GMT): ishanvi.anavkar (Wed, 24 Apr 2019 12:07:10 GMT): ishanvi.anavkar (Wed, 24 Apr 2019 12:09:32 GMT): amiec (Wed, 24 Apr 2019 22:42:48 GMT): amiec (Wed, 24 Apr 2019 22:44:13 GMT): narsimplyme (Thu, 25 Apr 2019 06:50:39 GMT): narsimplyme (Thu, 25 Apr 2019 06:50:39 GMT): julient (Thu, 25 Apr 2019 08:22:59 GMT): julient (Thu, 25 Apr 2019 08:22:59 GMT): julient (Thu, 25 Apr 2019 11:15:56 GMT): julient (Thu, 25 Apr 2019 11:15:56 GMT): julient (Thu, 25 Apr 2019 11:15:56 GMT): julient (Thu, 25 Apr 2019 11:15:56 GMT): houqinghui (Thu, 25 Apr 2019 11:24:27 GMT): houqinghui (Thu, 25 Apr 2019 11:24:27 GMT): julient (Thu, 25 Apr 2019 11:26:01 GMT): julient (Thu, 25 Apr 2019 11:26:01 GMT): julient (Thu, 25 Apr 2019 11:26:01 GMT): julient (Thu, 25 Apr 2019 11:26:34 GMT): houqinghui (Thu, 25 Apr 2019 11:30:44 GMT): houqinghui (Thu, 25 Apr 2019 11:38:01 GMT): julient (Thu, 25 Apr 2019 11:40:21 GMT): julient (Thu, 25 Apr 2019 11:40:21 GMT): ishanvi.anavkar (Fri, 26 Apr 2019 06:22:37 GMT): klenik (Fri, 26 Apr 2019 12:36:46 GMT): amiec (Sat, 27 Apr 2019 02:22:39 GMT): jarvis26 (Sat, 27 Apr 2019 08:00:59 GMT): houqinghui (Sun, 28 Apr 2019 06:00:17 GMT): houqinghui (Sun, 28 Apr 2019 06:04:02 GMT): JulianSolarte (Mon, 29 Apr 2019 01:46:53 GMT): jarvis26 (Mon, 29 Apr 2019 08:35:52 GMT): jarvis26 (Mon, 29 Apr 2019 08:35:52 GMT): jarvis26 (Mon, 29 Apr 2019 08:35:52 GMT): houqinghui (Tue, 30 Apr 2019 01:20:59 GMT): jarvis26 (Tue, 30 Apr 2019 06:15:03 GMT): RonaldReagan (Tue, 30 Apr 2019 06:27:49 GMT): klenik (Tue, 30 Apr 2019 07:08:21 GMT): houqinghui (Tue, 30 Apr 2019 07:08:42 GMT): jarvis26 (Tue, 30 Apr 2019 08:33:59 GMT): jarvis26 (Tue, 30 Apr 2019 08:33:59 GMT): russanto (Wed, 01 May 2019 20:27:25 GMT): russanto (Wed, 01 May 2019 20:30:34 GMT): nkl199 (Thu, 02 May 2019 09:28:44 GMT): RonaldReagan (Thu, 02 May 2019 09:31:54 GMT): klenik (Thu, 02 May 2019 11:09:39 GMT): JenishBajracharya (Fri, 03 May 2019 05:25:47 GMT): AYUSHIAGARWAL (Sun, 12 May 2019 13:55:23 GMT): AYUSHIAGARWAL (Sun, 12 May 2019 14:02:19 GMT): houqinghui (Mon, 13 May 2019 02:21:16 GMT): Luxii (Mon, 13 May 2019 05:15:21 GMT): AYUSHIAGARWAL (Mon, 13 May 2019 09:53:09 GMT): houqinghui (Tue, 14 May 2019 04:39:44 GMT): ishanvi.anavkar (Thu, 16 May 2019 04:57:12 GMT): houqinghui (Thu, 16 May 2019 06:00:30 GMT): nimaafraz (Thu, 16 May 2019 08:31:27 GMT): raj_shekhar (Thu, 16 May 2019 11:52:27 GMT): AYUSHIAGARWAL (Fri, 17 May 2019 12:11:05 GMT): klenik (Fri, 17 May 2019 12:34:04 GMT): AYUSHIAGARWAL (Fri, 17 May 2019 12:37:42 GMT): AYUSHIAGARWAL (Fri, 17 May 2019 12:37:42 GMT): AYUSHIAGARWAL (Fri, 17 May 2019 12:37:42 GMT): klenik (Fri, 17 May 2019 12:39:50 GMT): AYUSHIAGARWAL (Fri, 17 May 2019 12:43:32 GMT): klenik (Fri, 17 May 2019 12:48:21 GMT): AYUSHIAGARWAL (Fri, 17 May 2019 12:50:01 GMT): AYUSHIAGARWAL (Fri, 17 May 2019 12:50:01 GMT): raj_shekhar (Mon, 20 May 2019 05:28:51 GMT): knagware9 (Mon, 20 May 2019 06:58:01 GMT): raj_shekhar (Mon, 20 May 2019 06:59:49 GMT): raj_shekhar (Mon, 20 May 2019 06:59:49 GMT): knagware9 (Mon, 20 May 2019 07:25:42 GMT): raj_shekhar (Mon, 20 May 2019 07:28:56 GMT): ishanvi.anavkar (Mon, 20 May 2019 08:23:53 GMT): ishanvi.anavkar (Mon, 20 May 2019 08:25:03 GMT): ishanvi.anavkar (Mon, 20 May 2019 08:28:18 GMT): jarvis26 (Mon, 20 May 2019 08:54:07 GMT): RonaldReagan (Mon, 20 May 2019 09:29:19 GMT): houqinghui (Mon, 20 May 2019 09:38:57 GMT): houqinghui (Mon, 20 May 2019 09:47:48 GMT): houqinghui (Mon, 20 May 2019 09:54:15 GMT): houqinghui (Mon, 20 May 2019 09:59:58 GMT): klenik (Mon, 20 May 2019 12:58:29 GMT): klenik (Mon, 20 May 2019 13:01:14 GMT): AYUSHIAGARWAL (Mon, 20 May 2019 18:47:03 GMT): houqinghui (Tue, 21 May 2019 02:17:33 GMT): houqinghui (Tue, 21 May 2019 02:20:21 GMT): nimaafraz (Tue, 21 May 2019 16:35:45 GMT): klenik (Tue, 21 May 2019 21:04:13 GMT): klenik (Tue, 21 May 2019 21:05:02 GMT): nimaafraz (Wed, 22 May 2019 07:01:24 GMT): RonaldReagan (Thu, 23 May 2019 06:53:04 GMT): nkl199 (Thu, 23 May 2019 08:26:55 GMT): RonaldReagan (Thu, 23 May 2019 09:03:31 GMT): nkl199 (Thu, 23 May 2019 09:08:27 GMT): nkl199 (Thu, 23 May 2019 09:27:27 GMT): RonaldReagan (Thu, 23 May 2019 09:42:09 GMT): klenik (Thu, 23 May 2019 10:13:36 GMT): klenik (Thu, 23 May 2019 10:14:18 GMT): RobertDiebels (Fri, 24 May 2019 09:33:53 GMT): RobertDiebels (Fri, 24 May 2019 09:34:11 GMT): RobertDiebels (Fri, 24 May 2019 09:34:40 GMT): RobertDiebels (Fri, 24 May 2019 09:35:02 GMT): nkl199 (Fri, 24 May 2019 09:37:56 GMT): RobertDiebels (Fri, 24 May 2019 09:40:01 GMT): RobertDiebels (Fri, 24 May 2019 09:40:34 GMT): nkl199 (Fri, 24 May 2019 09:41:18 GMT): knagware9 (Fri, 24 May 2019 09:41:31 GMT): klenik (Fri, 24 May 2019 09:49:53 GMT): jarvis26 (Mon, 27 May 2019 06:04:12 GMT): houqinghui (Mon, 27 May 2019 07:06:39 GMT): houqinghui (Mon, 27 May 2019 07:06:39 GMT): jarvis26 (Mon, 27 May 2019 07:08:10 GMT): houqinghui (Mon, 27 May 2019 07:40:54 GMT): klenik (Mon, 27 May 2019 11:41:58 GMT): raj_shekhar (Mon, 27 May 2019 12:19:16 GMT): raj_shekhar (Mon, 27 May 2019 12:19:33 GMT): raj_shekhar (Mon, 27 May 2019 12:19:52 GMT): klenik (Mon, 27 May 2019 14:16:56 GMT): julient (Mon, 27 May 2019 14:58:40 GMT): klenik (Mon, 27 May 2019 15:10:48 GMT): julient (Mon, 27 May 2019 16:35:10 GMT): julient (Mon, 27 May 2019 16:35:38 GMT): julient (Mon, 27 May 2019 16:36:31 GMT): klenik (Mon, 27 May 2019 16:49:28 GMT): julient (Mon, 27 May 2019 18:22:06 GMT): houqinghui (Tue, 28 May 2019 01:25:15 GMT): raj_shekhar (Tue, 28 May 2019 10:57:34 GMT): raj_shekhar (Tue, 28 May 2019 11:19:02 GMT): klenik (Tue, 28 May 2019 11:23:38 GMT): raj_shekhar (Tue, 28 May 2019 11:27:34 GMT): RobertDiebels (Tue, 28 May 2019 12:53:44 GMT): RobertDiebels (Tue, 28 May 2019 12:54:59 GMT): RobertDiebels (Tue, 28 May 2019 12:57:12 GMT): RobertDiebels (Tue, 28 May 2019 13:00:29 GMT): RobertDiebels (Tue, 28 May 2019 13:03:00 GMT): RobertDiebels (Tue, 28 May 2019 13:03:00 GMT): RobertDiebels (Tue, 28 May 2019 13:04:43 GMT): RobertDiebels (Tue, 28 May 2019 13:05:37 GMT): RobertDiebels (Tue, 28 May 2019 13:09:18 GMT): RobertDiebels (Tue, 28 May 2019 13:15:35 GMT): RobertDiebels (Tue, 28 May 2019 13:17:24 GMT): JeffreyDing (Wed, 29 May 2019 01:12:11 GMT): houqinghui (Wed, 29 May 2019 01:30:51 GMT): Jaline (Wed, 29 May 2019 07:15:17 GMT): raj_shekhar (Wed, 29 May 2019 07:18:19 GMT): raj_shekhar (Wed, 29 May 2019 07:18:19 GMT): raj_shekhar (Wed, 29 May 2019 07:18:19 GMT): raj_shekhar (Wed, 29 May 2019 07:18:19 GMT): klenik (Wed, 29 May 2019 07:44:51 GMT): RobertDiebels (Wed, 29 May 2019 08:40:22 GMT): raj_shekhar (Wed, 29 May 2019 12:00:58 GMT): emugnier (Wed, 29 May 2019 13:03:15 GMT): emugnier (Wed, 29 May 2019 13:03:18 GMT): JustAnotherNewbieInFabric (Wed, 29 May 2019 14:35:45 GMT): JustAnotherNewbieInFabric (Wed, 29 May 2019 14:35:46 GMT): klenik (Wed, 29 May 2019 14:48:18 GMT): klenik (Wed, 29 May 2019 14:52:25 GMT): RobertDiebels (Thu, 30 May 2019 11:56:15 GMT): nimaafraz (Thu, 30 May 2019 17:41:31 GMT): klenik (Thu, 30 May 2019 21:15:47 GMT): RonaldReagan (Fri, 31 May 2019 10:33:52 GMT): RonaldReagan (Fri, 31 May 2019 10:33:52 GMT): raj_shekhar (Fri, 31 May 2019 11:28:26 GMT): PonmudiK (Fri, 31 May 2019 12:55:11 GMT): klenik (Fri, 31 May 2019 13:01:57 GMT): nkl199 (Fri, 31 May 2019 13:01:58 GMT): klenik (Fri, 31 May 2019 13:04:10 GMT): raj_shekhar (Sat, 01 Jun 2019 17:01:37 GMT): RonaldReagan (Mon, 03 Jun 2019 02:58:06 GMT): klenik (Mon, 03 Jun 2019 06:14:54 GMT): jarvis26 (Mon, 03 Jun 2019 11:18:59 GMT): jarvis26 (Mon, 03 Jun 2019 11:25:51 GMT): jarvis26 (Mon, 03 Jun 2019 11:25:51 GMT): klenik (Mon, 03 Jun 2019 11:57:33 GMT): JustAnotherNewbieInFabric (Tue, 04 Jun 2019 08:01:49 GMT): icarrascol (Thu, 06 Jun 2019 22:10:14 GMT): icarrascol (Thu, 06 Jun 2019 22:10:14 GMT): klenik (Fri, 07 Jun 2019 06:06:17 GMT): klenik (Fri, 07 Jun 2019 06:06:17 GMT): RonaldReagan (Fri, 07 Jun 2019 07:37:06 GMT): RonaldReagan (Fri, 07 Jun 2019 07:37:18 GMT): klenik (Fri, 07 Jun 2019 08:11:50 GMT): klenik (Fri, 07 Jun 2019 08:15:11 GMT): RonaldReagan (Fri, 07 Jun 2019 08:32:59 GMT): RonaldReagan (Fri, 07 Jun 2019 08:34:22 GMT): RonaldReagan (Fri, 07 Jun 2019 08:40:34 GMT): klenik (Fri, 07 Jun 2019 10:15:02 GMT): klenik (Fri, 07 Jun 2019 10:45:59 GMT): klenik (Fri, 07 Jun 2019 10:47:56 GMT): klenik (Fri, 07 Jun 2019 10:49:51 GMT): klenik (Fri, 07 Jun 2019 10:49:51 GMT): RonaldReagan (Fri, 07 Jun 2019 11:53:39 GMT): klenik (Sat, 08 Jun 2019 06:54:44 GMT): patelkishan (Sat, 08 Jun 2019 07:37:07 GMT): patelkishan (Sat, 08 Jun 2019 07:37:08 GMT): klenik (Sat, 08 Jun 2019 15:26:40 GMT): rkrish82 (Mon, 10 Jun 2019 06:28:17 GMT): rkrish82 (Mon, 10 Jun 2019 06:28:57 GMT): jarvis26 (Mon, 10 Jun 2019 06:37:48 GMT): rkrish82 (Mon, 10 Jun 2019 07:07:54 GMT): klenik (Mon, 10 Jun 2019 12:33:15 GMT): rkrish82 (Mon, 10 Jun 2019 12:47:01 GMT): nkl199 (Mon, 10 Jun 2019 13:31:55 GMT): icarrascol (Mon, 10 Jun 2019 21:31:37 GMT): houqinghui (Tue, 11 Jun 2019 05:53:30 GMT): julient (Tue, 11 Jun 2019 07:16:22 GMT): icarrascol (Tue, 11 Jun 2019 15:04:37 GMT): houqinghui (Wed, 12 Jun 2019 05:55:53 GMT): klenik (Wed, 12 Jun 2019 08:31:27 GMT): julient (Wed, 12 Jun 2019 09:13:56 GMT): klenik (Wed, 12 Jun 2019 10:06:47 GMT): YassineAmor (Wed, 12 Jun 2019 14:38:20 GMT): JulianSolarte (Wed, 12 Jun 2019 14:40:30 GMT): JulianSolarte (Wed, 12 Jun 2019 14:40:53 GMT): JulianSolarte (Wed, 12 Jun 2019 14:43:20 GMT): JulianSolarte (Wed, 12 Jun 2019 14:43:34 GMT): nkl199 (Wed, 12 Jun 2019 15:12:42 GMT): JulianSolarte (Wed, 12 Jun 2019 15:15:56 GMT): nkl199 (Wed, 12 Jun 2019 15:17:04 GMT): nkl199 (Wed, 12 Jun 2019 15:17:29 GMT): JulianSolarte (Wed, 12 Jun 2019 15:20:56 GMT): JulianSolarte (Wed, 12 Jun 2019 15:24:49 GMT): nkl199 (Wed, 12 Jun 2019 15:26:14 GMT): JulianSolarte (Wed, 12 Jun 2019 15:28:13 GMT): nkl199 (Thu, 13 Jun 2019 08:31:22 GMT): klenik (Thu, 13 Jun 2019 09:45:10 GMT): julient (Thu, 13 Jun 2019 10:15:32 GMT): julient (Thu, 13 Jun 2019 10:15:50 GMT): julient (Thu, 13 Jun 2019 10:15:52 GMT): julient (Thu, 13 Jun 2019 10:18:04 GMT): klenik (Thu, 13 Jun 2019 10:23:57 GMT): klenik (Thu, 13 Jun 2019 10:24:54 GMT): klenik (Thu, 13 Jun 2019 10:25:58 GMT): julient (Thu, 13 Jun 2019 10:31:59 GMT): julient (Thu, 13 Jun 2019 10:32:08 GMT): julient (Thu, 13 Jun 2019 10:32:22 GMT): julient (Thu, 13 Jun 2019 10:32:27 GMT): julient (Thu, 13 Jun 2019 10:32:49 GMT): julient (Thu, 13 Jun 2019 10:33:11 GMT): julient (Thu, 13 Jun 2019 10:34:03 GMT): julient (Thu, 13 Jun 2019 10:34:42 GMT): klenik (Thu, 13 Jun 2019 10:36:46 GMT): klenik (Thu, 13 Jun 2019 10:37:18 GMT): julient (Thu, 13 Jun 2019 11:39:54 GMT): klenik (Thu, 13 Jun 2019 11:41:09 GMT): julient (Fri, 14 Jun 2019 06:12:44 GMT): patelkishan (Fri, 14 Jun 2019 06:38:58 GMT): patelkishan (Fri, 14 Jun 2019 06:38:58 GMT): patelkishan (Fri, 14 Jun 2019 06:39:29 GMT): nkl199 (Fri, 14 Jun 2019 11:07:42 GMT): julient (Sat, 15 Jun 2019 14:27:17 GMT): julient (Sat, 15 Jun 2019 14:27:17 GMT): patelkishan (Sat, 15 Jun 2019 14:59:17 GMT): RonaldReagan (Mon, 17 Jun 2019 04:57:12 GMT): RonaldReagan (Mon, 17 Jun 2019 04:57:12 GMT): RonaldReagan (Mon, 17 Jun 2019 04:57:12 GMT): RonaldReagan (Mon, 17 Jun 2019 04:57:28 GMT): RonaldReagan (Mon, 17 Jun 2019 05:06:39 GMT): RonaldReagan (Mon, 17 Jun 2019 05:10:05 GMT): RonaldReagan (Mon, 17 Jun 2019 07:07:29 GMT): RonaldReagan (Mon, 17 Jun 2019 07:09:00 GMT): julient (Mon, 17 Jun 2019 07:55:01 GMT): icarrascol (Mon, 17 Jun 2019 14:44:01 GMT): nkl199 (Mon, 17 Jun 2019 14:45:29 GMT): icarrascol (Mon, 17 Jun 2019 15:54:28 GMT): patelkishan (Tue, 18 Jun 2019 07:15:22 GMT): houqinghui (Wed, 19 Jun 2019 09:16:43 GMT): patelkishan (Wed, 19 Jun 2019 09:36:53 GMT): JulianSolarte (Wed, 19 Jun 2019 20:55:45 GMT): JulianSolarte (Wed, 19 Jun 2019 20:57:07 GMT): JulianSolarte (Wed, 19 Jun 2019 21:01:53 GMT): houqinghui (Thu, 20 Jun 2019 01:29:47 GMT): houqinghui (Thu, 20 Jun 2019 01:29:47 GMT): houqinghui (Thu, 20 Jun 2019 01:37:36 GMT): houqinghui (Thu, 20 Jun 2019 01:37:36 GMT): patelkishan (Thu, 20 Jun 2019 04:02:30 GMT): patelkishan (Thu, 20 Jun 2019 06:11:57 GMT): patelkishan (Thu, 20 Jun 2019 06:12:16 GMT): patelkishan (Thu, 20 Jun 2019 06:12:29 GMT): patelkishan (Thu, 20 Jun 2019 06:12:39 GMT): patelkishan (Thu, 20 Jun 2019 07:21:22 GMT): houqinghui (Thu, 20 Jun 2019 09:41:06 GMT): JulianSolarte (Thu, 20 Jun 2019 16:40:31 GMT): JulianSolarte (Thu, 20 Jun 2019 16:40:32 GMT): JulianSolarte (Thu, 20 Jun 2019 21:47:03 GMT): JulianSolarte (Thu, 20 Jun 2019 22:21:31 GMT): JulianSolarte (Thu, 20 Jun 2019 22:21:48 GMT): JulianSolarte (Thu, 20 Jun 2019 22:22:03 GMT): JulianSolarte (Thu, 20 Jun 2019 22:22:11 GMT): PB4 (Fri, 21 Jun 2019 02:58:33 GMT): PB4 (Fri, 21 Jun 2019 03:00:48 GMT): PB4 (Fri, 21 Jun 2019 03:01:49 GMT): PB4 (Fri, 21 Jun 2019 07:24:23 GMT): PB4 (Fri, 21 Jun 2019 07:24:23 GMT): nkl199 (Fri, 21 Jun 2019 09:15:27 GMT): klenik (Fri, 21 Jun 2019 11:41:04 GMT): JulianSolarte (Fri, 21 Jun 2019 15:13:39 GMT): yiyxio (Sun, 23 Jun 2019 09:16:26 GMT): yiyxio (Sun, 23 Jun 2019 09:16:27 GMT): patelkishan (Mon, 24 Jun 2019 10:57:16 GMT): patelkishan (Mon, 24 Jun 2019 10:57:16 GMT): patelkishan (Mon, 24 Jun 2019 11:34:40 GMT): nkl199 (Mon, 24 Jun 2019 11:53:16 GMT): patelkishan (Mon, 24 Jun 2019 11:58:04 GMT): patelkishan (Mon, 24 Jun 2019 11:58:04 GMT): nkl199 (Mon, 24 Jun 2019 12:04:27 GMT): patelkishan (Mon, 24 Jun 2019 12:07:15 GMT): nkl199 (Mon, 24 Jun 2019 12:09:33 GMT): julient (Mon, 24 Jun 2019 13:28:41 GMT): julient (Mon, 24 Jun 2019 13:30:16 GMT): icarrascol (Mon, 24 Jun 2019 17:28:02 GMT): patelkishan (Tue, 25 Jun 2019 06:02:33 GMT): PB4 (Tue, 25 Jun 2019 07:52:58 GMT): klenik (Tue, 25 Jun 2019 08:33:03 GMT): klenik (Tue, 25 Jun 2019 08:34:38 GMT): PB4 (Tue, 25 Jun 2019 08:39:22 GMT): patelkishan (Tue, 25 Jun 2019 11:14:43 GMT): klenik (Tue, 25 Jun 2019 11:23:17 GMT): patelkishan (Tue, 25 Jun 2019 11:59:54 GMT): klenik (Tue, 25 Jun 2019 12:36:18 GMT): patelkishan (Tue, 25 Jun 2019 12:39:20 GMT): klenik (Tue, 25 Jun 2019 12:44:40 GMT): icarrascol (Tue, 25 Jun 2019 16:16:32 GMT): icarrascol (Tue, 25 Jun 2019 16:16:32 GMT): icarrascol (Tue, 25 Jun 2019 21:59:14 GMT): klenik (Tue, 25 Jun 2019 22:00:36 GMT): icarrascol (Tue, 25 Jun 2019 22:02:03 GMT): icarrascol (Tue, 25 Jun 2019 22:31:19 GMT): icarrascol (Tue, 25 Jun 2019 22:35:03 GMT): klenik (Wed, 26 Jun 2019 00:47:04 GMT): JulianSolarte (Wed, 26 Jun 2019 03:08:41 GMT): JulianSolarte (Wed, 26 Jun 2019 03:12:02 GMT): JulianSolarte (Wed, 26 Jun 2019 03:14:18 GMT): PB4 (Wed, 26 Jun 2019 08:02:14 GMT): klenik (Wed, 26 Jun 2019 08:09:47 GMT): PB4 (Wed, 26 Jun 2019 08:25:07 GMT): JulianSolarte (Wed, 26 Jun 2019 17:30:30 GMT): icarrascol (Wed, 26 Jun 2019 19:45:47 GMT): klenik (Wed, 26 Jun 2019 19:46:59 GMT): bamboo (Thu, 27 Jun 2019 06:54:09 GMT): marinkovicvlado (Fri, 28 Jun 2019 14:06:35 GMT): marinkovicvlado (Fri, 28 Jun 2019 14:06:36 GMT): marinkovicvlado (Fri, 28 Jun 2019 14:07:13 GMT): marinkovicvlado (Fri, 28 Jun 2019 14:07:46 GMT): marinkovicvlado (Fri, 28 Jun 2019 14:57:41 GMT): marinkovicvlado (Fri, 28 Jun 2019 14:57:41 GMT): marinkovicvlado (Fri, 28 Jun 2019 14:57:48 GMT): nimaafraz (Fri, 28 Jun 2019 15:18:39 GMT): nimaafraz (Fri, 28 Jun 2019 15:18:45 GMT): nimaafraz (Fri, 28 Jun 2019 15:19:49 GMT): nkl199 (Fri, 28 Jun 2019 16:44:52 GMT): nimaafraz (Fri, 28 Jun 2019 16:59:24 GMT): nkl199 (Sat, 29 Jun 2019 06:00:19 GMT): patelkishan (Sat, 29 Jun 2019 06:39:29 GMT): patelkishan (Sat, 29 Jun 2019 06:39:29 GMT): patelkishan (Sat, 29 Jun 2019 12:25:39 GMT): patelkishan (Sat, 29 Jun 2019 12:26:30 GMT): nkl199 (Sun, 30 Jun 2019 07:55:42 GMT): casm3 (Sun, 30 Jun 2019 19:26:44 GMT): casm3 (Sun, 30 Jun 2019 19:26:45 GMT): stone-ch (Mon, 01 Jul 2019 02:26:40 GMT): jeetabhi15 (Mon, 01 Jul 2019 09:51:32 GMT): jeetabhi15 (Mon, 01 Jul 2019 09:51:35 GMT): bamboo (Mon, 01 Jul 2019 10:00:07 GMT): marinkovicvlado (Mon, 01 Jul 2019 12:43:54 GMT): marinkovicvlado (Mon, 01 Jul 2019 13:02:43 GMT): marinkovicvlado (Mon, 01 Jul 2019 13:02:43 GMT): nimaafraz (Tue, 02 Jul 2019 06:58:20 GMT): nimaafraz (Tue, 02 Jul 2019 06:58:21 GMT): AliaksandrLipnitski (Wed, 03 Jul 2019 04:03:08 GMT): AliaksandrLipnitski (Wed, 03 Jul 2019 04:03:12 GMT): AliaksandrLipnitski (Wed, 03 Jul 2019 07:17:22 GMT): marinkovicvlado (Wed, 03 Jul 2019 07:38:56 GMT): AliaksandrLipnitski (Wed, 03 Jul 2019 08:31:44 GMT): AliaksandrLipnitski (Wed, 03 Jul 2019 08:45:25 GMT): casm3 (Wed, 03 Jul 2019 15:18:32 GMT): patelkishan (Wed, 03 Jul 2019 17:40:49 GMT): patelkishan (Wed, 03 Jul 2019 17:40:49 GMT): patelkishan (Wed, 03 Jul 2019 19:58:09 GMT): patelkishan (Wed, 03 Jul 2019 19:58:42 GMT): patelkishan (Thu, 04 Jul 2019 11:50:52 GMT): harsh-98 (Thu, 04 Jul 2019 21:33:38 GMT): harsh-98 (Thu, 04 Jul 2019 21:40:39 GMT): netanyahuyasser (Fri, 05 Jul 2019 13:37:10 GMT): netanyahuyasser (Fri, 05 Jul 2019 13:37:12 GMT): JulianSolarte (Fri, 05 Jul 2019 17:07:28 GMT): JulianSolarte (Fri, 05 Jul 2019 17:13:09 GMT): harsh-98 (Fri, 05 Jul 2019 17:48:39 GMT): harsh-98 (Sat, 06 Jul 2019 08:59:38 GMT): bamboo (Mon, 08 Jul 2019 03:33:42 GMT): himanshuchawla009 (Mon, 08 Jul 2019 09:00:21 GMT): himanshuchawla009 (Mon, 08 Jul 2019 09:00:22 GMT): RahulPatil2 (Mon, 08 Jul 2019 10:59:00 GMT): RahulPatil2 (Mon, 08 Jul 2019 10:59:04 GMT): RahulPatil2 (Mon, 08 Jul 2019 11:12:12 GMT): harsh-98 (Mon, 08 Jul 2019 19:24:21 GMT): RahulPatil2 (Tue, 09 Jul 2019 03:50:31 GMT): RahulPatil2 (Tue, 09 Jul 2019 03:51:21 GMT): klenik (Tue, 09 Jul 2019 09:08:57 GMT): klenik (Tue, 09 Jul 2019 09:14:12 GMT): klenik (Tue, 09 Jul 2019 09:16:21 GMT): klenik (Tue, 09 Jul 2019 09:24:55 GMT): klenik (Tue, 09 Jul 2019 09:26:18 GMT): klenik (Tue, 09 Jul 2019 09:27:25 GMT): klenik (Tue, 09 Jul 2019 09:31:15 GMT): klenik (Tue, 09 Jul 2019 09:35:26 GMT): jeetabhi15 (Tue, 09 Jul 2019 19:24:30 GMT): jeetabhi15 (Tue, 09 Jul 2019 19:25:22 GMT): jeetabhi15 (Tue, 09 Jul 2019 19:25:26 GMT): jeetabhi15 (Tue, 09 Jul 2019 19:27:02 GMT): jeetabhi15 (Tue, 09 Jul 2019 19:27:06 GMT): jeetabhi15 (Tue, 09 Jul 2019 19:53:07 GMT): jeetabhi15 (Tue, 09 Jul 2019 19:55:15 GMT): jeetabhi15 (Tue, 09 Jul 2019 19:56:18 GMT): jeetabhi15 (Tue, 09 Jul 2019 19:56:21 GMT): jeetabhi15 (Tue, 09 Jul 2019 19:56:34 GMT): harsh-98 (Tue, 09 Jul 2019 21:48:36 GMT): harsh-98 (Tue, 09 Jul 2019 21:58:37 GMT): harsh-98 (Tue, 09 Jul 2019 22:02:15 GMT): himanshuchawla009 (Wed, 10 Jul 2019 06:51:43 GMT): himanshuchawla009 (Wed, 10 Jul 2019 06:51:54 GMT): himanshuchawla009 (Wed, 10 Jul 2019 06:52:16 GMT): himanshuchawla009 (Wed, 10 Jul 2019 06:52:58 GMT): himanshuchawla009 (Wed, 10 Jul 2019 06:53:04 GMT): himanshuchawla009 (Wed, 10 Jul 2019 06:53:15 GMT): himanshuchawla009 (Wed, 10 Jul 2019 06:53:35 GMT): himanshuchawla009 (Wed, 10 Jul 2019 06:53:43 GMT): himanshuchawla009 (Wed, 10 Jul 2019 06:54:00 GMT): klenik (Wed, 10 Jul 2019 08:32:29 GMT): klenik (Wed, 10 Jul 2019 08:33:32 GMT): jeetabhi15 (Wed, 10 Jul 2019 08:47:52 GMT): jeetabhi15 (Wed, 10 Jul 2019 09:25:38 GMT): jeetabhi15 (Wed, 10 Jul 2019 09:25:40 GMT): klenik (Wed, 10 Jul 2019 09:30:22 GMT): himanshuchawla009 (Wed, 10 Jul 2019 10:04:10 GMT): himanshuchawla009 (Wed, 10 Jul 2019 10:04:18 GMT): himanshuchawla009 (Wed, 10 Jul 2019 10:04:57 GMT): himanshuchawla009 (Wed, 10 Jul 2019 10:05:24 GMT): himanshuchawla009 (Wed, 10 Jul 2019 10:05:32 GMT): himanshuchawla009 (Wed, 10 Jul 2019 10:06:07 GMT): himanshuchawla009 (Wed, 10 Jul 2019 10:06:32 GMT): klenik (Wed, 10 Jul 2019 10:08:32 GMT): himanshuchawla009 (Wed, 10 Jul 2019 10:11:57 GMT): himanshuchawla009 (Wed, 10 Jul 2019 10:21:08 GMT): himanshuchawla009 (Wed, 10 Jul 2019 10:21:22 GMT): klenik (Wed, 10 Jul 2019 10:21:52 GMT): jeetabhi15 (Wed, 10 Jul 2019 11:36:46 GMT): jeetabhi15 (Wed, 10 Jul 2019 11:36:55 GMT): nimaafraz (Wed, 10 Jul 2019 12:20:41 GMT): klenik (Wed, 10 Jul 2019 12:58:38 GMT): AvinashSingh2 (Wed, 10 Jul 2019 15:18:41 GMT): casm3 (Wed, 10 Jul 2019 22:45:49 GMT): casm3 (Wed, 10 Jul 2019 22:46:13 GMT): himanshuchawla009 (Thu, 11 Jul 2019 06:50:56 GMT): klenik (Thu, 11 Jul 2019 06:56:51 GMT): himanshuchawla009 (Thu, 11 Jul 2019 07:48:49 GMT): klenik (Thu, 11 Jul 2019 07:51:23 GMT): klenik (Thu, 11 Jul 2019 09:03:05 GMT): BAM_Mueller (Thu, 11 Jul 2019 10:43:40 GMT): casm3 (Thu, 11 Jul 2019 10:55:40 GMT): himanshuchawla009 (Thu, 11 Jul 2019 10:58:05 GMT): himanshuchawla009 (Thu, 11 Jul 2019 10:58:07 GMT): himanshuchawla009 (Thu, 11 Jul 2019 10:58:17 GMT): klenik (Thu, 11 Jul 2019 11:00:13 GMT): klenik (Thu, 11 Jul 2019 11:01:59 GMT): casm3 (Thu, 11 Jul 2019 11:12:13 GMT): klenik (Thu, 11 Jul 2019 11:12:31 GMT): casm3 (Thu, 11 Jul 2019 14:38:44 GMT): klenik (Thu, 11 Jul 2019 15:13:57 GMT): klenik (Thu, 11 Jul 2019 15:14:57 GMT): casm3 (Thu, 11 Jul 2019 15:19:29 GMT): klenik (Thu, 11 Jul 2019 15:20:30 GMT): casm3 (Thu, 11 Jul 2019 15:23:14 GMT): klenik (Thu, 11 Jul 2019 15:24:10 GMT): casm3 (Thu, 11 Jul 2019 15:31:00 GMT): klenik (Thu, 11 Jul 2019 20:16:46 GMT): casm3 (Thu, 11 Jul 2019 22:28:22 GMT): klenik (Fri, 12 Jul 2019 09:35:16 GMT): ashwin24aug (Fri, 12 Jul 2019 11:05:30 GMT): ashwin24aug (Fri, 12 Jul 2019 11:05:34 GMT): ashwin24aug (Fri, 12 Jul 2019 11:05:36 GMT): casm3 (Fri, 12 Jul 2019 11:07:04 GMT): ashwin24aug (Fri, 12 Jul 2019 11:07:40 GMT): casm3 (Fri, 12 Jul 2019 11:07:56 GMT): ashwin24aug (Fri, 12 Jul 2019 11:07:56 GMT): ashwin24aug (Fri, 12 Jul 2019 11:08:15 GMT): casm3 (Fri, 12 Jul 2019 11:11:29 GMT): klenik (Fri, 12 Jul 2019 11:13:54 GMT): klenik (Fri, 12 Jul 2019 11:15:57 GMT): ashwin24aug (Fri, 12 Jul 2019 12:04:52 GMT): casm3 (Fri, 12 Jul 2019 13:52:09 GMT): invaliduser (Sat, 13 Jul 2019 13:27:03 GMT): himanshuchawla009 (Sun, 14 Jul 2019 12:59:16 GMT): klenik (Tue, 16 Jul 2019 09:34:31 GMT): klenik (Tue, 16 Jul 2019 09:36:57 GMT): snakejerusalem (Wed, 17 Jul 2019 21:04:25 GMT): snakejerusalem (Wed, 17 Jul 2019 21:04:27 GMT): snakejerusalem (Wed, 17 Jul 2019 21:04:27 GMT): nkl199 (Thu, 18 Jul 2019 08:18:03 GMT): purulalwani (Thu, 18 Jul 2019 10:29:38 GMT): purulalwani (Thu, 18 Jul 2019 10:29:39 GMT): japidei (Thu, 18 Jul 2019 11:57:43 GMT): snakejerusalem (Thu, 18 Jul 2019 14:24:04 GMT): snakejerusalem (Thu, 18 Jul 2019 15:25:08 GMT): nkl199 (Fri, 19 Jul 2019 06:29:58 GMT): nkl199 (Fri, 19 Jul 2019 06:33:28 GMT): snakejerusalem (Fri, 19 Jul 2019 14:09:19 GMT): snakejerusalem (Fri, 19 Jul 2019 14:14:05 GMT): snakejerusalem (Fri, 19 Jul 2019 14:14:05 GMT): snakejerusalem (Fri, 19 Jul 2019 14:14:05 GMT): snakejerusalem (Fri, 19 Jul 2019 14:14:55 GMT): snakejerusalem (Fri, 19 Jul 2019 14:20:40 GMT): snakejerusalem (Fri, 19 Jul 2019 14:20:40 GMT): bbonetee (Fri, 19 Jul 2019 14:21:05 GMT): bbonetee (Fri, 19 Jul 2019 14:21:10 GMT): RiccardoBonesi (Mon, 22 Jul 2019 10:03:12 GMT): RiccardoBonesi (Mon, 22 Jul 2019 10:03:18 GMT): RiccardoBonesi (Mon, 22 Jul 2019 10:03:18 GMT): nkl199 (Mon, 22 Jul 2019 10:25:25 GMT): nkl199 (Mon, 22 Jul 2019 10:26:07 GMT): kalyan.aruru (Mon, 22 Jul 2019 10:39:30 GMT): kalyan.aruru (Mon, 22 Jul 2019 10:44:25 GMT): RiccardoBonesi (Mon, 22 Jul 2019 12:16:19 GMT): nkl199 (Mon, 22 Jul 2019 12:28:15 GMT): nkl199 (Mon, 22 Jul 2019 12:29:42 GMT): RiccardoBonesi (Mon, 22 Jul 2019 12:31:56 GMT): nkl199 (Mon, 22 Jul 2019 12:36:22 GMT): nkl199 (Mon, 22 Jul 2019 12:36:33 GMT): nkl199 (Mon, 22 Jul 2019 13:02:23 GMT): RiccardoBonesi (Mon, 22 Jul 2019 14:11:02 GMT): nkl199 (Mon, 22 Jul 2019 14:23:45 GMT): bbonetee (Mon, 22 Jul 2019 14:24:48 GMT): nkl199 (Mon, 22 Jul 2019 14:25:35 GMT): KindleBitSoln (Tue, 23 Jul 2019 08:07:28 GMT): KindleBitSoln (Tue, 23 Jul 2019 08:07:29 GMT): nkl199 (Tue, 23 Jul 2019 08:28:52 GMT): sstone1 (Tue, 23 Jul 2019 09:31:52 GMT): KindleBitSoln (Tue, 23 Jul 2019 10:28:25 GMT): KindleBitSoln (Tue, 23 Jul 2019 10:28:25 GMT): KindleBitSoln (Tue, 23 Jul 2019 10:28:46 GMT): HyperledgerGirl (Tue, 23 Jul 2019 15:40:17 GMT): KindleBitSoln (Wed, 24 Jul 2019 06:37:49 GMT): nkl199 (Wed, 24 Jul 2019 07:20:48 GMT): KindleBitSoln (Thu, 25 Jul 2019 05:46:16 GMT): nkl199 (Thu, 25 Jul 2019 16:23:02 GMT): RiccardoBonesi (Fri, 26 Jul 2019 09:10:52 GMT): RiccardoBonesi (Fri, 26 Jul 2019 09:10:52 GMT): RiccardoBonesi (Fri, 26 Jul 2019 09:11:41 GMT): nkl199 (Fri, 26 Jul 2019 09:13:50 GMT): nkl199 (Fri, 26 Jul 2019 09:14:46 GMT): RiccardoBonesi (Fri, 26 Jul 2019 09:14:59 GMT): RiccardoBonesi (Fri, 26 Jul 2019 09:15:58 GMT): nkl199 (Fri, 26 Jul 2019 09:16:59 GMT): RiccardoBonesi (Fri, 26 Jul 2019 09:30:26 GMT): RiccardoBonesi (Fri, 26 Jul 2019 09:31:58 GMT): nkl199 (Fri, 26 Jul 2019 09:37:28 GMT): nkl199 (Fri, 26 Jul 2019 09:37:37 GMT): klenik (Fri, 26 Jul 2019 10:01:37 GMT): RiccardoBonesi (Fri, 26 Jul 2019 10:16:57 GMT): nkl199 (Fri, 26 Jul 2019 10:27:13 GMT): KindleBitSoln (Mon, 29 Jul 2019 11:38:21 GMT): klenik (Mon, 29 Jul 2019 12:15:05 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:16:12 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:16:27 GMT): klenik (Mon, 29 Jul 2019 12:18:26 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:18:55 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:19:49 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:20:23 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:20:59 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:21:28 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:22:11 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:22:54 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:23:46 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:24:18 GMT): klenik (Mon, 29 Jul 2019 12:24:31 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:25:14 GMT): klenik (Mon, 29 Jul 2019 12:25:21 GMT): klenik (Mon, 29 Jul 2019 12:25:34 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:26:02 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:26:02 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:26:25 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:27:13 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:28:29 GMT): klenik (Mon, 29 Jul 2019 12:29:28 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:32:16 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:32:16 GMT): klenik (Mon, 29 Jul 2019 12:40:23 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:44:28 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:46:23 GMT): KindleBitSoln (Mon, 29 Jul 2019 12:46:23 GMT): KindleBitSoln (Tue, 30 Jul 2019 04:26:25 GMT): KindleBitSoln (Tue, 30 Jul 2019 04:26:25 GMT): KindleBitSoln (Tue, 30 Jul 2019 04:27:02 GMT): KindleBitSoln (Tue, 30 Jul 2019 04:53:27 GMT): KindleBitSoln (Tue, 30 Jul 2019 07:57:51 GMT): KindleBitSoln (Tue, 30 Jul 2019 07:58:23 GMT): KindleBitSoln (Tue, 30 Jul 2019 07:58:57 GMT): KindleBitSoln (Tue, 30 Jul 2019 07:59:06 GMT): klenik (Tue, 30 Jul 2019 08:13:07 GMT): KindleBitSoln (Tue, 30 Jul 2019 08:13:57 GMT): klenik (Tue, 30 Jul 2019 08:14:00 GMT): KindleBitSoln (Tue, 30 Jul 2019 08:15:57 GMT): KindleBitSoln (Tue, 30 Jul 2019 08:15:57 GMT): KindleBitSoln (Tue, 30 Jul 2019 08:16:15 GMT): KindleBitSoln (Tue, 30 Jul 2019 08:16:42 GMT): KindleBitSoln (Tue, 30 Jul 2019 08:17:14 GMT): nkl199 (Tue, 30 Jul 2019 08:20:25 GMT): theDweeb (Tue, 30 Jul 2019 19:44:12 GMT): snakejerusalem (Wed, 31 Jul 2019 01:25:21 GMT): klenik (Wed, 31 Jul 2019 10:24:54 GMT): nimaafraz (Wed, 31 Jul 2019 12:07:12 GMT): nimaafraz (Wed, 31 Jul 2019 12:07:12 GMT): nimaafraz (Wed, 31 Jul 2019 12:07:12 GMT): nimaafraz (Wed, 31 Jul 2019 12:07:12 GMT): nimaafraz (Wed, 31 Jul 2019 12:07:12 GMT): nimaafraz (Wed, 31 Jul 2019 12:07:12 GMT): nimaafraz (Wed, 31 Jul 2019 12:07:12 GMT): nimaafraz (Wed, 31 Jul 2019 12:07:12 GMT): nimaafraz (Wed, 31 Jul 2019 12:07:12 GMT): nimaafraz (Wed, 31 Jul 2019 12:07:12 GMT): nimaafraz (Wed, 31 Jul 2019 12:08:57 GMT): snakejerusalem (Wed, 31 Jul 2019 13:05:55 GMT): AaronEtheridge (Wed, 31 Jul 2019 17:06:17 GMT): AaronEtheridge (Wed, 31 Jul 2019 17:06:20 GMT): snakejerusalem (Wed, 31 Jul 2019 20:53:34 GMT): snakejerusalem (Wed, 31 Jul 2019 20:53:34 GMT): snakejerusalem (Wed, 31 Jul 2019 20:53:34 GMT): klenik (Wed, 31 Jul 2019 21:03:02 GMT): klenik (Wed, 31 Jul 2019 21:03:38 GMT): snakejerusalem (Wed, 31 Jul 2019 21:05:16 GMT): snakejerusalem (Wed, 31 Jul 2019 22:55:57 GMT): snakejerusalem (Wed, 31 Jul 2019 22:55:57 GMT): ken1110 (Thu, 01 Aug 2019 05:08:33 GMT): ken1110 (Thu, 01 Aug 2019 05:08:36 GMT): ken1110 (Thu, 01 Aug 2019 05:08:36 GMT): nkl199 (Thu, 01 Aug 2019 08:32:56 GMT): klenik (Thu, 01 Aug 2019 09:51:13 GMT): ken1110 (Thu, 01 Aug 2019 13:29:52 GMT): snakejerusalem (Thu, 01 Aug 2019 14:23:35 GMT): ken1110 (Thu, 01 Aug 2019 15:00:21 GMT): ken1110 (Thu, 01 Aug 2019 15:00:21 GMT): ken1110 (Thu, 01 Aug 2019 15:00:21 GMT): snakejerusalem (Thu, 01 Aug 2019 15:53:37 GMT): klenik (Thu, 01 Aug 2019 18:05:35 GMT): snakejerusalem (Thu, 01 Aug 2019 18:12:01 GMT): nkl199 (Fri, 02 Aug 2019 07:35:11 GMT): ken1110 (Fri, 02 Aug 2019 14:52:45 GMT): AaronEtheridge (Mon, 05 Aug 2019 13:37:22 GMT): klenik (Mon, 05 Aug 2019 15:36:28 GMT): AaronEtheridge (Mon, 05 Aug 2019 17:14:36 GMT): klenik (Mon, 05 Aug 2019 18:57:35 GMT): snakejerusalem (Mon, 05 Aug 2019 23:37:27 GMT): snakejerusalem (Mon, 05 Aug 2019 23:37:27 GMT): snakejerusalem (Mon, 05 Aug 2019 23:37:27 GMT): snakejerusalem (Tue, 06 Aug 2019 00:17:31 GMT): snakejerusalem (Tue, 06 Aug 2019 01:24:54 GMT): nkl199 (Tue, 06 Aug 2019 08:01:22 GMT): guoger (Tue, 06 Aug 2019 08:50:07 GMT): klenik (Tue, 06 Aug 2019 08:53:38 GMT): snakejerusalem (Tue, 06 Aug 2019 18:58:50 GMT): jun (Wed, 07 Aug 2019 07:26:06 GMT): AaronEtheridge (Wed, 07 Aug 2019 12:42:16 GMT): HappyThoughts (Wed, 07 Aug 2019 16:29:54 GMT): klenik (Wed, 07 Aug 2019 16:34:24 GMT): klenik (Wed, 07 Aug 2019 16:37:50 GMT): HappyThoughts (Wed, 07 Aug 2019 16:42:14 GMT): HappyThoughts (Wed, 07 Aug 2019 16:45:48 GMT): HappyThoughts (Wed, 07 Aug 2019 16:48:07 GMT): klenik (Wed, 07 Aug 2019 16:54:01 GMT): HappyThoughts (Wed, 07 Aug 2019 17:05:02 GMT): HappyThoughts (Wed, 07 Aug 2019 17:07:26 GMT): klenik (Wed, 07 Aug 2019 17:08:55 GMT): HappyThoughts (Wed, 07 Aug 2019 17:10:22 GMT): HappyThoughts (Wed, 07 Aug 2019 17:11:47 GMT): HappyThoughts (Wed, 07 Aug 2019 17:13:49 GMT): klenik (Wed, 07 Aug 2019 17:15:36 GMT): HappyThoughts (Wed, 07 Aug 2019 17:21:58 GMT): klenik (Wed, 07 Aug 2019 17:27:59 GMT): HappyThoughts (Wed, 07 Aug 2019 17:29:25 GMT): HappyThoughts (Wed, 07 Aug 2019 17:30:51 GMT): HappyThoughts (Wed, 07 Aug 2019 17:31:52 GMT): HappyThoughts (Wed, 07 Aug 2019 17:33:04 GMT): klenik (Wed, 07 Aug 2019 17:35:31 GMT): HappyThoughts (Wed, 07 Aug 2019 17:41:18 GMT): HappyThoughts (Wed, 07 Aug 2019 17:41:46 GMT): AaronEtheridge (Wed, 07 Aug 2019 20:16:36 GMT): HappyThoughts (Wed, 07 Aug 2019 20:17:19 GMT): AaronEtheridge (Wed, 07 Aug 2019 20:17:32 GMT): HappyThoughts (Wed, 07 Aug 2019 20:18:46 GMT): HappyThoughts (Wed, 07 Aug 2019 20:19:42 GMT): AaronEtheridge (Wed, 07 Aug 2019 20:20:13 GMT): HappyThoughts (Wed, 07 Aug 2019 20:20:31 GMT): AaronEtheridge (Wed, 07 Aug 2019 20:21:32 GMT): AaronEtheridge (Wed, 07 Aug 2019 20:51:40 GMT): AaronEtheridge (Wed, 07 Aug 2019 20:51:42 GMT): AaronEtheridge (Wed, 07 Aug 2019 20:52:15 GMT): ItaloCarrasco (Wed, 07 Aug 2019 21:28:32 GMT): ItaloCarrasco (Wed, 07 Aug 2019 21:28:33 GMT): klenik (Wed, 07 Aug 2019 21:36:55 GMT): klenik (Wed, 07 Aug 2019 21:37:43 GMT): ItaloCarrasco (Wed, 07 Aug 2019 21:41:23 GMT): klenik (Wed, 07 Aug 2019 21:43:31 GMT): klenik (Wed, 07 Aug 2019 21:45:49 GMT): raccoonrat (Thu, 08 Aug 2019 05:30:54 GMT): nkl199 (Thu, 08 Aug 2019 07:03:03 GMT): HLFPOC (Thu, 08 Aug 2019 11:57:03 GMT): HLFPOC (Thu, 08 Aug 2019 11:57:03 GMT): HLFPOC (Thu, 08 Aug 2019 11:57:03 GMT): ItaloCarrasco (Thu, 08 Aug 2019 14:00:46 GMT): nkl199 (Thu, 08 Aug 2019 14:01:27 GMT): nkl199 (Thu, 08 Aug 2019 14:01:27 GMT): ItaloCarrasco (Thu, 08 Aug 2019 14:02:54 GMT): nkl199 (Thu, 08 Aug 2019 14:03:29 GMT): ItaloCarrasco (Thu, 08 Aug 2019 14:10:01 GMT): nkl199 (Thu, 08 Aug 2019 14:15:00 GMT): nkl199 (Thu, 08 Aug 2019 14:15:00 GMT): ItaloCarrasco (Thu, 08 Aug 2019 14:30:29 GMT): nkl199 (Thu, 08 Aug 2019 15:02:36 GMT): AaronEtheridge (Fri, 09 Aug 2019 13:33:20 GMT): snakejerusalem (Fri, 09 Aug 2019 13:56:54 GMT): klenik (Fri, 09 Aug 2019 13:56:55 GMT): klenik (Fri, 09 Aug 2019 13:58:21 GMT): snakejerusalem (Fri, 09 Aug 2019 14:07:15 GMT): AaronEtheridge (Fri, 09 Aug 2019 14:44:58 GMT): AaronEtheridge (Fri, 09 Aug 2019 16:57:25 GMT): klenik (Fri, 09 Aug 2019 17:41:58 GMT): snakejerusalem (Fri, 09 Aug 2019 22:06:29 GMT): snakejerusalem (Fri, 09 Aug 2019 22:06:29 GMT): snakejerusalem (Fri, 09 Aug 2019 22:06:29 GMT): snakejerusalem (Fri, 09 Aug 2019 23:18:20 GMT): snakejerusalem (Fri, 09 Aug 2019 23:18:20 GMT): snakejerusalem (Fri, 09 Aug 2019 23:18:20 GMT): soumyanayak (Tue, 13 Aug 2019 06:56:19 GMT): soumyanayak (Tue, 13 Aug 2019 07:33:52 GMT): snakejerusalem (Wed, 14 Aug 2019 14:26:02 GMT): AaronEtheridge (Wed, 14 Aug 2019 19:03:28 GMT): AaronEtheridge (Wed, 14 Aug 2019 19:03:56 GMT): AaronEtheridge (Wed, 14 Aug 2019 19:19:55 GMT): AaronEtheridge (Wed, 14 Aug 2019 19:20:40 GMT): AaronEtheridge (Wed, 14 Aug 2019 19:30:05 GMT): soumyanayak (Fri, 16 Aug 2019 05:26:41 GMT): nkl199 (Fri, 16 Aug 2019 08:48:04 GMT): adineshreddy1 (Fri, 16 Aug 2019 11:47:40 GMT): sundarsuman (Sun, 18 Aug 2019 18:54:37 GMT): Sara.r (Mon, 19 Aug 2019 06:22:16 GMT): Sara.r (Mon, 19 Aug 2019 06:22:17 GMT): nkl199 (Mon, 19 Aug 2019 08:28:46 GMT): nkl199 (Mon, 19 Aug 2019 16:46:20 GMT): Sara.r (Mon, 19 Aug 2019 18:36:02 GMT): Sara.r (Mon, 19 Aug 2019 18:36:02 GMT): galaxystar (Tue, 20 Aug 2019 01:28:54 GMT): nkl199 (Tue, 20 Aug 2019 08:36:52 GMT): Sara.r (Tue, 20 Aug 2019 20:17:40 GMT): Sara.r (Tue, 20 Aug 2019 20:18:02 GMT): Sara.r (Tue, 20 Aug 2019 20:18:02 GMT): Sara.r (Tue, 20 Aug 2019 20:18:02 GMT): Sara.r (Tue, 20 Aug 2019 20:22:20 GMT): nkl199 (Wed, 21 Aug 2019 07:59:02 GMT): carlosalca (Wed, 21 Aug 2019 08:01:20 GMT): carlosalca (Wed, 21 Aug 2019 08:01:21 GMT): carlosalca (Wed, 21 Aug 2019 08:01:21 GMT): carlosalca (Wed, 21 Aug 2019 08:01:21 GMT): carlosalca (Wed, 21 Aug 2019 08:01:21 GMT): nkl199 (Wed, 21 Aug 2019 09:05:48 GMT): carlosalca (Wed, 21 Aug 2019 12:29:24 GMT): carlosalca (Wed, 21 Aug 2019 12:30:41 GMT): SamuelDare (Wed, 21 Aug 2019 15:41:35 GMT): SamuelDare (Wed, 21 Aug 2019 15:42:11 GMT): SamuelDare (Wed, 21 Aug 2019 15:42:21 GMT): nkl199 (Wed, 21 Aug 2019 15:46:42 GMT): SamuelDare (Wed, 21 Aug 2019 15:47:05 GMT): Sara.r (Wed, 21 Aug 2019 15:51:22 GMT): nkl199 (Wed, 21 Aug 2019 15:52:07 GMT): nkl199 (Wed, 21 Aug 2019 15:52:20 GMT): nkl199 (Wed, 21 Aug 2019 15:52:55 GMT): SamuelDare (Wed, 21 Aug 2019 16:03:32 GMT): nkl199 (Wed, 21 Aug 2019 16:04:45 GMT): nkl199 (Wed, 21 Aug 2019 16:05:00 GMT): SamuelDare (Wed, 21 Aug 2019 16:18:43 GMT): SamuelDare (Wed, 21 Aug 2019 16:19:03 GMT): Sara.r (Wed, 21 Aug 2019 16:25:11 GMT): SamuelDare (Wed, 21 Aug 2019 16:28:38 GMT): SamuelDare (Wed, 21 Aug 2019 16:29:34 GMT): nkl199 (Wed, 21 Aug 2019 16:53:26 GMT): nimaafraz (Thu, 22 Aug 2019 13:50:12 GMT): nimaafraz (Thu, 22 Aug 2019 13:50:12 GMT): nkl199 (Thu, 22 Aug 2019 15:21:34 GMT): nimaafraz (Thu, 22 Aug 2019 15:24:34 GMT): nkl199 (Thu, 22 Aug 2019 15:35:51 GMT): nimaafraz (Thu, 22 Aug 2019 15:37:44 GMT): nimaafraz (Thu, 22 Aug 2019 15:38:13 GMT): nkl199 (Thu, 22 Aug 2019 16:00:23 GMT): nkl199 (Thu, 22 Aug 2019 16:00:23 GMT): nimaafraz (Thu, 22 Aug 2019 16:37:39 GMT): SamuelDare (Thu, 22 Aug 2019 16:50:19 GMT): SamuelDare (Thu, 22 Aug 2019 16:51:02 GMT): Sara.r (Thu, 22 Aug 2019 19:29:25 GMT): Sara.r (Thu, 22 Aug 2019 20:01:45 GMT): Sara.r (Thu, 22 Aug 2019 20:01:45 GMT): Sara.r (Thu, 22 Aug 2019 20:01:45 GMT): Sara.r (Thu, 22 Aug 2019 20:08:17 GMT): nkl199 (Fri, 23 Aug 2019 08:07:01 GMT): nkl199 (Fri, 23 Aug 2019 08:07:59 GMT): carlosalca (Fri, 23 Aug 2019 11:57:58 GMT): nkl199 (Fri, 23 Aug 2019 12:15:17 GMT): nkl199 (Fri, 23 Aug 2019 12:15:17 GMT): carlosalca (Sun, 25 Aug 2019 12:37:25 GMT): klenik (Mon, 26 Aug 2019 13:40:26 GMT): wuqilv (Tue, 27 Aug 2019 05:44:57 GMT): wuqilv (Tue, 27 Aug 2019 05:45:33 GMT): wuqilv (Tue, 27 Aug 2019 05:46:05 GMT): wuqilv (Tue, 27 Aug 2019 05:46:09 GMT): nkl199 (Tue, 27 Aug 2019 08:30:13 GMT): wuqilv (Tue, 27 Aug 2019 09:31:50 GMT): Sara.r (Wed, 28 Aug 2019 05:20:47 GMT): Sara.r (Wed, 28 Aug 2019 07:10:24 GMT): klenik (Wed, 28 Aug 2019 07:38:51 GMT): carlosalca (Wed, 28 Aug 2019 09:24:23 GMT): klenik (Wed, 28 Aug 2019 09:30:11 GMT): carlosalca (Wed, 28 Aug 2019 09:51:34 GMT): carlosalca (Wed, 28 Aug 2019 09:51:54 GMT): klenik (Wed, 28 Aug 2019 11:03:35 GMT): carlosalca (Wed, 28 Aug 2019 11:04:57 GMT): carlosalca (Wed, 28 Aug 2019 11:09:55 GMT): carlosalca (Wed, 28 Aug 2019 11:09:55 GMT): klenik (Wed, 28 Aug 2019 11:20:55 GMT): carlosalca (Wed, 28 Aug 2019 11:35:44 GMT): klenik (Wed, 28 Aug 2019 11:46:25 GMT): carlosalca (Wed, 28 Aug 2019 11:47:39 GMT): klenik (Wed, 28 Aug 2019 11:56:38 GMT): carlosalca (Wed, 28 Aug 2019 12:16:43 GMT): carlosalca (Wed, 28 Aug 2019 12:16:43 GMT): RiccardoBonesi (Wed, 28 Aug 2019 14:29:41 GMT): Sara.r (Wed, 28 Aug 2019 20:23:01 GMT): carlosalca (Thu, 29 Aug 2019 06:34:38 GMT): klenik (Thu, 29 Aug 2019 06:58:27 GMT): carlosalca (Thu, 29 Aug 2019 07:56:17 GMT): nkl199 (Thu, 29 Aug 2019 11:00:31 GMT): RiccardoBonesi (Thu, 29 Aug 2019 14:59:45 GMT): nkl199 (Thu, 29 Aug 2019 15:37:30 GMT): TopJohn (Fri, 30 Aug 2019 07:01:03 GMT): TopJohn (Fri, 30 Aug 2019 07:01:19 GMT): nkl199 (Fri, 30 Aug 2019 09:08:52 GMT): TopJohn (Fri, 30 Aug 2019 09:11:41 GMT): TopJohn (Fri, 30 Aug 2019 09:11:41 GMT): Koushik (Sat, 31 Aug 2019 04:00:53 GMT): Koushik (Sat, 31 Aug 2019 04:01:11 GMT): nimaafraz (Sat, 31 Aug 2019 07:59:35 GMT): lotty02cho (Mon, 02 Sep 2019 07:28:11 GMT): lotty02cho (Mon, 02 Sep 2019 07:28:11 GMT): KindleBitSoln (Mon, 02 Sep 2019 08:00:47 GMT): KindleBitSoln (Mon, 02 Sep 2019 08:01:04 GMT): KindleBitSoln (Mon, 02 Sep 2019 08:01:56 GMT): KindleBitSoln (Mon, 02 Sep 2019 08:02:31 GMT): KindleBitSoln (Mon, 02 Sep 2019 08:03:17 GMT): KindleBitSoln (Mon, 02 Sep 2019 08:03:41 GMT): klenik (Mon, 02 Sep 2019 12:59:11 GMT): lotty02cho (Tue, 03 Sep 2019 01:17:19 GMT): lotty02cho (Tue, 03 Sep 2019 01:17:19 GMT): lotty02cho (Tue, 03 Sep 2019 01:36:09 GMT): klenik (Tue, 03 Sep 2019 06:22:26 GMT): TopJohn (Tue, 03 Sep 2019 06:22:27 GMT): TopJohn (Tue, 03 Sep 2019 06:23:25 GMT): TopJohn (Tue, 03 Sep 2019 06:24:00 GMT): TopJohn (Tue, 03 Sep 2019 06:24:11 GMT): TopJohn (Tue, 03 Sep 2019 06:24:31 GMT): TopJohn (Tue, 03 Sep 2019 06:24:52 GMT): klenik (Tue, 03 Sep 2019 06:29:05 GMT): TopJohn (Tue, 03 Sep 2019 06:54:03 GMT): TopJohn (Tue, 03 Sep 2019 06:54:22 GMT): TopJohn (Tue, 03 Sep 2019 06:54:27 GMT): TopJohn (Tue, 03 Sep 2019 06:54:55 GMT): carlosalca (Tue, 03 Sep 2019 07:49:30 GMT): TopJohn (Tue, 03 Sep 2019 07:58:35 GMT): klenik (Tue, 03 Sep 2019 09:35:05 GMT): carlosalca (Tue, 03 Sep 2019 09:50:42 GMT): klenik (Tue, 03 Sep 2019 10:13:48 GMT): carlosalca (Tue, 03 Sep 2019 10:18:18 GMT): TopJohn (Tue, 03 Sep 2019 11:46:33 GMT): nkl199 (Tue, 03 Sep 2019 12:16:36 GMT): TopJohn (Tue, 03 Sep 2019 14:15:14 GMT): TopJohn (Tue, 03 Sep 2019 14:15:24 GMT): TopJohn (Tue, 03 Sep 2019 14:16:06 GMT): TopJohn (Wed, 04 Sep 2019 02:40:44 GMT): TopJohn (Wed, 04 Sep 2019 02:40:46 GMT): TopJohn (Wed, 04 Sep 2019 05:08:16 GMT): TopJohn (Wed, 04 Sep 2019 05:08:57 GMT): TopJohn (Wed, 04 Sep 2019 05:12:18 GMT): FlyingTiger (Wed, 04 Sep 2019 06:57:32 GMT): TopJohn (Wed, 04 Sep 2019 08:08:38 GMT): TopJohn (Wed, 04 Sep 2019 08:08:53 GMT): klenik (Wed, 04 Sep 2019 10:21:17 GMT): TopJohn (Thu, 05 Sep 2019 02:05:47 GMT): carlosalca (Thu, 05 Sep 2019 09:16:29 GMT): klenik (Thu, 05 Sep 2019 09:37:24 GMT): carlosalca (Thu, 05 Sep 2019 09:39:32 GMT): carlosalca (Thu, 05 Sep 2019 11:15:38 GMT): klenik (Thu, 05 Sep 2019 11:19:13 GMT): klenik (Thu, 05 Sep 2019 11:19:57 GMT): carlosalca (Thu, 05 Sep 2019 11:24:00 GMT): klenik (Thu, 05 Sep 2019 12:28:50 GMT): klenik (Thu, 05 Sep 2019 12:28:50 GMT): nkl199 (Thu, 05 Sep 2019 12:54:40 GMT): FlyingTiger (Fri, 06 Sep 2019 01:13:54 GMT): Sara.r (Fri, 06 Sep 2019 21:56:57 GMT): klenik (Sat, 07 Sep 2019 21:40:29 GMT): nkl199 (Mon, 09 Sep 2019 08:22:52 GMT): Utsav_Solanki (Tue, 10 Sep 2019 04:58:36 GMT): Utsav_Solanki (Tue, 10 Sep 2019 04:58:37 GMT): klenik (Tue, 10 Sep 2019 06:15:34 GMT): HLFPOC (Tue, 10 Sep 2019 11:07:15 GMT): HLFPOC (Tue, 10 Sep 2019 11:07:15 GMT): HLFPOC (Tue, 10 Sep 2019 11:07:15 GMT): HLFPOC (Tue, 10 Sep 2019 11:11:15 GMT): klenik (Tue, 10 Sep 2019 11:19:48 GMT): HLFPOC (Tue, 10 Sep 2019 11:23:28 GMT): klenik (Tue, 10 Sep 2019 11:24:38 GMT): HLFPOC (Tue, 10 Sep 2019 12:06:52 GMT): klenik (Tue, 10 Sep 2019 12:07:17 GMT): Xepp (Tue, 10 Sep 2019 18:37:05 GMT): Xepp (Tue, 10 Sep 2019 18:38:01 GMT): klenik (Tue, 10 Sep 2019 19:51:52 GMT): klenik (Tue, 10 Sep 2019 19:51:52 GMT): Xepp (Tue, 10 Sep 2019 20:25:03 GMT): Utsav_Solanki (Wed, 11 Sep 2019 05:58:27 GMT): Utsav_Solanki (Wed, 11 Sep 2019 05:58:27 GMT): Utsav_Solanki (Wed, 11 Sep 2019 05:58:34 GMT): Utsav_Solanki (Wed, 11 Sep 2019 06:02:28 GMT): klenik (Wed, 11 Sep 2019 07:24:23 GMT): Utsav_Solanki (Wed, 11 Sep 2019 07:38:58 GMT): Utsav_Solanki (Wed, 11 Sep 2019 07:38:58 GMT): carlosalca (Wed, 11 Sep 2019 11:29:12 GMT): AhmedBENROUHA (Wed, 11 Sep 2019 13:36:28 GMT): AhmedBENROUHA (Wed, 11 Sep 2019 13:36:48 GMT): klenik (Wed, 11 Sep 2019 13:55:10 GMT): klenik (Wed, 11 Sep 2019 13:55:43 GMT): AhmedBENROUHA (Wed, 11 Sep 2019 14:07:54 GMT): AhmedBENROUHA (Wed, 11 Sep 2019 14:08:17 GMT): AhmedBENROUHA (Wed, 11 Sep 2019 14:08:18 GMT): AhmedBENROUHA (Wed, 11 Sep 2019 14:09:11 GMT): AhmedBENROUHA (Wed, 11 Sep 2019 14:10:55 GMT): klenik (Wed, 11 Sep 2019 14:10:56 GMT): klenik (Wed, 11 Sep 2019 14:12:18 GMT): klenik (Wed, 11 Sep 2019 14:12:53 GMT): AhmedBENROUHA (Wed, 11 Sep 2019 14:13:14 GMT): klenik (Wed, 11 Sep 2019 14:14:32 GMT): AhmedBENROUHA (Wed, 11 Sep 2019 14:15:24 GMT): klenik (Wed, 11 Sep 2019 14:16:04 GMT): AhmedBENROUHA (Wed, 11 Sep 2019 15:10:25 GMT): AhmedBENROUHA (Wed, 11 Sep 2019 15:11:50 GMT): AhmedBENROUHA (Wed, 11 Sep 2019 15:35:15 GMT): Khaled.MH (Thu, 12 Sep 2019 08:35:03 GMT): AhmedBENROUHA (Thu, 12 Sep 2019 09:51:53 GMT): AhmedBENROUHA (Thu, 12 Sep 2019 09:52:05 GMT): nkl199 (Thu, 12 Sep 2019 09:57:10 GMT): carlosalca (Thu, 12 Sep 2019 11:38:22 GMT): klenik (Thu, 12 Sep 2019 11:39:21 GMT): Sara.r (Thu, 12 Sep 2019 16:44:23 GMT): klenik (Fri, 13 Sep 2019 06:53:48 GMT): Utsav_Solanki (Fri, 13 Sep 2019 13:21:54 GMT): Utsav_Solanki (Fri, 13 Sep 2019 13:22:05 GMT): Utsav_Solanki (Fri, 13 Sep 2019 13:22:17 GMT): klenik (Fri, 13 Sep 2019 13:35:53 GMT): Utsav_Solanki (Fri, 13 Sep 2019 13:47:34 GMT): Utsav_Solanki (Fri, 13 Sep 2019 13:47:37 GMT): Utsav_Solanki (Fri, 13 Sep 2019 13:48:47 GMT): Utsav_Solanki (Fri, 13 Sep 2019 13:49:05 GMT): Utsav_Solanki (Fri, 13 Sep 2019 13:49:05 GMT): Utsav_Solanki (Fri, 13 Sep 2019 13:49:13 GMT): klenik (Fri, 13 Sep 2019 13:53:41 GMT): klenik (Fri, 13 Sep 2019 13:56:56 GMT): klenik (Fri, 13 Sep 2019 13:57:49 GMT): Utsav_Solanki (Fri, 13 Sep 2019 14:13:17 GMT): Utsav_Solanki (Fri, 13 Sep 2019 14:14:13 GMT): Utsav_Solanki (Fri, 13 Sep 2019 14:14:44 GMT): Utsav_Solanki (Fri, 13 Sep 2019 14:15:22 GMT): Utsav_Solanki (Fri, 13 Sep 2019 14:15:22 GMT): Utsav_Solanki (Fri, 13 Sep 2019 14:16:31 GMT): Utsav_Solanki (Fri, 13 Sep 2019 14:16:53 GMT): Utsav_Solanki (Fri, 13 Sep 2019 14:17:48 GMT): Utsav_Solanki (Fri, 13 Sep 2019 14:18:07 GMT): Utsav_Solanki (Fri, 13 Sep 2019 14:18:29 GMT): Utsav_Solanki (Fri, 13 Sep 2019 14:18:29 GMT): klenik (Fri, 13 Sep 2019 15:04:18 GMT): Sara.r (Sat, 14 Sep 2019 17:54:00 GMT): Utsav_Solanki (Mon, 16 Sep 2019 07:12:56 GMT): carlosalca (Mon, 16 Sep 2019 08:44:09 GMT): carlosalca (Mon, 16 Sep 2019 08:44:25 GMT): carlosalca (Mon, 16 Sep 2019 09:20:31 GMT): klenik (Mon, 16 Sep 2019 09:48:36 GMT): carlosalca (Mon, 16 Sep 2019 09:58:09 GMT): klenik (Mon, 16 Sep 2019 09:58:15 GMT): klenik (Mon, 16 Sep 2019 09:59:23 GMT): carlosalca (Mon, 16 Sep 2019 10:00:08 GMT): carlosalca (Mon, 16 Sep 2019 10:00:19 GMT): HLFPOC (Mon, 16 Sep 2019 15:17:07 GMT): klenik (Mon, 16 Sep 2019 15:17:46 GMT): klenik (Mon, 16 Sep 2019 15:18:43 GMT): HLFPOC (Mon, 16 Sep 2019 15:19:50 GMT): klenik (Mon, 16 Sep 2019 15:22:38 GMT): klenik (Mon, 16 Sep 2019 15:23:41 GMT): klenik (Mon, 16 Sep 2019 15:24:06 GMT): HLFPOC (Mon, 16 Sep 2019 15:25:16 GMT): klenik (Mon, 16 Sep 2019 15:25:58 GMT): KindleBitSoln (Tue, 17 Sep 2019 07:11:50 GMT): KindleBitSoln (Tue, 17 Sep 2019 07:11:59 GMT): Utsav_Solanki (Tue, 17 Sep 2019 07:16:34 GMT): lotty02cho (Tue, 17 Sep 2019 07:44:07 GMT): lotty02cho (Tue, 17 Sep 2019 07:47:48 GMT): lotty02cho (Tue, 17 Sep 2019 07:47:48 GMT): lotty02cho (Tue, 17 Sep 2019 07:48:49 GMT): lotty02cho (Tue, 17 Sep 2019 07:52:23 GMT): casm3 (Tue, 17 Sep 2019 12:21:27 GMT): klenik (Tue, 17 Sep 2019 13:24:45 GMT): klenik (Tue, 17 Sep 2019 13:26:01 GMT): klenik (Tue, 17 Sep 2019 13:28:07 GMT): casm3 (Tue, 17 Sep 2019 14:13:51 GMT): klenik (Tue, 17 Sep 2019 14:16:07 GMT): casm3 (Tue, 17 Sep 2019 14:19:31 GMT): klenik (Tue, 17 Sep 2019 14:20:51 GMT): klenik (Tue, 17 Sep 2019 14:20:51 GMT): casm3 (Tue, 17 Sep 2019 14:21:44 GMT): klenik (Tue, 17 Sep 2019 14:23:33 GMT): lotty02cho (Wed, 18 Sep 2019 01:10:44 GMT): lotty02cho (Wed, 18 Sep 2019 01:10:44 GMT): klenik (Wed, 18 Sep 2019 06:57:41 GMT): lotty02cho (Wed, 18 Sep 2019 07:00:38 GMT): lotty02cho (Wed, 18 Sep 2019 08:52:56 GMT): klenik (Wed, 18 Sep 2019 08:56:02 GMT): klenik (Wed, 18 Sep 2019 09:15:27 GMT): klenik (Wed, 18 Sep 2019 09:43:21 GMT): klenik (Wed, 18 Sep 2019 11:34:59 GMT): lotty02cho (Thu, 19 Sep 2019 00:10:58 GMT): lotty02cho (Thu, 19 Sep 2019 00:25:00 GMT): lotty02cho (Thu, 19 Sep 2019 00:25:00 GMT): klenik (Thu, 19 Sep 2019 05:24:16 GMT): klenik (Thu, 19 Sep 2019 05:24:52 GMT): nimaafraz (Thu, 19 Sep 2019 14:06:49 GMT): klenik (Thu, 19 Sep 2019 14:14:48 GMT): nimaafraz (Thu, 19 Sep 2019 14:24:29 GMT): nimaafraz (Thu, 19 Sep 2019 14:24:51 GMT): nimaafraz (Thu, 19 Sep 2019 14:24:54 GMT): klenik (Thu, 19 Sep 2019 14:28:44 GMT): klenik (Thu, 19 Sep 2019 14:29:34 GMT): nimaafraz (Thu, 19 Sep 2019 14:34:47 GMT): klenik (Thu, 19 Sep 2019 14:42:34 GMT): nimaafraz (Thu, 19 Sep 2019 18:42:51 GMT): klenik (Thu, 19 Sep 2019 18:51:21 GMT): klenik (Thu, 19 Sep 2019 18:52:20 GMT): Koushik (Wed, 25 Sep 2019 22:56:15 GMT): SagarHundekar (Thu, 26 Sep 2019 06:49:09 GMT): SagarHundekar (Thu, 26 Sep 2019 06:49:12 GMT): nkl199 (Thu, 26 Sep 2019 07:57:49 GMT): klenik (Thu, 26 Sep 2019 08:06:33 GMT): RiccardoBonesi (Mon, 30 Sep 2019 09:03:21 GMT): klenik (Mon, 30 Sep 2019 09:08:31 GMT): RiccardoBonesi (Mon, 30 Sep 2019 09:11:13 GMT): RiccardoBonesi (Mon, 30 Sep 2019 09:11:47 GMT): klenik (Mon, 30 Sep 2019 10:41:36 GMT): RiccardoBonesi (Tue, 01 Oct 2019 08:10:14 GMT): nimaafraz (Thu, 03 Oct 2019 08:31:07 GMT): klenik (Thu, 03 Oct 2019 08:32:49 GMT): klenik (Thu, 03 Oct 2019 08:35:44 GMT): RiccardoBonesi (Thu, 03 Oct 2019 11:45:27 GMT): klenik (Thu, 03 Oct 2019 12:15:09 GMT): nimaafraz (Mon, 07 Oct 2019 10:29:30 GMT): nimaafraz (Mon, 07 Oct 2019 10:29:30 GMT): nimaafraz (Mon, 07 Oct 2019 10:29:30 GMT): nimaafraz (Mon, 07 Oct 2019 10:29:30 GMT): nimaafraz (Mon, 07 Oct 2019 10:29:30 GMT): nimaafraz (Mon, 07 Oct 2019 10:29:30 GMT): nimaafraz (Mon, 07 Oct 2019 10:41:43 GMT): klenik (Mon, 07 Oct 2019 10:55:02 GMT): nimaafraz (Mon, 07 Oct 2019 11:22:07 GMT): nimaafraz (Mon, 07 Oct 2019 11:22:07 GMT): nimaafraz (Mon, 07 Oct 2019 11:22:49 GMT): klenik (Mon, 07 Oct 2019 11:27:21 GMT): nimaafraz (Mon, 07 Oct 2019 16:29:42 GMT): klenik (Mon, 07 Oct 2019 17:25:27 GMT): BrettLogan (Wed, 09 Oct 2019 16:54:02 GMT): BrettLogan (Wed, 09 Oct 2019 16:54:02 GMT): klenik (Wed, 09 Oct 2019 18:45:08 GMT): DivyaAgrawal (Thu, 10 Oct 2019 13:12:44 GMT): DivyaAgrawal (Thu, 10 Oct 2019 13:12:44 GMT): klenik (Thu, 10 Oct 2019 13:20:59 GMT): DivyaAgrawal (Thu, 10 Oct 2019 13:22:34 GMT): DivyaAgrawal (Thu, 10 Oct 2019 13:22:34 GMT): DivyaAgrawal (Thu, 10 Oct 2019 13:22:34 GMT): klenik (Thu, 10 Oct 2019 13:23:32 GMT): DivyaAgrawal (Thu, 10 Oct 2019 13:24:26 GMT): nimaafraz (Sun, 13 Oct 2019 10:38:12 GMT): nimaafraz (Sun, 13 Oct 2019 10:43:42 GMT): lotty02cho (Tue, 15 Oct 2019 02:11:22 GMT): lotty02cho (Tue, 15 Oct 2019 02:12:00 GMT): lotty02cho (Tue, 15 Oct 2019 02:12:36 GMT): lotty02cho (Tue, 15 Oct 2019 05:26:02 GMT): klenik (Tue, 15 Oct 2019 06:21:41 GMT): lotty02cho (Tue, 15 Oct 2019 06:25:31 GMT): lotty02cho (Tue, 15 Oct 2019 06:25:31 GMT): klenik (Tue, 15 Oct 2019 06:45:14 GMT): lotty02cho (Wed, 16 Oct 2019 04:43:09 GMT): lotty02cho (Wed, 16 Oct 2019 05:29:44 GMT): lotty02cho (Wed, 16 Oct 2019 05:31:34 GMT): klenik (Wed, 16 Oct 2019 06:04:16 GMT): lotty02cho (Wed, 16 Oct 2019 06:11:56 GMT): klenik (Wed, 16 Oct 2019 06:17:19 GMT): lotty02cho (Wed, 16 Oct 2019 06:31:33 GMT): klenik (Wed, 16 Oct 2019 06:46:43 GMT): lotty02cho (Wed, 16 Oct 2019 07:09:08 GMT): klenik (Wed, 16 Oct 2019 07:11:59 GMT): klenik (Wed, 16 Oct 2019 07:12:36 GMT): lotty02cho (Wed, 16 Oct 2019 08:38:37 GMT): lotty02cho (Wed, 16 Oct 2019 08:38:45 GMT): lotty02cho (Wed, 16 Oct 2019 08:38:45 GMT): klenik (Wed, 16 Oct 2019 08:40:03 GMT): klenik (Wed, 16 Oct 2019 08:42:34 GMT): lotty02cho (Wed, 16 Oct 2019 08:44:46 GMT): klenik (Wed, 16 Oct 2019 08:47:07 GMT): lotty02cho (Wed, 16 Oct 2019 08:51:47 GMT): lotty02cho (Wed, 16 Oct 2019 10:20:02 GMT): klenik (Wed, 16 Oct 2019 10:24:25 GMT): rkrish82 (Fri, 18 Oct 2019 08:21:51 GMT): rkrish82 (Fri, 18 Oct 2019 08:21:52 GMT): rkrish82 (Fri, 18 Oct 2019 08:23:14 GMT): rkrish82 (Fri, 18 Oct 2019 08:25:10 GMT): rkrish82 (Fri, 18 Oct 2019 08:30:14 GMT): rkrish82 (Fri, 18 Oct 2019 08:30:15 GMT): AgniCampos (Fri, 18 Oct 2019 12:00:12 GMT): AgniCampos (Fri, 18 Oct 2019 12:00:14 GMT): klenik (Fri, 18 Oct 2019 12:42:35 GMT): klenik (Fri, 18 Oct 2019 12:42:35 GMT): shemnon (Fri, 18 Oct 2019 14:41:53 GMT): shemnon (Fri, 18 Oct 2019 14:41:54 GMT): klenik (Fri, 18 Oct 2019 15:11:06 GMT): shemnon (Sun, 20 Oct 2019 05:10:05 GMT): klenik (Sun, 20 Oct 2019 08:57:11 GMT): shemnon (Sun, 20 Oct 2019 22:29:48 GMT): klenik (Sun, 20 Oct 2019 22:34:53 GMT): nkl199 (Mon, 21 Oct 2019 08:06:28 GMT): rkrish82 (Mon, 21 Oct 2019 09:10:35 GMT): klenik (Mon, 21 Oct 2019 09:18:49 GMT): nimaafraz (Mon, 21 Oct 2019 17:33:04 GMT): nimaafraz (Mon, 21 Oct 2019 17:35:53 GMT): nimaafraz (Mon, 21 Oct 2019 17:38:15 GMT): klenik (Mon, 21 Oct 2019 18:01:13 GMT): nimaafraz (Mon, 21 Oct 2019 18:05:45 GMT): nimaafraz (Mon, 21 Oct 2019 18:06:57 GMT): klenik (Mon, 21 Oct 2019 18:07:03 GMT): klenik (Mon, 21 Oct 2019 18:08:16 GMT): nimaafraz (Mon, 21 Oct 2019 18:10:10 GMT): klenik (Mon, 21 Oct 2019 18:10:54 GMT): shemnon (Tue, 22 Oct 2019 04:45:10 GMT): biligunb (Tue, 22 Oct 2019 07:12:37 GMT): biligunb (Tue, 22 Oct 2019 07:12:39 GMT): nkl199 (Tue, 22 Oct 2019 07:27:02 GMT): klenik (Tue, 22 Oct 2019 08:16:25 GMT): biligunb (Tue, 22 Oct 2019 08:49:51 GMT): klenik (Tue, 22 Oct 2019 09:00:39 GMT): klenik (Tue, 22 Oct 2019 09:21:47 GMT): biligunb (Tue, 22 Oct 2019 09:38:37 GMT): klenik (Tue, 22 Oct 2019 10:01:30 GMT): klenik (Wed, 23 Oct 2019 07:52:22 GMT): shemnon (Wed, 23 Oct 2019 13:50:24 GMT): shemnon (Wed, 23 Oct 2019 13:52:26 GMT): klenik (Wed, 23 Oct 2019 13:55:16 GMT): shemnon (Wed, 23 Oct 2019 13:56:32 GMT): shemnon (Wed, 23 Oct 2019 13:56:32 GMT): klenik (Wed, 23 Oct 2019 14:08:55 GMT): biligunb (Thu, 24 Oct 2019 01:43:55 GMT): klenik (Thu, 24 Oct 2019 07:41:31 GMT): rmscott (Thu, 24 Oct 2019 15:39:05 GMT): lotty02cho (Fri, 25 Oct 2019 02:42:05 GMT): klenik (Fri, 25 Oct 2019 10:15:21 GMT): FlyingTiger (Sat, 26 Oct 2019 01:05:53 GMT): balazsprehoda (Sun, 27 Oct 2019 13:13:53 GMT): biligunb (Mon, 28 Oct 2019 08:20:13 GMT): biligunb (Mon, 28 Oct 2019 08:20:13 GMT): klenik (Mon, 28 Oct 2019 09:09:58 GMT): rkrish82 (Wed, 30 Oct 2019 06:36:46 GMT): rkrish82 (Wed, 30 Oct 2019 06:36:47 GMT): klenik (Wed, 30 Oct 2019 06:51:45 GMT): rkrish82 (Wed, 30 Oct 2019 07:10:11 GMT): rkrish82 (Wed, 30 Oct 2019 07:20:46 GMT): rkrish82 (Wed, 30 Oct 2019 07:32:55 GMT): klenik (Wed, 30 Oct 2019 07:55:12 GMT): BrettLogan (Wed, 30 Oct 2019 12:46:01 GMT): rkrish82 (Wed, 30 Oct 2019 12:59:23 GMT): klenik (Wed, 30 Oct 2019 13:47:17 GMT): rkrish82 (Wed, 30 Oct 2019 13:54:25 GMT): rkrish82 (Wed, 30 Oct 2019 13:54:29 GMT): rkrish82 (Wed, 30 Oct 2019 14:03:27 GMT): rkrish82 (Wed, 30 Oct 2019 14:04:25 GMT): rkrish82 (Wed, 30 Oct 2019 14:07:29 GMT): klenik (Wed, 30 Oct 2019 14:28:53 GMT): ken1110 (Thu, 31 Oct 2019 05:00:52 GMT): ken1110 (Thu, 31 Oct 2019 05:43:56 GMT): ken1110 (Thu, 31 Oct 2019 05:43:56 GMT): ken1110 (Thu, 31 Oct 2019 05:43:56 GMT): ken1110 (Thu, 31 Oct 2019 05:43:56 GMT): ken1110 (Thu, 31 Oct 2019 05:43:56 GMT): ken1110 (Thu, 31 Oct 2019 05:43:56 GMT): DiAnh (Fri, 08 Nov 2019 04:33:06 GMT): DiAnh (Fri, 08 Nov 2019 08:49:36 GMT): nkl199 (Fri, 08 Nov 2019 15:44:43 GMT): dachrillz (Sat, 09 Nov 2019 14:45:48 GMT): dachrillz (Sat, 09 Nov 2019 14:45:48 GMT): klenik (Sat, 09 Nov 2019 15:37:11 GMT): dachrillz (Sat, 09 Nov 2019 15:40:28 GMT): dachrillz (Sun, 10 Nov 2019 19:04:57 GMT): dachrillz (Sun, 10 Nov 2019 19:04:57 GMT): dachrillz (Sun, 10 Nov 2019 19:12:52 GMT): klenik (Sun, 10 Nov 2019 19:36:27 GMT): dachrillz (Sun, 10 Nov 2019 19:44:02 GMT): dachrillz (Sun, 10 Nov 2019 20:00:05 GMT): klenik (Sun, 10 Nov 2019 20:00:59 GMT): dachrillz (Sun, 10 Nov 2019 20:01:45 GMT): dachrillz (Sun, 10 Nov 2019 20:01:57 GMT): dachrillz (Sun, 10 Nov 2019 20:02:16 GMT): klenik (Sun, 10 Nov 2019 20:02:45 GMT): dachrillz (Sun, 10 Nov 2019 20:03:53 GMT): klenik (Sun, 10 Nov 2019 20:04:12 GMT): airela (Wed, 13 Nov 2019 02:55:34 GMT): airela (Wed, 13 Nov 2019 03:41:00 GMT): nkl199 (Wed, 13 Nov 2019 09:39:19 GMT): klenik (Wed, 13 Nov 2019 09:40:22 GMT): Preetam007 (Wed, 13 Nov 2019 13:25:16 GMT): Preetam007 (Wed, 13 Nov 2019 13:27:00 GMT): klenik (Wed, 13 Nov 2019 14:05:02 GMT): Preetam007 (Wed, 13 Nov 2019 17:27:58 GMT): Preetam007 (Wed, 13 Nov 2019 17:29:05 GMT): Preetam007 (Wed, 13 Nov 2019 17:29:05 GMT): klenik (Wed, 13 Nov 2019 18:10:29 GMT): Preetam007 (Wed, 13 Nov 2019 18:31:39 GMT): klenik (Wed, 13 Nov 2019 18:50:59 GMT): Preetam007 (Wed, 13 Nov 2019 19:18:48 GMT): Michael8086 (Wed, 13 Nov 2019 19:49:33 GMT): airela (Fri, 15 Nov 2019 03:13:08 GMT): ulalaa14 (Fri, 15 Nov 2019 20:40:21 GMT): ulalaa14 (Fri, 15 Nov 2019 20:40:22 GMT): leopardo (Sun, 17 Nov 2019 15:51:04 GMT): leopardo (Sun, 17 Nov 2019 15:51:08 GMT): leopardo (Sun, 17 Nov 2019 22:55:35 GMT): leopardo (Sun, 17 Nov 2019 22:55:35 GMT): klenik (Mon, 18 Nov 2019 08:28:53 GMT): klenik (Mon, 18 Nov 2019 08:28:53 GMT): klenik (Mon, 18 Nov 2019 08:33:26 GMT): leopardo (Mon, 18 Nov 2019 11:51:22 GMT): leopardo (Mon, 18 Nov 2019 11:51:22 GMT): leopardo (Mon, 18 Nov 2019 11:51:22 GMT): airela (Mon, 18 Nov 2019 13:43:59 GMT): klenik (Mon, 18 Nov 2019 13:56:57 GMT): airela (Mon, 18 Nov 2019 23:45:21 GMT): z5239604 (Tue, 19 Nov 2019 01:31:45 GMT): z5239604 (Tue, 19 Nov 2019 01:37:48 GMT): z5239604 (Tue, 19 Nov 2019 01:37:48 GMT): ysl47698 (Tue, 19 Nov 2019 06:35:52 GMT): klenik (Tue, 19 Nov 2019 06:50:34 GMT): klenik (Tue, 19 Nov 2019 06:51:25 GMT): z5239604 (Tue, 19 Nov 2019 06:54:28 GMT): klenik (Tue, 19 Nov 2019 07:16:46 GMT): z5239604 (Tue, 19 Nov 2019 07:22:55 GMT): z5239604 (Tue, 19 Nov 2019 07:23:42 GMT): z5239604 (Tue, 19 Nov 2019 07:24:04 GMT): klenik (Tue, 19 Nov 2019 08:02:48 GMT): z5239604 (Tue, 19 Nov 2019 08:13:05 GMT): klenik (Tue, 19 Nov 2019 08:16:13 GMT): klenik (Tue, 19 Nov 2019 08:17:24 GMT): z5239604 (Tue, 19 Nov 2019 08:20:41 GMT): klenik (Tue, 19 Nov 2019 08:24:40 GMT): z5239604 (Tue, 19 Nov 2019 08:46:31 GMT): Silona (Tue, 19 Nov 2019 18:32:23 GMT): leopardo (Wed, 20 Nov 2019 13:10:03 GMT): nkl199 (Wed, 20 Nov 2019 13:21:33 GMT): Silona (Wed, 20 Nov 2019 16:42:09 GMT): shemnon (Mon, 25 Nov 2019 16:21:42 GMT): klenik (Mon, 25 Nov 2019 17:09:09 GMT): shemnon (Mon, 25 Nov 2019 17:09:27 GMT): klenik (Mon, 25 Nov 2019 18:12:17 GMT): klenik (Tue, 26 Nov 2019 13:04:08 GMT): michael (Tue, 26 Nov 2019 18:14:01 GMT): RahulEth (Fri, 29 Nov 2019 10:32:51 GMT): RahulEth (Fri, 29 Nov 2019 10:32:52 GMT): RahulEth (Fri, 29 Nov 2019 10:38:39 GMT): RahulEth (Fri, 29 Nov 2019 10:38:39 GMT): klenik (Fri, 29 Nov 2019 10:41:03 GMT): ArjunC 2 (Tue, 03 Dec 2019 06:10:53 GMT): ArjunC 2 (Tue, 03 Dec 2019 06:10:55 GMT): tengc (Wed, 04 Dec 2019 16:27:25 GMT): marcus.mello (Thu, 05 Dec 2019 00:55:05 GMT): KoushKilla (Fri, 06 Dec 2019 00:29:07 GMT): KoushKilla (Mon, 09 Dec 2019 20:11:43 GMT): klenik (Mon, 09 Dec 2019 23:39:00 GMT): KoushKilla (Mon, 09 Dec 2019 23:39:36 GMT): KoushKilla (Mon, 09 Dec 2019 23:39:43 GMT): klenik (Mon, 09 Dec 2019 23:46:54 GMT): KoushKilla (Mon, 09 Dec 2019 23:48:03 GMT): KoushKilla (Mon, 09 Dec 2019 23:58:16 GMT): klenik (Tue, 10 Dec 2019 00:01:45 GMT): KoushKilla (Tue, 10 Dec 2019 00:05:59 GMT): KoushKilla (Tue, 10 Dec 2019 00:06:44 GMT): klenik (Tue, 10 Dec 2019 08:29:11 GMT): nimaafraz (Tue, 10 Dec 2019 21:20:13 GMT): klenik (Tue, 10 Dec 2019 23:57:10 GMT): KoushKilla (Wed, 11 Dec 2019 00:06:01 GMT): KoushKilla (Wed, 11 Dec 2019 00:06:37 GMT): KoushKilla (Wed, 11 Dec 2019 00:06:38 GMT): klenik (Wed, 11 Dec 2019 00:19:29 GMT): KoushKilla (Wed, 11 Dec 2019 00:21:28 GMT): tharindupr (Wed, 11 Dec 2019 15:00:27 GMT): tharindupr (Wed, 11 Dec 2019 15:00:30 GMT): nimaafraz (Wed, 11 Dec 2019 18:47:59 GMT): Silona (Wed, 11 Dec 2019 21:44:41 GMT): Silona (Wed, 11 Dec 2019 22:01:12 GMT): klenik (Thu, 12 Dec 2019 11:23:51 GMT): michael (Thu, 12 Dec 2019 14:52:29 GMT): tharindupr (Sun, 15 Dec 2019 21:22:12 GMT): michael (Mon, 16 Dec 2019 20:14:50 GMT): atoulme (Mon, 16 Dec 2019 21:23:51 GMT): EmoryBarlow (Mon, 16 Dec 2019 22:53:08 GMT): KoushKilla (Tue, 17 Dec 2019 03:43:13 GMT): KoushKilla (Tue, 17 Dec 2019 22:57:52 GMT): klenik (Wed, 18 Dec 2019 11:24:00 GMT): KoushKilla (Thu, 19 Dec 2019 01:41:33 GMT): JerielFrancisMercado (Thu, 19 Dec 2019 01:45:16 GMT): JerielFrancisMercado (Thu, 19 Dec 2019 01:45:57 GMT): JerielFrancisMercado (Thu, 19 Dec 2019 01:46:06 GMT): nkl199 (Tue, 24 Dec 2019 08:39:02 GMT): JerielFrancisMercado (Fri, 27 Dec 2019 05:00:06 GMT): alainN (Fri, 27 Dec 2019 20:29:56 GMT): alainN (Fri, 27 Dec 2019 20:34:36 GMT): alainN (Fri, 27 Dec 2019 20:35:34 GMT): alainN (Fri, 27 Dec 2019 20:37:22 GMT): alainN (Fri, 27 Dec 2019 22:55:34 GMT): yuqii (Sat, 28 Dec 2019 13:29:21 GMT): yuqii (Sat, 28 Dec 2019 13:29:21 GMT): nkl199 (Sun, 29 Dec 2019 11:13:05 GMT): ulalaa14 (Wed, 08 Jan 2020 15:43:27 GMT): Silona (Thu, 09 Jan 2020 20:18:22 GMT): BranimirMalesevic (Fri, 10 Jan 2020 15:15:59 GMT): BranimirMalesevic (Fri, 10 Jan 2020 15:22:19 GMT): aiswap (Mon, 13 Jan 2020 20:47:59 GMT): aiswap (Mon, 13 Jan 2020 20:55:39 GMT): Jemal (Tue, 14 Jan 2020 00:42:12 GMT): nkl199 (Tue, 14 Jan 2020 08:43:29 GMT): aiswap (Tue, 14 Jan 2020 16:45:04 GMT): Silona (Tue, 14 Jan 2020 16:49:11 GMT): Silona (Tue, 14 Jan 2020 17:01:07 GMT): Silona (Tue, 14 Jan 2020 17:02:35 GMT): Silona (Tue, 14 Jan 2020 17:03:54 GMT): RahulEth (Wed, 15 Jan 2020 06:59:22 GMT): nkl199 (Wed, 15 Jan 2020 11:15:20 GMT): nkl199 (Wed, 15 Jan 2020 11:16:18 GMT): RahulEth (Wed, 15 Jan 2020 11:35:02 GMT): nkl199 (Wed, 15 Jan 2020 11:38:06 GMT): RahulEth (Wed, 15 Jan 2020 11:52:41 GMT): nkl199 (Wed, 15 Jan 2020 11:55:48 GMT): RahulEth (Wed, 15 Jan 2020 12:09:25 GMT): nkl199 (Wed, 15 Jan 2020 12:36:17 GMT): RahulEth (Wed, 15 Jan 2020 12:49:14 GMT): RahulEth (Wed, 15 Jan 2020 12:49:14 GMT): Jemal (Thu, 16 Jan 2020 01:23:01 GMT): Jemal (Thu, 16 Jan 2020 01:24:05 GMT): Jemal (Thu, 16 Jan 2020 01:24:05 GMT): Jemal (Thu, 16 Jan 2020 01:24:05 GMT): Jemal (Thu, 16 Jan 2020 01:24:22 GMT): Jemal (Thu, 16 Jan 2020 01:31:58 GMT): Jemal (Thu, 16 Jan 2020 01:32:06 GMT): parthibanselvaraj (Thu, 16 Jan 2020 06:04:46 GMT): RahulEth (Thu, 16 Jan 2020 07:17:38 GMT): RahulEth (Thu, 16 Jan 2020 07:18:38 GMT): nkl199 (Thu, 16 Jan 2020 09:12:10 GMT): Jemal (Thu, 16 Jan 2020 23:38:14 GMT): Jemal (Thu, 16 Jan 2020 23:38:20 GMT): Jemal (Thu, 16 Jan 2020 23:38:39 GMT): shemnon (Fri, 17 Jan 2020 00:24:26 GMT): shemnon (Fri, 17 Jan 2020 00:24:44 GMT): Jemal (Fri, 17 Jan 2020 00:49:41 GMT): aiswap (Fri, 17 Jan 2020 22:45:32 GMT): aiswap (Fri, 17 Jan 2020 22:48:15 GMT): Jemal (Mon, 20 Jan 2020 09:46:05 GMT): Jemal (Mon, 20 Jan 2020 09:46:05 GMT): Jemal (Mon, 20 Jan 2020 09:46:08 GMT): Jemal (Mon, 20 Jan 2020 09:46:40 GMT): Jemal (Mon, 20 Jan 2020 09:46:40 GMT): nkl199 (Mon, 20 Jan 2020 13:01:02 GMT): Jemal (Mon, 20 Jan 2020 23:57:05 GMT): Jemal (Mon, 20 Jan 2020 23:57:05 GMT): Jemal (Tue, 21 Jan 2020 00:26:43 GMT): nkl199 (Tue, 21 Jan 2020 08:24:22 GMT): Nabilel 1 (Tue, 21 Jan 2020 09:43:00 GMT): Nabilel 1 (Tue, 21 Jan 2020 13:18:32 GMT): aiswap (Tue, 21 Jan 2020 20:17:37 GMT): TzortzisPanagiotis (Wed, 22 Jan 2020 11:01:02 GMT): TzortzisPanagiotis (Wed, 22 Jan 2020 11:01:04 GMT): nkl199 (Wed, 22 Jan 2020 11:17:49 GMT): TzortzisPanagiotis (Wed, 22 Jan 2020 11:19:26 GMT): nkl199 (Wed, 22 Jan 2020 11:46:58 GMT): TzortzisPanagiotis (Thu, 23 Jan 2020 14:14:42 GMT): nkl199 (Thu, 23 Jan 2020 16:58:09 GMT): yannikgold (Sun, 26 Jan 2020 18:03:36 GMT): yannikgold (Sun, 26 Jan 2020 18:03:36 GMT): klenik (Mon, 27 Jan 2020 12:47:27 GMT): Dan (Mon, 27 Jan 2020 17:14:08 GMT): yannikgold (Mon, 27 Jan 2020 21:51:41 GMT): Silona (Mon, 27 Jan 2020 22:25:49 GMT): SamikSamik (Tue, 28 Jan 2020 14:26:41 GMT): SamikSamik (Tue, 28 Jan 2020 14:26:41 GMT): SamikSamik (Tue, 28 Jan 2020 14:33:48 GMT): basilji (Wed, 29 Jan 2020 08:20:25 GMT): basilji (Wed, 29 Jan 2020 08:33:03 GMT): SamikSamik (Wed, 29 Jan 2020 15:33:04 GMT): SamikSamik (Wed, 29 Jan 2020 15:33:12 GMT): nkl199 (Thu, 30 Jan 2020 09:07:48 GMT): SamikSamik (Thu, 30 Jan 2020 12:31:34 GMT): nkl199 (Thu, 30 Jan 2020 13:31:07 GMT): lucianosilva44 (Fri, 31 Jan 2020 01:37:53 GMT): ekovalev (Mon, 03 Feb 2020 23:09:47 GMT): ekovalev (Mon, 03 Feb 2020 23:09:48 GMT): RamanM (Wed, 05 Feb 2020 12:00:07 GMT): nkl199 (Thu, 06 Feb 2020 09:44:01 GMT): nkl199 (Thu, 06 Feb 2020 09:45:33 GMT): klenik (Thu, 06 Feb 2020 17:28:40 GMT): stone-ch (Mon, 10 Feb 2020 04:25:51 GMT): Mozer18 (Mon, 10 Feb 2020 19:32:38 GMT): Silona (Thu, 13 Feb 2020 18:23:23 GMT): Koushik (Thu, 13 Feb 2020 19:55:12 GMT): Koushik (Fri, 14 Feb 2020 05:09:49 GMT): Koushik (Fri, 14 Feb 2020 05:10:21 GMT): Koushik (Fri, 14 Feb 2020 05:11:18 GMT): Koushik (Fri, 14 Feb 2020 05:11:54 GMT): Koushik (Fri, 14 Feb 2020 05:12:18 GMT): Koushik (Fri, 14 Feb 2020 05:12:20 GMT): Koushik (Fri, 14 Feb 2020 05:22:28 GMT): Koushik (Fri, 14 Feb 2020 05:38:46 GMT): klenik (Fri, 14 Feb 2020 09:11:47 GMT): klenik (Fri, 14 Feb 2020 09:12:19 GMT): Mozer18 (Fri, 14 Feb 2020 14:13:07 GMT): Mozer18 (Fri, 14 Feb 2020 14:13:39 GMT): Mozer18 (Fri, 14 Feb 2020 14:13:46 GMT): Mozer18 (Fri, 14 Feb 2020 14:14:23 GMT): klenik (Fri, 14 Feb 2020 15:35:54 GMT): Mozer18 (Sun, 16 Feb 2020 21:03:31 GMT): klenik (Mon, 17 Feb 2020 08:48:45 GMT): Silona (Mon, 17 Feb 2020 22:17:33 GMT): CatarinaDiegues (Wed, 19 Feb 2020 23:05:07 GMT): RamanM (Fri, 21 Feb 2020 12:42:34 GMT): klenik (Fri, 21 Feb 2020 13:41:28 GMT): nkl199 (Fri, 21 Feb 2020 13:46:07 GMT): nkl199 (Fri, 21 Feb 2020 13:46:43 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 08:43:37 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 08:43:39 GMT): nkl199 (Wed, 26 Feb 2020 09:46:30 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 09:47:59 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 09:48:01 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 09:49:07 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 09:49:10 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 09:50:09 GMT): nkl199 (Wed, 26 Feb 2020 09:53:45 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 09:58:30 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 09:59:01 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 09:59:30 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 09:59:54 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 09:59:57 GMT): klenik (Wed, 26 Feb 2020 10:00:48 GMT): klenik (Wed, 26 Feb 2020 10:01:21 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 10:03:11 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 10:05:34 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 10:05:35 GMT): klenik (Wed, 26 Feb 2020 10:07:17 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 10:08:17 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 10:08:45 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 10:09:06 GMT): SateeshBangarugiri (Wed, 26 Feb 2020 10:09:26 GMT): klenik (Wed, 26 Feb 2020 10:17:18 GMT): rkrish82 (Wed, 26 Feb 2020 17:43:00 GMT): rkrish82 (Wed, 26 Feb 2020 17:43:24 GMT): rkrish82 (Wed, 26 Feb 2020 17:43:25 GMT): rkrish82 (Thu, 27 Feb 2020 07:26:43 GMT): klenik (Thu, 27 Feb 2020 07:39:02 GMT): rkrish82 (Thu, 27 Feb 2020 07:40:33 GMT): rkrish82 (Thu, 27 Feb 2020 07:41:14 GMT): rkrish82 (Thu, 27 Feb 2020 07:42:14 GMT): rkrish82 (Thu, 27 Feb 2020 07:42:34 GMT): klenik (Thu, 27 Feb 2020 07:48:43 GMT): klenik (Thu, 27 Feb 2020 08:19:40 GMT): rkrish82 (Thu, 27 Feb 2020 08:20:45 GMT): rkrish82 (Thu, 27 Feb 2020 08:20:51 GMT): klenik (Thu, 27 Feb 2020 08:29:33 GMT): gorbunovperm (Thu, 27 Feb 2020 10:13:41 GMT): GBECBWP (Thu, 27 Feb 2020 18:19:54 GMT): GBECBWP (Thu, 27 Feb 2020 18:19:55 GMT): GBECBWP (Thu, 27 Feb 2020 18:19:55 GMT): GBECBWP (Thu, 27 Feb 2020 18:19:55 GMT): GBECBWP (Thu, 27 Feb 2020 18:34:12 GMT): GBECBWP (Thu, 27 Feb 2020 18:34:12 GMT): klenik (Thu, 27 Feb 2020 19:38:55 GMT): klenik (Thu, 27 Feb 2020 19:41:15 GMT): SateeshBangarugiri (Fri, 28 Feb 2020 10:07:34 GMT): klenik (Fri, 28 Feb 2020 10:12:28 GMT): SateeshBangarugiri (Fri, 28 Feb 2020 10:19:01 GMT): klenik (Fri, 28 Feb 2020 10:21:56 GMT): SateeshBangarugiri (Fri, 28 Feb 2020 10:22:52 GMT): klenik (Fri, 28 Feb 2020 10:22:57 GMT): klenik (Fri, 28 Feb 2020 10:23:24 GMT): SateeshBangarugiri (Fri, 28 Feb 2020 10:23:56 GMT): SateeshBangarugiri (Fri, 28 Feb 2020 10:24:00 GMT): klenik (Fri, 28 Feb 2020 10:24:16 GMT): SateeshBangarugiri (Fri, 28 Feb 2020 10:24:44 GMT): SateeshBangarugiri (Fri, 28 Feb 2020 10:24:49 GMT): SateeshBangarugiri (Fri, 28 Feb 2020 10:24:51 GMT): klenik (Fri, 28 Feb 2020 10:24:59 GMT): GBECBWP (Fri, 28 Feb 2020 10:26:14 GMT): klenik (Fri, 28 Feb 2020 10:27:53 GMT): GBECBWP (Fri, 28 Feb 2020 10:28:36 GMT): klenik (Fri, 28 Feb 2020 10:30:38 GMT): GBECBWP (Fri, 28 Feb 2020 10:42:19 GMT): GBECBWP (Fri, 28 Feb 2020 10:42:19 GMT): klenik (Fri, 28 Feb 2020 10:42:43 GMT): GBECBWP (Fri, 28 Feb 2020 10:57:10 GMT): klenik (Fri, 28 Feb 2020 10:58:17 GMT): klenik (Fri, 28 Feb 2020 10:58:46 GMT): GBECBWP (Fri, 28 Feb 2020 11:05:02 GMT): GBECBWP (Fri, 28 Feb 2020 11:05:02 GMT): klenik (Fri, 28 Feb 2020 11:05:04 GMT): GBECBWP (Fri, 28 Feb 2020 11:05:23 GMT): klenik (Fri, 28 Feb 2020 11:05:54 GMT): GBECBWP (Fri, 28 Feb 2020 11:06:40 GMT): GBECBWP (Fri, 28 Feb 2020 11:07:16 GMT): GBECBWP (Fri, 28 Feb 2020 11:07:54 GMT): klenik (Fri, 28 Feb 2020 11:10:15 GMT): GBECBWP (Fri, 28 Feb 2020 11:13:50 GMT): GBECBWP (Fri, 28 Feb 2020 11:14:03 GMT): GBECBWP (Fri, 28 Feb 2020 11:14:03 GMT): klenik (Fri, 28 Feb 2020 11:15:41 GMT): GBECBWP (Fri, 28 Feb 2020 11:16:41 GMT): silliman (Sat, 29 Feb 2020 20:23:42 GMT): rkrish82 (Mon, 02 Mar 2020 04:36:07 GMT): rkrish82 (Mon, 02 Mar 2020 04:36:25 GMT): rkrish82 (Mon, 02 Mar 2020 04:37:33 GMT): rkrish82 (Mon, 02 Mar 2020 04:37:35 GMT): gorbunovperm (Mon, 02 Mar 2020 06:49:00 GMT): gorbunovperm (Mon, 02 Mar 2020 06:52:25 GMT): gorbunovperm (Mon, 02 Mar 2020 06:52:25 GMT): gorbunovperm (Mon, 02 Mar 2020 06:52:25 GMT): gorbunovperm (Mon, 02 Mar 2020 06:52:25 GMT): gorbunovperm (Mon, 02 Mar 2020 06:52:25 GMT): gorbunovperm (Mon, 02 Mar 2020 06:56:00 GMT): gorbunovperm (Mon, 02 Mar 2020 06:57:20 GMT): gorbunovperm (Mon, 02 Mar 2020 10:13:35 GMT): icarrascol (Mon, 02 Mar 2020 18:39:38 GMT): klenik (Mon, 02 Mar 2020 20:59:44 GMT): gorbunovperm (Tue, 03 Mar 2020 08:04:50 GMT): gorbunovperm (Tue, 03 Mar 2020 08:04:50 GMT): klenik (Tue, 03 Mar 2020 09:05:06 GMT): klenik (Tue, 03 Mar 2020 09:06:22 GMT): gorbunovperm (Tue, 03 Mar 2020 09:35:44 GMT): icarrascol (Tue, 03 Mar 2020 14:06:33 GMT): icarrascol (Tue, 03 Mar 2020 14:10:45 GMT): klenik (Wed, 04 Mar 2020 10:06:40 GMT): nkl199 (Wed, 04 Mar 2020 13:31:32 GMT): icarrascol (Wed, 04 Mar 2020 17:19:18 GMT): klenik (Wed, 04 Mar 2020 17:46:52 GMT): icarrascol (Wed, 04 Mar 2020 20:57:32 GMT): nkl199 (Wed, 04 Mar 2020 22:29:49 GMT): Jemal (Fri, 06 Mar 2020 08:10:56 GMT): erodotosd (Fri, 06 Mar 2020 10:35:42 GMT): obelix (Sun, 08 Mar 2020 14:57:33 GMT): PranavBhardwaja67 (Mon, 09 Mar 2020 05:25:11 GMT): obelix (Mon, 09 Mar 2020 15:17:27 GMT): klenik (Mon, 09 Mar 2020 15:44:09 GMT): rkrish82 (Mon, 09 Mar 2020 17:06:45 GMT): rkrish82 (Mon, 09 Mar 2020 17:07:05 GMT): rkrish82 (Mon, 09 Mar 2020 17:07:17 GMT): rkrish82 (Mon, 09 Mar 2020 17:07:25 GMT): klenik (Mon, 09 Mar 2020 20:05:53 GMT): klenik (Mon, 09 Mar 2020 20:06:57 GMT): rkrish82 (Tue, 10 Mar 2020 02:57:29 GMT): rkrish82 (Tue, 10 Mar 2020 02:57:29 GMT): rkrish82 (Tue, 10 Mar 2020 02:57:47 GMT): klenik (Tue, 10 Mar 2020 10:30:54 GMT): rkrish82 (Tue, 10 Mar 2020 13:29:09 GMT): rkrish82 (Tue, 10 Mar 2020 17:46:37 GMT): klenik (Tue, 10 Mar 2020 20:50:12 GMT): MarcoMazzoni (Wed, 11 Mar 2020 11:49:28 GMT): MarcoMazzoni (Wed, 11 Mar 2020 12:02:23 GMT): nkl199 (Wed, 11 Mar 2020 12:48:42 GMT): nkl199 (Wed, 11 Mar 2020 12:48:42 GMT): nkl199 (Wed, 11 Mar 2020 12:48:42 GMT): PranavBhardwaja67 (Wed, 11 Mar 2020 13:16:03 GMT): klenik (Wed, 11 Mar 2020 13:17:52 GMT): PranavBhardwaja67 (Wed, 11 Mar 2020 13:27:58 GMT): klenik (Wed, 11 Mar 2020 13:47:00 GMT): klenik (Wed, 11 Mar 2020 13:48:10 GMT): MarcoMazzoni (Thu, 12 Mar 2020 10:22:08 GMT): MarcoMazzoni (Thu, 12 Mar 2020 13:54:49 GMT): klenik (Thu, 12 Mar 2020 18:54:31 GMT): Abhishekkishor (Thu, 12 Mar 2020 19:30:10 GMT): PranavBhardwaja67 (Fri, 13 Mar 2020 04:56:39 GMT): MarcoMazzoni (Fri, 13 Mar 2020 09:41:18 GMT): klenik (Fri, 13 Mar 2020 11:32:18 GMT): klenik (Fri, 13 Mar 2020 11:33:01 GMT): MarcoMazzoni (Sat, 14 Mar 2020 10:13:05 GMT): MarcoMazzoni (Sat, 14 Mar 2020 11:52:59 GMT): MarcoMazzoni (Sat, 14 Mar 2020 11:53:45 GMT): dsanchezseco (Thu, 19 Mar 2020 11:09:20 GMT): dsanchezseco (Thu, 19 Mar 2020 11:36:18 GMT): shemnon (Thu, 19 Mar 2020 16:08:54 GMT): shemnon (Thu, 19 Mar 2020 16:09:52 GMT): shemnon (Thu, 19 Mar 2020 16:10:05 GMT): gokulalex (Fri, 20 Mar 2020 05:27:34 GMT): nkl199 (Fri, 20 Mar 2020 13:51:44 GMT): klenik (Mon, 23 Mar 2020 11:17:13 GMT): dsanchezseco (Mon, 23 Mar 2020 11:56:45 GMT): benjamincburns (Mon, 23 Mar 2020 20:50:05 GMT): benjamincburns (Mon, 23 Mar 2020 20:50:06 GMT): klenik (Mon, 23 Mar 2020 22:18:39 GMT): klenik (Mon, 23 Mar 2020 22:18:39 GMT): benjamincburns (Mon, 23 Mar 2020 23:14:05 GMT): benjamincburns (Mon, 23 Mar 2020 23:14:41 GMT): klenik (Tue, 24 Mar 2020 00:21:51 GMT): benjamincburns (Tue, 24 Mar 2020 21:47:32 GMT): nkl199 (Wed, 25 Mar 2020 09:27:52 GMT): benjamincburns (Wed, 25 Mar 2020 16:31:09 GMT): benjamincburns (Wed, 25 Mar 2020 16:31:40 GMT): benjamincburns (Wed, 25 Mar 2020 16:31:40 GMT): shemnon (Wed, 25 Mar 2020 16:34:08 GMT): benjamincburns (Wed, 25 Mar 2020 16:43:26 GMT): benjamincburns (Wed, 25 Mar 2020 16:43:38 GMT): benjamincburns (Wed, 25 Mar 2020 16:43:41 GMT): benjamincburns (Wed, 25 Mar 2020 16:44:21 GMT): shemnon (Wed, 25 Mar 2020 16:47:04 GMT): benjamincburns (Wed, 25 Mar 2020 16:49:49 GMT): benjamincburns (Wed, 25 Mar 2020 16:50:09 GMT): benjamincburns (Wed, 25 Mar 2020 16:50:38 GMT): benjamincburns (Wed, 25 Mar 2020 16:51:05 GMT): benjamincburns (Wed, 25 Mar 2020 16:52:12 GMT): benjamincburns (Wed, 25 Mar 2020 16:52:35 GMT): shemnon (Wed, 25 Mar 2020 16:57:04 GMT): shemnon (Wed, 25 Mar 2020 16:57:05 GMT): shemnon (Wed, 25 Mar 2020 16:57:27 GMT): shemnon (Wed, 25 Mar 2020 16:59:45 GMT): benjamincburns (Wed, 25 Mar 2020 17:15:26 GMT): benjamincburns (Wed, 25 Mar 2020 17:16:26 GMT): benjamincburns (Wed, 25 Mar 2020 17:17:08 GMT): benjamincburns (Wed, 25 Mar 2020 17:17:08 GMT): benjamincburns (Wed, 25 Mar 2020 17:27:57 GMT): SaphiraBjartskular (Wed, 25 Mar 2020 18:06:29 GMT): SaphiraBjartskular (Wed, 25 Mar 2020 18:06:30 GMT): SaphiraBjartskular (Wed, 25 Mar 2020 19:24:38 GMT): SaphiraBjartskular (Wed, 25 Mar 2020 22:55:18 GMT): nkl199 (Thu, 26 Mar 2020 08:29:00 GMT): SaphiraBjartskular (Thu, 26 Mar 2020 15:21:06 GMT): SaphiraBjartskular (Thu, 26 Mar 2020 15:26:26 GMT): nkl199 (Thu, 26 Mar 2020 16:56:38 GMT): nkl199 (Thu, 26 Mar 2020 16:56:38 GMT): nkl199 (Thu, 26 Mar 2020 17:00:05 GMT): SaphiraBjartskular (Thu, 26 Mar 2020 17:09:31 GMT): SaphiraBjartskular (Thu, 26 Mar 2020 17:09:49 GMT): nkl199 (Thu, 26 Mar 2020 17:10:34 GMT): klenik (Thu, 26 Mar 2020 17:19:18 GMT): klenik (Thu, 26 Mar 2020 17:21:56 GMT): SaphiraBjartskular (Thu, 26 Mar 2020 17:25:02 GMT): klenik (Thu, 26 Mar 2020 17:25:41 GMT): SaphiraBjartskular (Thu, 26 Mar 2020 17:29:42 GMT): SaphiraBjartskular (Thu, 26 Mar 2020 17:53:22 GMT): nkl199 (Fri, 27 Mar 2020 08:28:18 GMT): benjamincburns (Mon, 30 Mar 2020 22:35:56 GMT): benjamincburns (Tue, 31 Mar 2020 19:11:07 GMT): benjamincburns (Tue, 31 Mar 2020 19:11:08 GMT): benjamincburns (Tue, 31 Mar 2020 19:11:08 GMT): benjamincburns (Tue, 31 Mar 2020 19:19:50 GMT): benjamincburns (Tue, 31 Mar 2020 19:19:50 GMT): jongyoon (Wed, 01 Apr 2020 04:17:45 GMT): jongyoon (Wed, 01 Apr 2020 04:17:46 GMT): shemnon (Wed, 01 Apr 2020 15:18:58 GMT): benjamincburns (Wed, 01 Apr 2020 16:13:46 GMT): NicolasMassart (Wed, 01 Apr 2020 16:22:29 GMT): Abhishekkishor (Wed, 01 Apr 2020 20:33:41 GMT): gorbunovperm (Thu, 02 Apr 2020 03:56:02 GMT): Abhishekkishor (Thu, 02 Apr 2020 04:05:30 GMT): randyshu (Thu, 02 Apr 2020 11:58:35 GMT): randyshu (Thu, 02 Apr 2020 12:00:13 GMT): randyshu (Thu, 02 Apr 2020 12:39:46 GMT): randyshu (Thu, 02 Apr 2020 12:40:54 GMT): AhmedHussein (Thu, 02 Apr 2020 16:23:37 GMT): AhmedHussein (Thu, 02 Apr 2020 16:23:38 GMT): benjamincburns (Thu, 02 Apr 2020 17:19:03 GMT): klenik (Thu, 02 Apr 2020 19:08:38 GMT): klenik (Thu, 02 Apr 2020 19:11:20 GMT): klenik (Thu, 02 Apr 2020 19:12:45 GMT): AngeloVera (Thu, 02 Apr 2020 23:35:54 GMT): AngeloVera (Thu, 02 Apr 2020 23:35:56 GMT): AngeloVera (Thu, 02 Apr 2020 23:50:12 GMT): AngeloVera (Thu, 02 Apr 2020 23:59:32 GMT): AngeloVera (Thu, 02 Apr 2020 23:59:32 GMT): AngeloVera (Fri, 03 Apr 2020 00:00:04 GMT): randyshu (Fri, 03 Apr 2020 02:14:08 GMT): randyshu (Fri, 03 Apr 2020 03:03:22 GMT): randyshu (Fri, 03 Apr 2020 08:00:54 GMT): nkl199 (Fri, 03 Apr 2020 09:00:50 GMT): nkl199 (Fri, 03 Apr 2020 09:00:50 GMT): nkl199 (Fri, 03 Apr 2020 09:00:50 GMT): randyshu (Fri, 03 Apr 2020 09:23:16 GMT): randyshu (Fri, 03 Apr 2020 10:48:23 GMT): klenik (Fri, 03 Apr 2020 11:15:21 GMT): randyshu (Fri, 03 Apr 2020 11:36:30 GMT): randyshu (Fri, 03 Apr 2020 11:38:47 GMT): randyshu (Fri, 03 Apr 2020 11:40:34 GMT): klenik (Fri, 03 Apr 2020 15:54:24 GMT): klenik (Fri, 03 Apr 2020 15:55:27 GMT): xhens (Fri, 03 Apr 2020 17:34:59 GMT): xhens (Fri, 03 Apr 2020 17:39:32 GMT): TzortzisPanagiotis (Sat, 04 Apr 2020 13:27:25 GMT): TzortzisPanagiotis (Sat, 04 Apr 2020 19:27:54 GMT): TzortzisPanagiotis (Sat, 04 Apr 2020 19:27:54 GMT): nkl199 (Mon, 06 Apr 2020 11:09:38 GMT): icarrascol (Mon, 06 Apr 2020 17:29:00 GMT): AngeloVera (Tue, 07 Apr 2020 01:32:15 GMT): AngeloVera (Tue, 07 Apr 2020 01:32:15 GMT): AngeloVera (Tue, 07 Apr 2020 01:32:15 GMT): AngeloVera (Tue, 07 Apr 2020 01:32:15 GMT): AngeloVera (Tue, 07 Apr 2020 01:32:15 GMT): AngeloVera (Tue, 07 Apr 2020 01:32:15 GMT): AngeloVera (Tue, 07 Apr 2020 01:32:15 GMT): AngeloVera (Tue, 07 Apr 2020 01:32:15 GMT): AngeloVera (Tue, 07 Apr 2020 01:32:15 GMT): AngeloVera (Tue, 07 Apr 2020 01:32:15 GMT): AngeloVera (Tue, 07 Apr 2020 01:32:15 GMT): AngeloVera (Tue, 07 Apr 2020 01:36:54 GMT): AngeloVera (Tue, 07 Apr 2020 01:36:54 GMT): AngeloVera (Tue, 07 Apr 2020 01:36:54 GMT): AngeloVera (Tue, 07 Apr 2020 01:44:45 GMT): randyshu (Tue, 07 Apr 2020 02:05:39 GMT): ehouhon (Tue, 07 Apr 2020 03:33:49 GMT): randyshu (Tue, 07 Apr 2020 03:57:58 GMT): randyshu (Tue, 07 Apr 2020 05:44:46 GMT): randyshu (Tue, 07 Apr 2020 06:43:18 GMT): nkl199 (Tue, 07 Apr 2020 07:49:09 GMT): nkl199 (Tue, 07 Apr 2020 07:50:53 GMT): randyshu (Tue, 07 Apr 2020 09:20:39 GMT): AngeloVera (Wed, 08 Apr 2020 02:56:06 GMT): AngeloVera (Wed, 08 Apr 2020 02:56:06 GMT): AngeloVera (Wed, 08 Apr 2020 02:56:56 GMT): AngeloVera (Wed, 08 Apr 2020 02:57:16 GMT): AngeloVera (Wed, 08 Apr 2020 02:57:33 GMT): AngeloVera (Wed, 08 Apr 2020 02:57:50 GMT): nkl199 (Wed, 08 Apr 2020 08:53:05 GMT): randyshu (Wed, 08 Apr 2020 08:54:08 GMT): randyshu (Wed, 08 Apr 2020 08:54:42 GMT): randyshu (Wed, 08 Apr 2020 09:37:23 GMT): ouzm (Wed, 08 Apr 2020 10:08:46 GMT): nkl199 (Wed, 08 Apr 2020 10:27:24 GMT): randyshu (Fri, 10 Apr 2020 02:28:22 GMT): AngeloVera (Sat, 11 Apr 2020 20:26:41 GMT): randyshu (Mon, 13 Apr 2020 03:10:11 GMT): randyshu (Mon, 13 Apr 2020 03:12:03 GMT): randyshu (Mon, 13 Apr 2020 03:12:49 GMT): randyshu (Mon, 13 Apr 2020 03:15:16 GMT): dbdagr8 (Mon, 13 Apr 2020 05:01:56 GMT): randyshu (Mon, 13 Apr 2020 08:46:34 GMT): NehaGhogale-inn (Mon, 13 Apr 2020 10:24:23 GMT): AngeloVera (Mon, 13 Apr 2020 12:48:36 GMT): gauravgiri (Tue, 14 Apr 2020 07:15:49 GMT): gauravgiri (Tue, 14 Apr 2020 07:15:50 GMT): nkl199 (Tue, 14 Apr 2020 08:07:14 GMT): gauravgiri (Tue, 14 Apr 2020 08:19:17 GMT): gauravgiri (Tue, 14 Apr 2020 08:19:17 GMT): klenik (Tue, 14 Apr 2020 09:09:53 GMT): klenik (Tue, 14 Apr 2020 09:11:51 GMT): gauravgiri (Tue, 14 Apr 2020 09:35:42 GMT): gauravgiri (Tue, 14 Apr 2020 09:35:42 GMT): gauravgiri (Tue, 14 Apr 2020 09:56:42 GMT): gauravgiri (Tue, 14 Apr 2020 09:56:42 GMT): SusheelDighade (Tue, 14 Apr 2020 14:41:52 GMT): randyshu (Wed, 15 Apr 2020 07:03:16 GMT): nkl199 (Wed, 15 Apr 2020 07:57:40 GMT): randyshu (Wed, 15 Apr 2020 08:01:30 GMT): randyshu (Wed, 15 Apr 2020 08:03:09 GMT): nkl199 (Wed, 15 Apr 2020 08:11:03 GMT): randyshu (Wed, 15 Apr 2020 08:13:15 GMT): nkl199 (Wed, 15 Apr 2020 08:38:57 GMT): randyshu (Wed, 15 Apr 2020 08:41:48 GMT): randyshu (Wed, 15 Apr 2020 08:42:06 GMT): randyshu (Wed, 15 Apr 2020 08:42:49 GMT): nkl199 (Wed, 15 Apr 2020 08:47:18 GMT): randyshu (Wed, 15 Apr 2020 08:50:07 GMT): randyshu (Wed, 15 Apr 2020 08:50:07 GMT): nkl199 (Wed, 15 Apr 2020 08:52:47 GMT): nkl199 (Wed, 15 Apr 2020 08:53:05 GMT): randyshu (Wed, 15 Apr 2020 08:57:19 GMT): nkl199 (Wed, 15 Apr 2020 08:58:13 GMT): randyshu (Wed, 15 Apr 2020 08:58:44 GMT): nkl199 (Wed, 15 Apr 2020 08:59:24 GMT): randyshu (Thu, 16 Apr 2020 02:12:35 GMT): HelmiTrabelsi (Thu, 16 Apr 2020 17:18:03 GMT): HelmiTrabelsi (Thu, 16 Apr 2020 17:18:04 GMT): HelmiTrabelsi (Thu, 16 Apr 2020 17:18:04 GMT): benjamincburns (Thu, 16 Apr 2020 19:19:07 GMT): MHBauer (Thu, 16 Apr 2020 21:27:05 GMT): randyshu (Fri, 17 Apr 2020 04:51:05 GMT): NageshCR (Fri, 17 Apr 2020 05:09:41 GMT): NageshCR (Fri, 17 Apr 2020 05:09:43 GMT): NageshCR (Fri, 17 Apr 2020 05:09:51 GMT): nkl199 (Fri, 17 Apr 2020 07:23:39 GMT): nkl199 (Fri, 17 Apr 2020 07:23:59 GMT): HelmiTrabelsi (Fri, 17 Apr 2020 15:50:57 GMT): nkl199 (Fri, 17 Apr 2020 15:59:50 GMT): NageshCR (Fri, 17 Apr 2020 16:21:20 GMT): HelmiTrabelsi (Fri, 17 Apr 2020 16:56:11 GMT): nkl199 (Fri, 17 Apr 2020 17:19:25 GMT): HelmiTrabelsi (Fri, 17 Apr 2020 17:36:37 GMT): benjamincburns (Sat, 18 Apr 2020 00:19:48 GMT): jongyoon (Sun, 19 Apr 2020 11:07:58 GMT): NageshCR (Mon, 20 Apr 2020 10:46:24 GMT): NageshCR (Mon, 20 Apr 2020 10:46:25 GMT): NageshCR (Mon, 20 Apr 2020 10:46:42 GMT): nkl199 (Mon, 20 Apr 2020 12:59:57 GMT): NageshCR (Mon, 20 Apr 2020 16:41:57 GMT): NageshCR (Mon, 20 Apr 2020 16:42:11 GMT): klenik (Mon, 20 Apr 2020 18:23:45 GMT): benjamincburns (Mon, 20 Apr 2020 21:23:03 GMT): Vgkmanju (Tue, 21 Apr 2020 10:37:48 GMT): Vgkmanju (Tue, 21 Apr 2020 10:37:50 GMT): nkl199 (Tue, 21 Apr 2020 13:58:21 GMT): Vgkmanju (Tue, 21 Apr 2020 15:46:25 GMT): randyshu (Wed, 22 Apr 2020 08:37:05 GMT): randyshu (Wed, 22 Apr 2020 08:38:42 GMT): Schkai (Wed, 22 Apr 2020 10:37:34 GMT): Schkai (Wed, 22 Apr 2020 10:37:36 GMT): Schkai (Wed, 22 Apr 2020 10:37:36 GMT): nkl199 (Thu, 23 Apr 2020 11:15:43 GMT): HelmiTrabelsi (Sat, 25 Apr 2020 04:32:26 GMT): nimaafraz (Mon, 27 Apr 2020 07:32:00 GMT): nimaafraz (Mon, 27 Apr 2020 07:32:10 GMT): nimaafraz (Mon, 27 Apr 2020 07:32:10 GMT): nimaafraz (Mon, 27 Apr 2020 07:32:10 GMT): nimaafraz (Mon, 27 Apr 2020 08:07:18 GMT): nimaafraz (Mon, 27 Apr 2020 08:07:24 GMT): obelix (Mon, 27 Apr 2020 21:19:48 GMT): obelix (Mon, 27 Apr 2020 21:19:48 GMT): obelix (Mon, 27 Apr 2020 21:19:48 GMT): obelix (Mon, 27 Apr 2020 21:19:48 GMT): obelix (Mon, 27 Apr 2020 21:19:48 GMT): obelix (Mon, 27 Apr 2020 21:19:48 GMT): obelix (Mon, 27 Apr 2020 21:19:48 GMT): obelix (Mon, 27 Apr 2020 21:19:48 GMT): obelix (Mon, 27 Apr 2020 21:19:48 GMT): obelix (Mon, 27 Apr 2020 21:19:48 GMT): obelix (Mon, 27 Apr 2020 21:19:48 GMT): nkl199 (Tue, 28 Apr 2020 07:45:10 GMT): Schkai (Tue, 28 Apr 2020 08:38:29 GMT): Schkai (Tue, 28 Apr 2020 08:39:52 GMT): Schkai (Tue, 28 Apr 2020 08:41:04 GMT): nkl199 (Tue, 28 Apr 2020 08:42:19 GMT): kiview (Tue, 28 Apr 2020 10:23:01 GMT): kiview (Tue, 28 Apr 2020 10:44:08 GMT): nkl199 (Tue, 28 Apr 2020 12:54:12 GMT): kiview (Tue, 28 Apr 2020 13:34:08 GMT): nkl199 (Tue, 28 Apr 2020 13:54:36 GMT): kiview (Tue, 28 Apr 2020 15:48:41 GMT): nkl199 (Tue, 28 Apr 2020 15:49:40 GMT): nkl199 (Tue, 28 Apr 2020 15:50:15 GMT): lucas54neves (Tue, 28 Apr 2020 20:19:16 GMT): lucas54neves (Tue, 28 Apr 2020 20:19:18 GMT): kiview (Wed, 29 Apr 2020 06:54:20 GMT): kiview (Wed, 29 Apr 2020 06:55:11 GMT): kiview (Wed, 29 Apr 2020 12:17:46 GMT): lepar (Wed, 29 Apr 2020 12:51:16 GMT): lepar (Wed, 29 Apr 2020 12:52:08 GMT): kiview (Wed, 29 Apr 2020 13:18:50 GMT): lepar (Wed, 29 Apr 2020 13:21:03 GMT): nkl199 (Wed, 29 Apr 2020 13:24:43 GMT): Vgkmanju (Wed, 29 Apr 2020 13:43:33 GMT): nkl199 (Wed, 29 Apr 2020 13:49:43 GMT): Vgkmanju (Wed, 29 Apr 2020 13:53:03 GMT): Vgkmanju (Wed, 29 Apr 2020 13:53:03 GMT): Vgkmanju (Wed, 29 Apr 2020 13:53:03 GMT): Vgkmanju (Wed, 29 Apr 2020 13:53:03 GMT): lepar (Wed, 29 Apr 2020 14:10:50 GMT): nkl199 (Wed, 29 Apr 2020 14:12:34 GMT): TzortzisPanagiotis (Wed, 29 Apr 2020 20:15:50 GMT): mojojojo20 (Wed, 29 Apr 2020 20:17:57 GMT): mojojojo20 (Wed, 29 Apr 2020 20:18:00 GMT): mojojojo20 (Wed, 29 Apr 2020 20:18:07 GMT): ShruthieSridhar (Thu, 30 Apr 2020 04:59:41 GMT): ShruthieSridhar (Thu, 30 Apr 2020 04:59:41 GMT): ShruthieSridhar (Thu, 30 Apr 2020 05:00:57 GMT): nkl199 (Thu, 30 Apr 2020 09:48:57 GMT): SergioTorres (Thu, 30 Apr 2020 14:34:12 GMT): vishnupradeepmahe (Thu, 30 Apr 2020 18:55:48 GMT): lucas54neves (Sat, 02 May 2020 00:06:18 GMT): MarcoMazzoni (Sat, 02 May 2020 14:16:28 GMT): MarcoMazzoni (Sat, 02 May 2020 14:32:40 GMT): nimaafraz (Sat, 02 May 2020 16:16:38 GMT): TzortzisPanagiotis (Sat, 02 May 2020 18:32:32 GMT): TzortzisPanagiotis (Sat, 02 May 2020 18:33:16 GMT): mojojojo20 (Sat, 02 May 2020 18:59:37 GMT): mojojojo20 (Sat, 02 May 2020 18:59:53 GMT): nimaafraz (Sat, 02 May 2020 21:29:19 GMT): TzortzisPanagiotis (Sun, 03 May 2020 11:54:02 GMT): skoret (Sun, 03 May 2020 18:54:14 GMT): nkl199 (Mon, 04 May 2020 08:27:35 GMT): benjamincburns (Mon, 04 May 2020 22:04:20 GMT): MarcoMazzoni (Mon, 04 May 2020 22:38:37 GMT): MarcoMazzoni (Mon, 04 May 2020 23:00:58 GMT): MarcoMazzoni (Mon, 04 May 2020 23:04:37 GMT): MarcoMazzoni (Mon, 04 May 2020 23:07:53 GMT): nkl199 (Tue, 05 May 2020 08:30:26 GMT): nkl199 (Tue, 05 May 2020 08:30:26 GMT): MarcoMazzoni (Tue, 05 May 2020 08:35:26 GMT): nkl199 (Tue, 05 May 2020 08:36:52 GMT): MarcoMazzoni (Tue, 05 May 2020 08:38:06 GMT): nkl199 (Tue, 05 May 2020 08:38:41 GMT): nkl199 (Tue, 05 May 2020 08:39:30 GMT): benjamincburns (Tue, 05 May 2020 08:40:14 GMT): nkl199 (Tue, 05 May 2020 08:41:10 GMT): nkl199 (Tue, 05 May 2020 08:41:10 GMT): benjamincburns (Tue, 05 May 2020 08:43:22 GMT): MarcoMazzoni (Tue, 05 May 2020 09:49:54 GMT): nkl199 (Tue, 05 May 2020 09:52:21 GMT): MarcoMazzoni (Tue, 05 May 2020 09:55:30 GMT): nkl199 (Tue, 05 May 2020 09:57:04 GMT): MarcoMazzoni (Tue, 05 May 2020 09:58:33 GMT): nkl199 (Tue, 05 May 2020 09:59:44 GMT): MarcoMazzoni (Tue, 05 May 2020 10:11:29 GMT): MarcoMazzoni (Tue, 05 May 2020 10:11:29 GMT): nkl199 (Tue, 05 May 2020 10:12:41 GMT): MarcoMazzoni (Tue, 05 May 2020 10:12:55 GMT): nkl199 (Tue, 05 May 2020 10:14:43 GMT): MarcoMazzoni (Tue, 05 May 2020 10:18:52 GMT): nkl199 (Tue, 05 May 2020 10:19:38 GMT): nkl199 (Tue, 05 May 2020 10:19:54 GMT): nkl199 (Tue, 05 May 2020 10:20:39 GMT): MarcoMazzoni (Tue, 05 May 2020 10:28:43 GMT): nkl199 (Tue, 05 May 2020 10:29:24 GMT): nkl199 (Tue, 05 May 2020 10:30:19 GMT): MarcoMazzoni (Tue, 05 May 2020 10:30:23 GMT): MarcoMazzoni (Tue, 05 May 2020 10:31:54 GMT): MarcoMazzoni (Tue, 05 May 2020 10:32:11 GMT): nkl199 (Tue, 05 May 2020 10:33:22 GMT): MarcoMazzoni (Tue, 05 May 2020 10:40:50 GMT): SergioTorres (Tue, 05 May 2020 13:32:04 GMT): MarcoMazzoni (Tue, 05 May 2020 13:36:24 GMT): nkl199 (Tue, 05 May 2020 13:44:13 GMT): nkl199 (Tue, 05 May 2020 13:46:46 GMT): MarcoMazzoni (Tue, 05 May 2020 13:47:39 GMT): MarcoMazzoni (Tue, 05 May 2020 13:47:39 GMT): nkl199 (Tue, 05 May 2020 14:06:26 GMT): kiview (Tue, 05 May 2020 15:58:56 GMT): kiview (Tue, 05 May 2020 16:04:03 GMT): MarcoMazzoni (Wed, 06 May 2020 01:27:04 GMT): MarcoMazzoni (Wed, 06 May 2020 01:29:38 GMT): MarcoMazzoni (Wed, 06 May 2020 01:31:05 GMT): nkl199 (Wed, 06 May 2020 07:03:51 GMT): MarcoMazzoni (Wed, 06 May 2020 08:47:25 GMT): MarcoMazzoni (Wed, 06 May 2020 08:48:33 GMT): kiview (Wed, 06 May 2020 11:05:10 GMT): kiview (Wed, 06 May 2020 11:05:29 GMT): klenik (Wed, 06 May 2020 13:04:13 GMT): klenik (Wed, 06 May 2020 13:05:56 GMT): kiview (Wed, 06 May 2020 15:59:29 GMT): NageshCR (Fri, 08 May 2020 07:44:45 GMT): SergioTorres (Fri, 08 May 2020 09:52:18 GMT): heenas06 (Sat, 09 May 2020 08:22:16 GMT): lepar (Mon, 11 May 2020 17:41:08 GMT): NageshCR (Tue, 12 May 2020 05:55:07 GMT): SergioTorres (Tue, 12 May 2020 07:09:52 GMT): nkl199 (Tue, 12 May 2020 07:45:12 GMT): nkl199 (Tue, 12 May 2020 07:45:54 GMT): nkl199 (Tue, 12 May 2020 07:46:36 GMT): NageshCR (Tue, 12 May 2020 09:20:22 GMT): nkl199 (Tue, 12 May 2020 09:20:59 GMT): NageshCR (Tue, 12 May 2020 09:21:42 GMT): nkl199 (Tue, 12 May 2020 09:22:07 GMT): NageshCR (Tue, 12 May 2020 09:22:43 GMT): nkl199 (Tue, 12 May 2020 09:23:26 GMT): nkl199 (Tue, 12 May 2020 09:23:27 GMT): NageshCR (Tue, 12 May 2020 09:24:10 GMT): nkl199 (Tue, 12 May 2020 09:24:45 GMT): NageshCR (Tue, 12 May 2020 09:25:05 GMT): NageshCR (Tue, 12 May 2020 09:25:25 GMT): nkl199 (Tue, 12 May 2020 09:25:44 GMT): NageshCR (Tue, 12 May 2020 09:25:52 GMT): nkl199 (Tue, 12 May 2020 09:27:38 GMT): NageshCR (Tue, 12 May 2020 09:27:50 GMT): nkl199 (Tue, 12 May 2020 09:27:58 GMT): NageshCR (Tue, 12 May 2020 09:27:58 GMT): NageshCR (Tue, 12 May 2020 09:28:06 GMT): nkl199 (Tue, 12 May 2020 09:28:23 GMT): nkl199 (Tue, 12 May 2020 09:28:29 GMT): NageshCR (Tue, 12 May 2020 09:29:38 GMT): NageshCR (Tue, 12 May 2020 09:29:47 GMT): NageshCR (Tue, 12 May 2020 09:29:49 GMT): nkl199 (Tue, 12 May 2020 09:30:29 GMT): NageshCR (Tue, 12 May 2020 09:30:49 GMT): NageshCR (Tue, 12 May 2020 09:42:15 GMT): NageshCR (Tue, 12 May 2020 09:42:18 GMT): kiview (Wed, 13 May 2020 14:27:08 GMT): kiview (Wed, 13 May 2020 14:27:42 GMT): kiview (Wed, 13 May 2020 14:34:29 GMT): benjamincburns (Wed, 13 May 2020 18:47:36 GMT): benjamincburns (Wed, 13 May 2020 18:48:31 GMT): NageshCR (Thu, 14 May 2020 05:11:09 GMT): AbdullahJoyia (Sat, 16 May 2020 09:21:30 GMT): braduf (Mon, 18 May 2020 14:58:26 GMT): braduf (Mon, 18 May 2020 14:58:26 GMT): cavellt (Mon, 18 May 2020 16:20:11 GMT): cavellt (Mon, 18 May 2020 16:20:13 GMT): cavellt (Mon, 18 May 2020 16:25:53 GMT): nkl199 (Tue, 19 May 2020 08:16:21 GMT): benjamincburns (Tue, 19 May 2020 19:11:52 GMT): nkl199 (Wed, 20 May 2020 07:40:57 GMT): braduf (Fri, 22 May 2020 23:27:58 GMT): braduf (Sat, 23 May 2020 00:35:03 GMT): braduf (Sat, 23 May 2020 00:51:52 GMT): braduf (Sat, 23 May 2020 00:59:42 GMT): braduf (Sat, 23 May 2020 01:01:20 GMT): braduf (Sat, 23 May 2020 03:49:24 GMT): braduf (Sat, 23 May 2020 03:49:24 GMT): braduf (Sat, 23 May 2020 03:50:27 GMT): covepark (Sat, 23 May 2020 06:58:14 GMT): covepark (Sat, 23 May 2020 07:03:56 GMT): covepark (Sat, 23 May 2020 07:03:56 GMT): covepark (Sat, 23 May 2020 07:03:56 GMT): covepark (Sat, 23 May 2020 07:03:56 GMT): covepark (Sat, 23 May 2020 07:03:56 GMT): covepark (Sat, 23 May 2020 07:03:56 GMT): braduf (Sun, 24 May 2020 03:57:25 GMT): klenik (Mon, 25 May 2020 10:25:12 GMT): klenik (Mon, 25 May 2020 10:26:26 GMT): qwertlimframe (Tue, 26 May 2020 08:44:06 GMT): qwertlimframe (Tue, 26 May 2020 08:45:47 GMT): nkl199 (Tue, 26 May 2020 09:06:15 GMT): qwertlimframe (Tue, 26 May 2020 15:29:44 GMT): AbdullahJoyia (Wed, 27 May 2020 19:08:04 GMT): covepark (Thu, 28 May 2020 07:04:22 GMT): covepark (Thu, 28 May 2020 07:09:54 GMT): covepark (Thu, 28 May 2020 07:09:54 GMT): covepark (Thu, 28 May 2020 07:16:36 GMT): covepark (Thu, 28 May 2020 07:16:36 GMT): klenik (Thu, 28 May 2020 09:34:59 GMT): klenik (Thu, 28 May 2020 09:34:59 GMT): klenik (Thu, 28 May 2020 09:36:59 GMT): klenik (Thu, 28 May 2020 09:41:31 GMT): covepark (Thu, 28 May 2020 11:47:44 GMT): covepark (Sun, 31 May 2020 11:48:18 GMT): covepark (Sun, 31 May 2020 11:48:18 GMT): klenik (Sun, 31 May 2020 13:03:59 GMT): covepark (Mon, 01 Jun 2020 03:55:19 GMT): Nischal_Vasisth (Mon, 01 Jun 2020 14:35:46 GMT): Nischal_Vasisth (Mon, 01 Jun 2020 14:35:46 GMT): Nischal_Vasisth (Mon, 01 Jun 2020 18:24:18 GMT): lotty02cho (Tue, 02 Jun 2020 06:52:51 GMT): nkl199 (Tue, 02 Jun 2020 07:07:56 GMT): GmoneyCoder (Wed, 03 Jun 2020 01:10:44 GMT): RimAbdallah (Wed, 03 Jun 2020 09:55:02 GMT): RimAbdallah (Wed, 03 Jun 2020 09:57:04 GMT): nkl199 (Wed, 03 Jun 2020 10:42:46 GMT): RimAbdallah (Wed, 03 Jun 2020 10:49:31 GMT): Vgkmanju (Wed, 03 Jun 2020 10:54:58 GMT): klenik (Thu, 04 Jun 2020 10:34:31 GMT): braduf (Thu, 04 Jun 2020 19:52:12 GMT): PamudithaNavaratne (Sat, 06 Jun 2020 20:44:16 GMT): PamudithaNavaratne (Sat, 06 Jun 2020 20:44:16 GMT): klenik (Sun, 07 Jun 2020 12:31:07 GMT): klenik (Sun, 07 Jun 2020 12:36:47 GMT): githubckgoh1439 (Mon, 08 Jun 2020 10:53:27 GMT): githubckgoh1439 (Mon, 08 Jun 2020 10:53:54 GMT): githubckgoh1439 (Mon, 08 Jun 2020 10:55:36 GMT): nkl199 (Mon, 08 Jun 2020 13:00:07 GMT): braduf (Mon, 08 Jun 2020 16:51:07 GMT): braduf (Mon, 08 Jun 2020 16:51:07 GMT): ::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo ::Callback = void (*)(const v8::WeakCallbackInfo braduf (Mon, 08 Jun 2020 16:51:07 GMT): ::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo ::Callback = void (*)(const v8::WeakCallbackInfo braduf (Mon, 08 Jun 2020 16:51:07 GMT): ::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo ::Callback = void (*)(const v8::WeakCallbackInfo nkl199 (Mon, 08 Jun 2020 17:54:12 GMT): braduf (Mon, 08 Jun 2020 20:41:59 GMT): braduf (Mon, 08 Jun 2020 20:41:59 GMT): hazbiy97 (Tue, 09 Jun 2020 16:40:30 GMT): hazbiy97 (Tue, 09 Jun 2020 16:40:30 GMT): braduf (Tue, 09 Jun 2020 20:00:12 GMT): nkl199 (Tue, 09 Jun 2020 20:01:13 GMT): nkl199 (Tue, 09 Jun 2020 20:01:27 GMT): braduf (Tue, 09 Jun 2020 20:19:56 GMT): braduf (Tue, 09 Jun 2020 20:19:56 GMT): nkl199 (Tue, 09 Jun 2020 20:22:23 GMT): hazbiy97 (Tue, 09 Jun 2020 21:32:18 GMT): braduf (Tue, 09 Jun 2020 21:40:26 GMT): braduf (Tue, 09 Jun 2020 21:40:26 GMT): Gng (Wed, 10 Jun 2020 08:20:03 GMT): Gng (Wed, 10 Jun 2020 08:20:03 GMT): klenik (Wed, 10 Jun 2020 09:00:16 GMT): nkl199 (Wed, 10 Jun 2020 09:00:51 GMT): Gng (Wed, 10 Jun 2020 09:06:23 GMT): GBECBWP (Wed, 10 Jun 2020 12:49:54 GMT): klenik (Wed, 10 Jun 2020 13:02:28 GMT): nkl199 (Wed, 10 Jun 2020 13:03:23 GMT): CarlosMorales (Wed, 10 Jun 2020 13:57:41 GMT): CarlosMorales (Wed, 10 Jun 2020 13:57:42 GMT): CarlosMorales (Wed, 10 Jun 2020 13:57:42 GMT): CarlosMorales (Wed, 10 Jun 2020 14:05:51 GMT): braduf (Wed, 10 Jun 2020 14:20:05 GMT): braduf (Wed, 10 Jun 2020 14:20:05 GMT): braduf (Wed, 10 Jun 2020 14:20:05 GMT): braduf (Wed, 10 Jun 2020 14:20:05 GMT): braduf (Wed, 10 Jun 2020 14:20:05 GMT): klenik (Wed, 10 Jun 2020 14:24:57 GMT): braduf (Wed, 10 Jun 2020 14:32:26 GMT): nkl199 (Wed, 10 Jun 2020 14:34:09 GMT): klenik (Wed, 10 Jun 2020 14:44:13 GMT): braduf (Wed, 10 Jun 2020 14:52:02 GMT): GBECBWP (Wed, 10 Jun 2020 15:08:01 GMT): GBECBWP (Wed, 10 Jun 2020 15:08:21 GMT): AbhishekAadi (Wed, 10 Jun 2020 16:02:29 GMT): AbhishekAadi (Wed, 10 Jun 2020 16:03:43 GMT): senthilkumarr (Thu, 11 Jun 2020 10:34:30 GMT): senthilkumarr (Thu, 11 Jun 2020 10:34:31 GMT): nkl199 (Thu, 11 Jun 2020 12:04:22 GMT): senthilkumarr (Thu, 11 Jun 2020 16:06:55 GMT): NickName (Thu, 11 Jun 2020 22:38:31 GMT): NickName (Thu, 11 Jun 2020 22:38:32 GMT): NickName (Thu, 11 Jun 2020 22:51:05 GMT): NickName (Fri, 12 Jun 2020 05:42:31 GMT): Fama 5 (Fri, 12 Jun 2020 07:08:47 GMT): Fama 5 (Fri, 12 Jun 2020 07:08:47 GMT): nkl199 (Fri, 12 Jun 2020 07:19:06 GMT): nkl199 (Fri, 12 Jun 2020 07:21:09 GMT): Fama 5 (Fri, 12 Jun 2020 07:22:20 GMT): NickName (Sun, 14 Jun 2020 12:10:50 GMT): nkl199 (Mon, 15 Jun 2020 08:19:02 GMT): NickName (Mon, 15 Jun 2020 13:11:30 GMT): BilelZaghdoudi (Mon, 15 Jun 2020 16:21:29 GMT): BilelZaghdoudi (Mon, 15 Jun 2020 16:21:29 GMT): nkl199 (Mon, 15 Jun 2020 17:20:35 GMT): BilelZaghdoudi (Tue, 16 Jun 2020 08:29:30 GMT): ahmetpergamum (Tue, 16 Jun 2020 09:26:20 GMT): MalakBritel (Thu, 18 Jun 2020 19:29:37 GMT): MalakBritel (Thu, 18 Jun 2020 19:29:37 GMT): nkl199 (Fri, 19 Jun 2020 07:50:59 GMT): NickName (Fri, 19 Jun 2020 12:47:38 GMT): kiview (Fri, 19 Jun 2020 12:49:57 GMT): Adhavpavan (Sat, 20 Jun 2020 09:58:38 GMT): Adhavpavan (Sat, 20 Jun 2020 10:06:06 GMT): NamanGupta1003 (Sat, 20 Jun 2020 12:40:25 GMT): NamanGupta1003 (Sat, 20 Jun 2020 12:42:33 GMT): NamanGupta1003 (Sat, 20 Jun 2020 14:27:01 GMT): nkl199 (Mon, 22 Jun 2020 08:05:49 GMT): klenik (Mon, 22 Jun 2020 08:48:39 GMT): klenik (Mon, 22 Jun 2020 08:50:54 GMT): MalakBritel (Mon, 22 Jun 2020 09:07:43 GMT): MalakBritel (Mon, 22 Jun 2020 09:10:47 GMT): NickName (Mon, 22 Jun 2020 10:22:29 GMT): NickName (Mon, 22 Jun 2020 10:22:29 GMT): DT.Kernel (Mon, 22 Jun 2020 11:43:32 GMT): DT.Kernel (Mon, 22 Jun 2020 11:43:32 GMT): DT.Kernel (Mon, 22 Jun 2020 11:44:09 GMT): NamanGupta1003 (Mon, 22 Jun 2020 13:19:21 GMT): DT.Kernel (Mon, 22 Jun 2020 13:44:54 GMT): akoita (Mon, 22 Jun 2020 14:32:11 GMT): akoita (Mon, 22 Jun 2020 14:32:11 GMT): akoita (Mon, 22 Jun 2020 14:32:11 GMT): akoita (Mon, 22 Jun 2020 14:32:11 GMT): akoita (Mon, 22 Jun 2020 14:32:11 GMT): akoita (Mon, 22 Jun 2020 14:32:11 GMT): akoita (Mon, 22 Jun 2020 14:32:11 GMT): akoita (Mon, 22 Jun 2020 14:40:45 GMT): akoita (Mon, 22 Jun 2020 14:40:45 GMT): aqid (Mon, 22 Jun 2020 18:16:32 GMT): aqid (Mon, 22 Jun 2020 18:16:33 GMT): aqid (Mon, 22 Jun 2020 18:16:33 GMT): NamanGupta1003 (Mon, 22 Jun 2020 18:31:18 GMT): nkl199 (Tue, 23 Jun 2020 07:13:53 GMT): NamanGupta1003 (Tue, 23 Jun 2020 07:17:06 GMT): NamanGupta1003 (Tue, 23 Jun 2020 07:17:06 GMT): nkl199 (Tue, 23 Jun 2020 07:20:30 GMT): nkl199 (Tue, 23 Jun 2020 07:22:47 GMT): NamanGupta1003 (Tue, 23 Jun 2020 07:23:46 GMT): NamanGupta1003 (Tue, 23 Jun 2020 07:23:46 GMT): NamanGupta1003 (Tue, 23 Jun 2020 07:27:00 GMT): nkl199 (Tue, 23 Jun 2020 07:32:16 GMT): nkl199 (Tue, 23 Jun 2020 07:33:30 GMT): NamanGupta1003 (Tue, 23 Jun 2020 07:36:19 GMT): nkl199 (Tue, 23 Jun 2020 07:36:53 GMT): nkl199 (Tue, 23 Jun 2020 07:37:46 GMT): NamanGupta1003 (Tue, 23 Jun 2020 07:42:32 GMT): nkl199 (Tue, 23 Jun 2020 07:44:00 GMT): nkl199 (Tue, 23 Jun 2020 07:44:31 GMT): NamanGupta1003 (Tue, 23 Jun 2020 07:53:31 GMT): nkl199 (Tue, 23 Jun 2020 07:56:33 GMT): akoita (Tue, 23 Jun 2020 08:07:11 GMT): klenik (Tue, 23 Jun 2020 10:02:15 GMT): klenik (Tue, 23 Jun 2020 10:03:43 GMT): klenik (Tue, 23 Jun 2020 10:04:24 GMT): klenik (Tue, 23 Jun 2020 10:06:48 GMT): klenik (Tue, 23 Jun 2020 10:10:41 GMT): klenik (Tue, 23 Jun 2020 10:13:29 GMT): akoita (Tue, 23 Jun 2020 14:59:13 GMT): akoita (Tue, 23 Jun 2020 15:02:31 GMT): akoita (Tue, 23 Jun 2020 15:02:31 GMT): nkl199 (Tue, 23 Jun 2020 15:11:29 GMT): akoita (Tue, 23 Jun 2020 15:23:27 GMT): nkl199 (Tue, 23 Jun 2020 15:24:16 GMT): NickName (Wed, 24 Jun 2020 12:54:03 GMT): NickName (Wed, 24 Jun 2020 13:21:21 GMT): NickName (Wed, 24 Jun 2020 13:21:21 GMT): NickName (Wed, 24 Jun 2020 13:24:36 GMT): klenik (Wed, 24 Jun 2020 13:32:01 GMT): klenik (Wed, 24 Jun 2020 13:41:34 GMT): klenik (Wed, 24 Jun 2020 13:42:18 GMT): NickName (Wed, 24 Jun 2020 14:13:46 GMT): akoita (Thu, 25 Jun 2020 11:36:27 GMT): nkl199 (Thu, 25 Jun 2020 13:09:40 GMT): nkl199 (Thu, 25 Jun 2020 13:09:40 GMT): nkl199 (Thu, 25 Jun 2020 13:09:40 GMT): aqid (Thu, 25 Jun 2020 13:38:07 GMT): akoita (Thu, 25 Jun 2020 13:47:18 GMT): akoita (Thu, 25 Jun 2020 13:47:18 GMT): akoita (Thu, 25 Jun 2020 13:47:18 GMT): nkl199 (Thu, 25 Jun 2020 14:00:53 GMT): nkl199 (Thu, 25 Jun 2020 14:00:53 GMT): nkl199 (Thu, 25 Jun 2020 14:00:53 GMT): nkl199 (Thu, 25 Jun 2020 14:06:54 GMT): nkl199 (Thu, 25 Jun 2020 14:06:54 GMT): nkl199 (Thu, 25 Jun 2020 14:06:54 GMT): akoita (Thu, 25 Jun 2020 14:26:05 GMT): akoita (Thu, 25 Jun 2020 14:26:05 GMT): akoita (Thu, 25 Jun 2020 14:26:05 GMT): akoita (Thu, 25 Jun 2020 14:40:08 GMT): nkl199 (Thu, 25 Jun 2020 14:41:01 GMT): nkl199 (Thu, 25 Jun 2020 14:41:30 GMT): jsms01 (Thu, 25 Jun 2020 14:44:17 GMT): akoita (Thu, 25 Jun 2020 14:48:00 GMT): akoita (Thu, 25 Jun 2020 14:48:09 GMT): akoita (Thu, 25 Jun 2020 14:48:35 GMT): nkl199 (Thu, 25 Jun 2020 14:48:41 GMT): nkl199 (Thu, 25 Jun 2020 14:48:45 GMT): akoita (Thu, 25 Jun 2020 14:50:20 GMT): nkl199 (Thu, 25 Jun 2020 14:51:00 GMT): nkl199 (Thu, 25 Jun 2020 14:52:23 GMT): akoita (Thu, 25 Jun 2020 15:05:00 GMT): nkl199 (Thu, 25 Jun 2020 15:05:13 GMT): akoita (Thu, 25 Jun 2020 15:09:25 GMT): akoita (Thu, 25 Jun 2020 15:09:45 GMT): nkl199 (Thu, 25 Jun 2020 15:11:58 GMT): nkl199 (Thu, 25 Jun 2020 15:12:09 GMT): akoita (Thu, 25 Jun 2020 15:15:13 GMT): nkl199 (Thu, 25 Jun 2020 15:15:32 GMT): nkl199 (Thu, 25 Jun 2020 15:15:50 GMT): akoita (Thu, 25 Jun 2020 15:17:55 GMT): akoita (Thu, 25 Jun 2020 15:19:02 GMT): nkl199 (Thu, 25 Jun 2020 15:20:06 GMT): nkl199 (Thu, 25 Jun 2020 15:20:22 GMT): akoita (Thu, 25 Jun 2020 15:20:29 GMT): nkl199 (Thu, 25 Jun 2020 15:20:39 GMT): nkl199 (Thu, 25 Jun 2020 15:21:20 GMT): akoita (Thu, 25 Jun 2020 15:22:06 GMT): nkl199 (Thu, 25 Jun 2020 15:22:34 GMT): akoita (Thu, 25 Jun 2020 15:22:45 GMT): nkl199 (Thu, 25 Jun 2020 15:22:46 GMT): nkl199 (Thu, 25 Jun 2020 15:23:15 GMT): nkl199 (Thu, 25 Jun 2020 15:23:44 GMT): akoita (Thu, 25 Jun 2020 15:24:39 GMT): nkl199 (Thu, 25 Jun 2020 15:25:48 GMT): akoita (Thu, 25 Jun 2020 15:26:37 GMT): akoita (Thu, 25 Jun 2020 15:29:17 GMT): nkl199 (Thu, 25 Jun 2020 15:30:41 GMT): akoita (Thu, 25 Jun 2020 15:33:27 GMT): akoita (Thu, 25 Jun 2020 15:37:41 GMT): akoita (Thu, 25 Jun 2020 15:38:13 GMT): nkl199 (Thu, 25 Jun 2020 15:38:37 GMT): akoita (Thu, 25 Jun 2020 15:44:37 GMT): nkl199 (Thu, 25 Jun 2020 15:46:29 GMT): nkl199 (Thu, 25 Jun 2020 15:46:34 GMT): nkl199 (Thu, 25 Jun 2020 15:47:31 GMT): akoita (Thu, 25 Jun 2020 15:49:38 GMT): akoita (Thu, 25 Jun 2020 15:49:44 GMT): nkl199 (Thu, 25 Jun 2020 15:50:16 GMT): akoita (Thu, 25 Jun 2020 15:51:57 GMT): NickName (Thu, 25 Jun 2020 16:04:12 GMT): NickName (Thu, 25 Jun 2020 16:04:12 GMT): NamanGupta1003 (Thu, 25 Jun 2020 17:08:33 GMT): NickName (Thu, 25 Jun 2020 18:19:12 GMT): aqid (Thu, 25 Jun 2020 19:56:18 GMT): NamanGupta1003 (Fri, 26 Jun 2020 07:34:12 GMT): nimaafraz (Fri, 26 Jun 2020 14:20:14 GMT): nimaafraz (Fri, 26 Jun 2020 14:35:52 GMT): NamanGupta1003 (Fri, 26 Jun 2020 14:37:34 GMT): nkl199 (Fri, 26 Jun 2020 14:48:11 GMT): nkl199 (Fri, 26 Jun 2020 15:01:24 GMT): aqid (Fri, 26 Jun 2020 19:14:11 GMT): NamanGupta1003 (Fri, 26 Jun 2020 20:04:22 GMT): NamanGupta1003 (Fri, 26 Jun 2020 20:07:43 GMT): NamanGupta1003 (Fri, 26 Jun 2020 20:07:45 GMT): NamanGupta1003 (Sat, 27 Jun 2020 17:03:29 GMT): NamanGupta1003 (Sat, 27 Jun 2020 17:08:35 GMT): NamanGupta1003 (Sat, 27 Jun 2020 17:08:54 GMT): NamanGupta1003 (Sat, 27 Jun 2020 17:08:55 GMT): NamanGupta1003 (Sat, 27 Jun 2020 17:09:00 GMT): NamanGupta1003 (Sat, 27 Jun 2020 17:09:02 GMT): NamanGupta1003 (Sat, 27 Jun 2020 17:09:11 GMT): NamanGupta1003 (Sat, 27 Jun 2020 17:10:02 GMT): braduf (Sat, 27 Jun 2020 19:38:06 GMT): braduf (Sat, 27 Jun 2020 19:38:06 GMT): aqid (Sun, 28 Jun 2020 22:41:02 GMT): NamanGupta1003 (Mon, 29 Jun 2020 07:56:28 GMT): aqid (Mon, 29 Jun 2020 07:58:53 GMT): nkl199 (Mon, 29 Jun 2020 08:05:25 GMT): NamanGupta1003 (Mon, 29 Jun 2020 08:31:57 GMT): NamanGupta1003 (Mon, 29 Jun 2020 08:32:31 GMT): aqid (Mon, 29 Jun 2020 08:33:22 GMT): aqid (Mon, 29 Jun 2020 08:34:02 GMT): aqid (Mon, 29 Jun 2020 08:34:23 GMT): aqid (Mon, 29 Jun 2020 08:34:40 GMT): NamanGupta1003 (Mon, 29 Jun 2020 08:44:56 GMT): NamanGupta1003 (Mon, 29 Jun 2020 09:05:16 GMT): NamanGupta1003 (Mon, 29 Jun 2020 09:05:48 GMT): NamanGupta1003 (Mon, 29 Jun 2020 09:06:06 GMT): aqid (Mon, 29 Jun 2020 09:28:48 GMT): NamanGupta1003 (Mon, 29 Jun 2020 10:06:25 GMT): NamanGupta1003 (Mon, 29 Jun 2020 10:06:28 GMT): NamanGupta1003 (Mon, 29 Jun 2020 10:07:03 GMT): aqid (Mon, 29 Jun 2020 10:14:10 GMT): NamanGupta1003 (Mon, 29 Jun 2020 12:11:09 GMT): NamanGupta1003 (Mon, 29 Jun 2020 12:11:44 GMT): aqid (Mon, 29 Jun 2020 13:48:09 GMT): NamanGupta1003 (Mon, 29 Jun 2020 14:27:24 GMT): aqid (Mon, 29 Jun 2020 19:39:46 GMT): NamanGupta1003 (Tue, 30 Jun 2020 07:14:34 GMT): NamanGupta1003 (Tue, 30 Jun 2020 07:15:16 GMT): NamanGupta1003 (Tue, 30 Jun 2020 07:56:46 GMT): NamanGupta1003 (Tue, 30 Jun 2020 07:57:00 GMT): NamanGupta1003 (Tue, 30 Jun 2020 07:58:14 GMT): vimalViswan (Tue, 30 Jun 2020 09:24:24 GMT): vimalViswan (Tue, 30 Jun 2020 09:24:24 GMT): klenik (Tue, 30 Jun 2020 10:36:31 GMT): NickName (Wed, 01 Jul 2020 10:05:32 GMT): klenik (Wed, 01 Jul 2020 10:13:44 GMT): NickName (Wed, 01 Jul 2020 10:18:37 GMT): braduf (Wed, 01 Jul 2020 16:39:50 GMT): braduf (Wed, 01 Jul 2020 16:39:50 GMT): nkl199 (Wed, 01 Jul 2020 16:40:46 GMT): braduf (Wed, 01 Jul 2020 16:44:21 GMT): nkl199 (Wed, 01 Jul 2020 16:45:26 GMT): braduf (Wed, 01 Jul 2020 16:46:05 GMT): braduf (Wed, 01 Jul 2020 16:46:56 GMT): nkl199 (Wed, 01 Jul 2020 16:47:33 GMT): braduf (Wed, 01 Jul 2020 16:48:27 GMT): nkl199 (Wed, 01 Jul 2020 16:48:47 GMT): braduf (Wed, 01 Jul 2020 16:49:08 GMT): braduf (Wed, 01 Jul 2020 16:50:01 GMT): nkl199 (Wed, 01 Jul 2020 16:51:02 GMT): nkl199 (Wed, 01 Jul 2020 16:51:02 GMT): braduf (Wed, 01 Jul 2020 16:58:44 GMT): braduf (Wed, 01 Jul 2020 16:58:44 GMT): nkl199 (Wed, 01 Jul 2020 17:02:40 GMT): nkl199 (Wed, 01 Jul 2020 17:02:40 GMT): braduf (Wed, 01 Jul 2020 17:05:08 GMT): nkl199 (Wed, 01 Jul 2020 17:08:09 GMT): lepar (Fri, 03 Jul 2020 01:17:12 GMT): wangdong (Fri, 03 Jul 2020 05:39:10 GMT): yasharne (Fri, 03 Jul 2020 13:54:23 GMT): yasharne (Fri, 03 Jul 2020 13:59:51 GMT): DT.Kernel (Sun, 05 Jul 2020 13:45:23 GMT): DT.Kernel (Sun, 05 Jul 2020 13:47:55 GMT): DT.Kernel (Sun, 05 Jul 2020 22:47:28 GMT): DT.Kernel (Sun, 05 Jul 2020 22:47:28 GMT): DT.Kernel (Sun, 05 Jul 2020 22:53:00 GMT): marcdk (Mon, 06 Jul 2020 05:39:42 GMT): nkl199 (Mon, 06 Jul 2020 07:50:21 GMT): NickName (Mon, 06 Jul 2020 08:46:50 GMT): nkl199 (Mon, 06 Jul 2020 10:03:13 GMT): nkl199 (Mon, 06 Jul 2020 10:06:04 GMT): NickName (Mon, 06 Jul 2020 10:35:02 GMT): nkl199 (Mon, 06 Jul 2020 10:35:55 GMT): nkl199 (Mon, 06 Jul 2020 10:36:33 GMT): NickName (Mon, 06 Jul 2020 10:39:46 GMT): nkl199 (Mon, 06 Jul 2020 10:41:33 GMT): nkl199 (Mon, 06 Jul 2020 10:41:33 GMT): nkl199 (Mon, 06 Jul 2020 10:41:33 GMT): NickName (Mon, 06 Jul 2020 10:48:24 GMT): nkl199 (Mon, 06 Jul 2020 10:55:00 GMT): NickName (Mon, 06 Jul 2020 11:04:42 GMT): NickName (Mon, 06 Jul 2020 13:49:56 GMT): nkl199 (Mon, 06 Jul 2020 13:57:47 GMT): NickName (Mon, 06 Jul 2020 14:00:07 GMT): braduf (Tue, 07 Jul 2020 01:43:17 GMT): qwertlimframe (Tue, 07 Jul 2020 08:46:38 GMT): qwertlimframe (Tue, 07 Jul 2020 08:48:02 GMT): ever-upwards (Tue, 07 Jul 2020 11:32:49 GMT): nkl199 (Tue, 07 Jul 2020 12:20:34 GMT): NickName (Thu, 09 Jul 2020 09:51:26 GMT): nkl199 (Thu, 09 Jul 2020 10:03:26 GMT): nkl199 (Thu, 09 Jul 2020 10:05:46 GMT): dporto (Thu, 09 Jul 2020 13:20:03 GMT): NickName (Thu, 09 Jul 2020 14:45:14 GMT): nkl199 (Thu, 09 Jul 2020 14:53:27 GMT): dporto (Thu, 09 Jul 2020 15:05:05 GMT): dporto (Thu, 09 Jul 2020 15:05:27 GMT): dporto (Thu, 09 Jul 2020 15:05:27 GMT): klenik (Thu, 09 Jul 2020 15:07:32 GMT): dporto (Thu, 09 Jul 2020 15:09:35 GMT): NickName (Thu, 09 Jul 2020 15:12:09 GMT): NickName (Thu, 09 Jul 2020 15:13:01 GMT): dporto (Thu, 09 Jul 2020 15:14:19 GMT): nkl199 (Thu, 09 Jul 2020 15:15:49 GMT): nkl199 (Thu, 09 Jul 2020 15:16:58 GMT): NickName (Thu, 09 Jul 2020 15:25:06 GMT): NickName (Thu, 09 Jul 2020 15:25:06 GMT): dporto (Thu, 09 Jul 2020 15:26:18 GMT): nkl199 (Thu, 09 Jul 2020 15:28:52 GMT): NickName (Thu, 09 Jul 2020 15:29:00 GMT): NickName (Thu, 09 Jul 2020 15:29:28 GMT): nkl199 (Thu, 09 Jul 2020 15:29:35 GMT): nkl199 (Thu, 09 Jul 2020 15:29:48 GMT): dporto (Thu, 09 Jul 2020 15:55:54 GMT): NickName (Thu, 09 Jul 2020 15:56:23 GMT): NickName (Thu, 09 Jul 2020 15:56:52 GMT): nkl199 (Thu, 09 Jul 2020 15:59:27 GMT): dporto (Thu, 09 Jul 2020 16:02:43 GMT): dporto (Thu, 09 Jul 2020 16:14:22 GMT): dporto (Thu, 09 Jul 2020 16:18:56 GMT): dporto (Thu, 09 Jul 2020 16:28:38 GMT): NickName (Thu, 09 Jul 2020 16:42:31 GMT): NickName (Thu, 09 Jul 2020 16:42:31 GMT): nkl199 (Thu, 09 Jul 2020 16:43:16 GMT): NickName (Thu, 09 Jul 2020 16:43:29 GMT): nkl199 (Thu, 09 Jul 2020 16:43:36 GMT): nkl199 (Thu, 09 Jul 2020 16:44:04 GMT): NickName (Thu, 09 Jul 2020 16:44:32 GMT): nkl199 (Thu, 09 Jul 2020 16:46:12 GMT): NickName (Thu, 09 Jul 2020 16:51:31 GMT): NickName (Thu, 09 Jul 2020 16:52:18 GMT): nkl199 (Thu, 09 Jul 2020 16:59:20 GMT): nkl199 (Thu, 09 Jul 2020 16:59:57 GMT): dporto (Thu, 09 Jul 2020 17:02:18 GMT): nkl199 (Thu, 09 Jul 2020 17:05:11 GMT): nkl199 (Thu, 09 Jul 2020 17:05:43 GMT): dporto (Thu, 09 Jul 2020 17:07:38 GMT): dporto (Thu, 09 Jul 2020 17:08:12 GMT): dporto (Thu, 09 Jul 2020 17:08:23 GMT): nkl199 (Thu, 09 Jul 2020 17:08:57 GMT): NickName (Thu, 09 Jul 2020 17:09:23 GMT): dporto (Thu, 09 Jul 2020 17:09:26 GMT): dporto (Thu, 09 Jul 2020 17:09:30 GMT): dporto (Thu, 09 Jul 2020 17:09:30 GMT): dporto (Thu, 09 Jul 2020 17:09:54 GMT): nkl199 (Thu, 09 Jul 2020 17:10:20 GMT): nkl199 (Thu, 09 Jul 2020 17:11:11 GMT): dporto (Thu, 09 Jul 2020 17:12:27 GMT): nkl199 (Thu, 09 Jul 2020 17:13:00 GMT): dporto (Thu, 09 Jul 2020 17:13:11 GMT): nkl199 (Thu, 09 Jul 2020 17:13:34 GMT): nkl199 (Thu, 09 Jul 2020 17:13:47 GMT): dporto (Thu, 09 Jul 2020 17:14:52 GMT): dporto (Thu, 09 Jul 2020 17:15:31 GMT): dporto (Thu, 09 Jul 2020 17:16:34 GMT): dporto (Thu, 09 Jul 2020 17:18:06 GMT): nkl199 (Thu, 09 Jul 2020 17:18:10 GMT): dporto (Thu, 09 Jul 2020 17:18:21 GMT): nkl199 (Thu, 09 Jul 2020 17:18:39 GMT): dporto (Thu, 09 Jul 2020 17:18:53 GMT): dporto (Thu, 09 Jul 2020 17:20:19 GMT): nkl199 (Thu, 09 Jul 2020 17:20:51 GMT): nkl199 (Thu, 09 Jul 2020 17:20:59 GMT): dporto (Thu, 09 Jul 2020 17:21:47 GMT): dporto (Thu, 09 Jul 2020 17:22:36 GMT): nkl199 (Thu, 09 Jul 2020 17:22:57 GMT): nkl199 (Thu, 09 Jul 2020 17:22:57 GMT): nkl199 (Thu, 09 Jul 2020 17:23:26 GMT): nkl199 (Thu, 09 Jul 2020 17:23:26 GMT): dporto (Thu, 09 Jul 2020 17:24:07 GMT): dporto (Thu, 09 Jul 2020 17:26:18 GMT): dporto (Thu, 09 Jul 2020 17:26:18 GMT): nkl199 (Thu, 09 Jul 2020 17:26:50 GMT): nkl199 (Thu, 09 Jul 2020 17:27:05 GMT): dporto (Thu, 09 Jul 2020 17:27:25 GMT): nkl199 (Thu, 09 Jul 2020 17:27:31 GMT): dporto (Thu, 09 Jul 2020 17:27:54 GMT): dporto (Thu, 09 Jul 2020 17:28:12 GMT): dporto (Thu, 09 Jul 2020 17:30:40 GMT): dporto (Thu, 09 Jul 2020 17:31:06 GMT): nkl199 (Thu, 09 Jul 2020 17:31:09 GMT): dporto (Thu, 09 Jul 2020 17:31:19 GMT): nkl199 (Thu, 09 Jul 2020 17:31:23 GMT): dporto (Thu, 09 Jul 2020 17:32:15 GMT): dporto (Thu, 09 Jul 2020 17:32:20 GMT): dporto (Thu, 09 Jul 2020 17:33:02 GMT): nkl199 (Thu, 09 Jul 2020 17:33:15 GMT): dporto (Thu, 09 Jul 2020 17:33:57 GMT): nkl199 (Thu, 09 Jul 2020 17:48:58 GMT): dporto (Thu, 09 Jul 2020 17:49:15 GMT): nkl199 (Thu, 09 Jul 2020 18:07:01 GMT): dporto (Thu, 09 Jul 2020 18:07:15 GMT): dporto (Thu, 09 Jul 2020 18:07:31 GMT): nkl199 (Thu, 09 Jul 2020 18:07:48 GMT): nkl199 (Thu, 09 Jul 2020 18:07:48 GMT): nkl199 (Thu, 09 Jul 2020 18:08:09 GMT): nkl199 (Thu, 09 Jul 2020 18:08:09 GMT): dporto (Thu, 09 Jul 2020 18:08:24 GMT): nkl199 (Thu, 09 Jul 2020 18:08:35 GMT): nkl199 (Thu, 09 Jul 2020 18:09:08 GMT): nkl199 (Thu, 09 Jul 2020 18:09:14 GMT): nkl199 (Thu, 09 Jul 2020 18:09:29 GMT): dporto (Thu, 09 Jul 2020 18:09:32 GMT): nkl199 (Thu, 09 Jul 2020 18:09:51 GMT): nkl199 (Thu, 09 Jul 2020 18:10:11 GMT): nkl199 (Thu, 09 Jul 2020 18:10:24 GMT): nkl199 (Thu, 09 Jul 2020 18:10:46 GMT): dporto (Thu, 09 Jul 2020 18:10:57 GMT): nkl199 (Thu, 09 Jul 2020 18:11:02 GMT): dporto (Thu, 09 Jul 2020 18:11:12 GMT): nkl199 (Thu, 09 Jul 2020 18:11:16 GMT): dporto (Thu, 09 Jul 2020 18:11:36 GMT): nkl199 (Thu, 09 Jul 2020 18:11:41 GMT): dporto (Thu, 09 Jul 2020 18:12:03 GMT): dporto (Thu, 09 Jul 2020 18:16:02 GMT): nkl199 (Thu, 09 Jul 2020 18:16:15 GMT): dporto (Thu, 09 Jul 2020 18:16:56 GMT): dporto (Thu, 09 Jul 2020 18:17:07 GMT): nkl199 (Thu, 09 Jul 2020 18:17:19 GMT): dporto (Thu, 09 Jul 2020 18:17:24 GMT): nkl199 (Thu, 09 Jul 2020 18:17:46 GMT): nkl199 (Thu, 09 Jul 2020 18:17:53 GMT): dporto (Thu, 09 Jul 2020 18:18:13 GMT): dporto (Thu, 09 Jul 2020 18:18:20 GMT): nkl199 (Thu, 09 Jul 2020 18:18:23 GMT): dporto (Thu, 09 Jul 2020 18:18:56 GMT): nkl199 (Thu, 09 Jul 2020 18:19:15 GMT): NickName (Fri, 10 Jul 2020 12:46:31 GMT): NickName (Fri, 10 Jul 2020 12:46:31 GMT): nkl199 (Fri, 10 Jul 2020 14:42:40 GMT): dporto (Fri, 10 Jul 2020 16:59:30 GMT): dporto (Fri, 10 Jul 2020 16:59:30 GMT): dporto (Fri, 10 Jul 2020 16:59:56 GMT): dporto (Fri, 10 Jul 2020 17:23:48 GMT): IgorSilva (Sat, 11 Jul 2020 20:57:41 GMT): IgorSilva (Sat, 11 Jul 2020 20:57:41 GMT): IgorSilva (Sat, 11 Jul 2020 20:57:41 GMT): IgorSilva (Sat, 11 Jul 2020 20:57:41 GMT): NickName (Sun, 12 Jul 2020 16:03:08 GMT): NickName (Sun, 12 Jul 2020 16:03:08 GMT): NickName (Sun, 12 Jul 2020 16:03:08 GMT): dporto (Sun, 12 Jul 2020 18:01:32 GMT): NickName (Sun, 12 Jul 2020 18:02:26 GMT): NickName (Sun, 12 Jul 2020 18:08:50 GMT): NickName (Sun, 12 Jul 2020 18:10:15 GMT): dporto (Sun, 12 Jul 2020 18:10:58 GMT): NickName (Sun, 12 Jul 2020 18:13:43 GMT): kiview (Mon, 13 Jul 2020 08:43:26 GMT): dporto (Mon, 13 Jul 2020 12:14:54 GMT): dporto (Mon, 13 Jul 2020 12:15:29 GMT): dporto (Mon, 13 Jul 2020 15:32:38 GMT): dporto (Mon, 13 Jul 2020 15:33:35 GMT): dporto (Mon, 13 Jul 2020 16:02:26 GMT): dporto (Mon, 13 Jul 2020 16:02:26 GMT): dporto (Mon, 13 Jul 2020 16:02:26 GMT): dporto (Mon, 13 Jul 2020 16:02:26 GMT): nkl199 (Mon, 13 Jul 2020 16:07:18 GMT): NickName (Mon, 13 Jul 2020 16:30:54 GMT): dporto (Mon, 13 Jul 2020 16:55:20 GMT): NickName (Mon, 13 Jul 2020 16:57:56 GMT): dporto (Mon, 13 Jul 2020 17:14:56 GMT): dporto (Mon, 13 Jul 2020 17:15:36 GMT): dporto (Mon, 13 Jul 2020 17:41:30 GMT): nkl199 (Tue, 14 Jul 2020 07:57:44 GMT): abhi201191 (Tue, 14 Jul 2020 09:28:28 GMT): abhi201191 (Tue, 14 Jul 2020 09:28:28 GMT): abhi201191 (Tue, 14 Jul 2020 09:28:54 GMT): abhi201191 (Tue, 14 Jul 2020 09:30:39 GMT): abhi201191 (Tue, 14 Jul 2020 09:31:07 GMT): abhi201191 (Tue, 14 Jul 2020 09:31:09 GMT): dporto (Tue, 14 Jul 2020 09:54:57 GMT): dporto (Tue, 14 Jul 2020 09:55:12 GMT): NickName (Tue, 14 Jul 2020 10:59:04 GMT): NickName (Tue, 14 Jul 2020 11:01:58 GMT): dporto (Tue, 14 Jul 2020 15:48:49 GMT): dporto (Tue, 14 Jul 2020 15:51:40 GMT): nkl199 (Tue, 14 Jul 2020 15:59:45 GMT): dporto (Tue, 14 Jul 2020 16:01:10 GMT): nkl199 (Tue, 14 Jul 2020 16:02:17 GMT): dporto (Tue, 14 Jul 2020 16:03:32 GMT): nkl199 (Tue, 14 Jul 2020 16:03:52 GMT): dporto (Tue, 14 Jul 2020 16:04:40 GMT): dporto (Tue, 14 Jul 2020 16:34:32 GMT): dporto (Tue, 14 Jul 2020 16:36:27 GMT): nkl199 (Tue, 14 Jul 2020 16:38:07 GMT): nkl199 (Tue, 14 Jul 2020 16:38:39 GMT): dporto (Tue, 14 Jul 2020 16:42:16 GMT): dporto (Tue, 14 Jul 2020 16:43:15 GMT): nkl199 (Tue, 14 Jul 2020 16:44:23 GMT): nkl199 (Tue, 14 Jul 2020 16:45:01 GMT): nkl199 (Tue, 14 Jul 2020 16:45:40 GMT): dporto (Tue, 14 Jul 2020 16:46:15 GMT): dporto (Tue, 14 Jul 2020 16:48:21 GMT): dporto (Tue, 14 Jul 2020 16:48:35 GMT): nkl199 (Tue, 14 Jul 2020 16:49:02 GMT): dporto (Tue, 14 Jul 2020 16:51:48 GMT): nkl199 (Tue, 14 Jul 2020 16:53:38 GMT): dporto (Tue, 14 Jul 2020 16:53:41 GMT): dporto (Tue, 14 Jul 2020 16:53:41 GMT): nkl199 (Tue, 14 Jul 2020 16:54:55 GMT): dporto (Tue, 14 Jul 2020 16:55:17 GMT): dporto (Tue, 14 Jul 2020 16:56:05 GMT): dporto (Tue, 14 Jul 2020 16:56:28 GMT): nkl199 (Tue, 14 Jul 2020 16:57:13 GMT): nkl199 (Tue, 14 Jul 2020 16:57:13 GMT): dporto (Tue, 14 Jul 2020 16:57:53 GMT): dporto (Tue, 14 Jul 2020 16:57:58 GMT): nkl199 (Tue, 14 Jul 2020 16:59:20 GMT): dporto (Tue, 14 Jul 2020 16:59:28 GMT): nkl199 (Tue, 14 Jul 2020 17:00:14 GMT): dporto (Tue, 14 Jul 2020 17:03:00 GMT): nkl199 (Tue, 14 Jul 2020 17:03:55 GMT): dporto (Tue, 14 Jul 2020 17:05:02 GMT): wangqq (Wed, 15 Jul 2020 02:47:20 GMT): wangqq (Wed, 15 Jul 2020 02:47:38 GMT): klenik (Wed, 15 Jul 2020 07:03:06 GMT): NickName (Wed, 15 Jul 2020 07:03:21 GMT): klenik (Wed, 15 Jul 2020 07:04:49 GMT): klenik (Wed, 15 Jul 2020 07:14:19 GMT): NickName (Wed, 15 Jul 2020 07:36:48 GMT): nkl199 (Wed, 15 Jul 2020 08:09:33 GMT): nkl199 (Wed, 15 Jul 2020 08:09:33 GMT): NickName (Wed, 15 Jul 2020 08:21:31 GMT): davidkel (Wed, 15 Jul 2020 15:20:17 GMT): Saikrishna27 (Thu, 16 Jul 2020 10:43:48 GMT): Saikrishna27 (Thu, 16 Jul 2020 10:43:48 GMT): Saikrishna27 (Thu, 16 Jul 2020 11:52:56 GMT): nkl199 (Thu, 16 Jul 2020 12:27:40 GMT): tangross (Thu, 16 Jul 2020 17:18:24 GMT): tangross (Thu, 16 Jul 2020 17:18:29 GMT): tangross (Thu, 16 Jul 2020 17:18:29 GMT): nkl199 (Thu, 16 Jul 2020 18:19:23 GMT): tangross (Fri, 17 Jul 2020 03:31:07 GMT): tangross (Fri, 17 Jul 2020 03:33:38 GMT): klenik (Fri, 17 Jul 2020 06:10:13 GMT): klenik (Fri, 17 Jul 2020 06:11:11 GMT): Saikrishna27 (Fri, 17 Jul 2020 07:07:38 GMT): Saikrishna27 (Fri, 17 Jul 2020 07:08:05 GMT): dporto (Fri, 17 Jul 2020 10:09:16 GMT): dporto (Fri, 17 Jul 2020 10:09:34 GMT): nkl199 (Fri, 17 Jul 2020 10:10:43 GMT): dporto (Fri, 17 Jul 2020 11:01:03 GMT): dporto (Fri, 17 Jul 2020 11:01:03 GMT): dporto (Fri, 17 Jul 2020 11:01:03 GMT): dporto (Fri, 17 Jul 2020 11:03:50 GMT): klenik (Fri, 17 Jul 2020 11:05:27 GMT): klenik (Fri, 17 Jul 2020 11:05:27 GMT): klenik (Fri, 17 Jul 2020 11:06:22 GMT): dporto (Fri, 17 Jul 2020 11:06:33 GMT): dporto (Fri, 17 Jul 2020 11:06:39 GMT): Saikrishna27 (Fri, 17 Jul 2020 11:06:55 GMT): dporto (Fri, 17 Jul 2020 11:07:43 GMT): dporto (Fri, 17 Jul 2020 11:09:25 GMT): dporto (Fri, 17 Jul 2020 11:09:25 GMT): dporto (Fri, 17 Jul 2020 11:09:36 GMT): dporto (Fri, 17 Jul 2020 14:26:02 GMT): dporto (Fri, 17 Jul 2020 14:29:11 GMT): dporto (Fri, 17 Jul 2020 14:58:01 GMT): shemnon (Sun, 19 Jul 2020 03:14:20 GMT): abhi201191 (Mon, 20 Jul 2020 15:16:54 GMT): hazbiy97 (Mon, 20 Jul 2020 20:23:45 GMT): hazbiy97 (Mon, 20 Jul 2020 20:23:45 GMT): hazbiy97 (Mon, 20 Jul 2020 20:23:45 GMT): hazbiy97 (Mon, 20 Jul 2020 20:23:45 GMT): hazbiy97 (Mon, 20 Jul 2020 20:23:45 GMT): klenik (Tue, 21 Jul 2020 08:16:21 GMT): akoita (Tue, 21 Jul 2020 13:22:41 GMT): akoita (Tue, 21 Jul 2020 13:22:41 GMT): akoita (Tue, 21 Jul 2020 13:25:48 GMT): vishnupradeepmahe (Tue, 21 Jul 2020 17:58:47 GMT): hazbiy97 (Tue, 21 Jul 2020 23:00:12 GMT): dporto (Wed, 22 Jul 2020 09:07:45 GMT): Lynn14m (Wed, 22 Jul 2020 15:05:01 GMT): nkl199 (Mon, 27 Jul 2020 07:20:21 GMT): Sangyoon (Mon, 27 Jul 2020 09:53:57 GMT): HelmiTrabelsi (Mon, 27 Jul 2020 14:40:27 GMT): HelmiTrabelsi (Mon, 27 Jul 2020 14:40:46 GMT): vishnupradeepmahe (Tue, 28 Jul 2020 06:28:24 GMT): nkl199 (Tue, 28 Jul 2020 07:00:19 GMT): NamanGupta1003 (Tue, 28 Jul 2020 10:55:50 GMT): NamanGupta1003 (Tue, 28 Jul 2020 10:55:50 GMT): Sangyoon (Tue, 28 Jul 2020 11:06:04 GMT): klenik (Tue, 28 Jul 2020 11:45:19 GMT): klenik (Tue, 28 Jul 2020 11:49:41 GMT): klenik (Tue, 28 Jul 2020 11:51:04 GMT): HelmiTrabelsi (Tue, 28 Jul 2020 11:51:36 GMT): HelmiTrabelsi (Tue, 28 Jul 2020 11:51:36 GMT): HelmiTrabelsi (Tue, 28 Jul 2020 11:51:36 GMT): HelmiTrabelsi (Tue, 28 Jul 2020 11:51:54 GMT): NamanGupta1003 (Tue, 28 Jul 2020 11:59:26 GMT): klenik (Tue, 28 Jul 2020 12:00:09 GMT): NamanGupta1003 (Tue, 28 Jul 2020 12:01:12 GMT): klenik (Tue, 28 Jul 2020 12:01:47 GMT): klenik (Tue, 28 Jul 2020 12:03:10 GMT): klenik (Tue, 28 Jul 2020 12:03:10 GMT): NamanGupta1003 (Tue, 28 Jul 2020 12:15:57 GMT): NamanGupta1003 (Tue, 28 Jul 2020 12:16:20 GMT): klenik (Tue, 28 Jul 2020 12:19:01 GMT): klenik (Tue, 28 Jul 2020 12:19:11 GMT): NamanGupta1003 (Tue, 28 Jul 2020 12:21:58 GMT): klenik (Tue, 28 Jul 2020 12:23:21 GMT): NamanGupta1003 (Tue, 28 Jul 2020 12:24:14 GMT): NamanGupta1003 (Tue, 28 Jul 2020 12:24:19 GMT): klenik (Tue, 28 Jul 2020 12:30:08 GMT): NamanGupta1003 (Tue, 28 Jul 2020 12:46:48 GMT): klenik (Tue, 28 Jul 2020 13:26:19 GMT): klenik (Tue, 28 Jul 2020 13:26:31 GMT): klenik (Tue, 28 Jul 2020 13:26:54 GMT): NamanGupta1003 (Tue, 28 Jul 2020 13:43:50 GMT): klenik (Tue, 28 Jul 2020 13:46:05 GMT): NamanGupta1003 (Tue, 28 Jul 2020 13:53:13 GMT): NamanGupta1003 (Tue, 28 Jul 2020 13:53:26 GMT): klenik (Tue, 28 Jul 2020 13:59:16 GMT): klenik (Tue, 28 Jul 2020 13:59:25 GMT): NamanGupta1003 (Tue, 28 Jul 2020 14:05:37 GMT): NamanGupta1003 (Wed, 29 Jul 2020 07:36:09 GMT): klenik (Wed, 29 Jul 2020 10:04:17 GMT): klenik (Wed, 29 Jul 2020 10:04:52 GMT): NamanGupta1003 (Wed, 29 Jul 2020 12:12:57 GMT): NamanGupta1003 (Wed, 29 Jul 2020 12:13:41 GMT): NamanGupta1003 (Wed, 29 Jul 2020 12:14:03 GMT): nkl199 (Wed, 29 Jul 2020 14:02:16 GMT): HelmiTrabelsi (Wed, 29 Jul 2020 16:34:11 GMT): nkl199 (Wed, 29 Jul 2020 16:35:24 GMT): HelmiTrabelsi (Wed, 29 Jul 2020 16:36:47 GMT): nkl199 (Wed, 29 Jul 2020 16:37:49 GMT): HelmiTrabelsi (Wed, 29 Jul 2020 16:41:42 GMT): tharindupr (Wed, 29 Jul 2020 16:50:34 GMT): klenik (Wed, 29 Jul 2020 18:04:17 GMT): tharindupr (Thu, 30 Jul 2020 05:41:36 GMT): NamanGupta1003 (Thu, 30 Jul 2020 07:07:04 GMT): klenik (Thu, 30 Jul 2020 10:37:33 GMT): klenik (Thu, 30 Jul 2020 10:37:33 GMT): Sushilpaneru (Thu, 30 Jul 2020 23:28:04 GMT): joy_2_code (Sat, 01 Aug 2020 04:52:07 GMT): aqid (Sun, 02 Aug 2020 12:54:01 GMT): nkl199 (Mon, 03 Aug 2020 07:44:13 GMT): ZiweiShao (Mon, 03 Aug 2020 08:50:08 GMT): ZiweiShao (Mon, 03 Aug 2020 08:50:14 GMT): nkl199 (Mon, 03 Aug 2020 10:03:53 GMT): nkl199 (Mon, 03 Aug 2020 10:04:29 GMT): nkl199 (Mon, 03 Aug 2020 10:05:02 GMT): tharindupr (Mon, 03 Aug 2020 10:38:24 GMT): tharindupr (Mon, 03 Aug 2020 10:38:24 GMT): aqid (Mon, 03 Aug 2020 12:35:47 GMT): nkl199 (Mon, 03 Aug 2020 12:44:09 GMT): nkl199 (Mon, 03 Aug 2020 12:44:09 GMT): aqid (Mon, 03 Aug 2020 12:45:41 GMT): nkl199 (Mon, 03 Aug 2020 12:46:19 GMT): nkl199 (Mon, 03 Aug 2020 12:46:49 GMT): aqid (Mon, 03 Aug 2020 12:47:17 GMT): nick_1 (Mon, 03 Aug 2020 13:23:57 GMT): nick_1 (Mon, 03 Aug 2020 13:23:58 GMT): nkl199 (Mon, 03 Aug 2020 14:09:14 GMT): davidkel (Mon, 03 Aug 2020 14:31:30 GMT): aqid (Mon, 03 Aug 2020 15:57:50 GMT): nkl199 (Mon, 03 Aug 2020 15:59:33 GMT): aqid (Mon, 03 Aug 2020 16:01:26 GMT): nkl199 (Mon, 03 Aug 2020 16:01:50 GMT): manishkgiri (Mon, 03 Aug 2020 18:10:22 GMT): akoita (Mon, 03 Aug 2020 18:16:30 GMT): akoita (Mon, 03 Aug 2020 18:16:30 GMT): casm3 (Mon, 03 Aug 2020 20:28:54 GMT): casm3 (Mon, 03 Aug 2020 20:34:43 GMT): tharindupr (Tue, 04 Aug 2020 04:47:22 GMT): tharindupr (Tue, 04 Aug 2020 05:28:01 GMT): ZiweiShao (Tue, 04 Aug 2020 09:15:07 GMT): nkl199 (Tue, 04 Aug 2020 09:15:56 GMT): ZiweiShao (Tue, 04 Aug 2020 09:17:36 GMT): ZiweiShao (Tue, 04 Aug 2020 09:18:02 GMT): ZiweiShao (Tue, 04 Aug 2020 09:19:57 GMT): nkl199 (Tue, 04 Aug 2020 09:21:47 GMT): ZiweiShao (Tue, 04 Aug 2020 09:27:00 GMT): nkl199 (Tue, 04 Aug 2020 11:03:04 GMT): lesleyannj (Tue, 04 Aug 2020 11:05:36 GMT): casm3 (Tue, 04 Aug 2020 12:54:47 GMT): tharindupr (Tue, 04 Aug 2020 13:31:31 GMT): akoita (Tue, 04 Aug 2020 17:27:21 GMT): casm3 (Tue, 04 Aug 2020 21:06:05 GMT): casm3 (Tue, 04 Aug 2020 21:06:08 GMT): tharindupr (Wed, 05 Aug 2020 06:17:33 GMT): tharindupr (Wed, 05 Aug 2020 06:18:25 GMT): nkl199 (Wed, 05 Aug 2020 08:13:59 GMT): nkl199 (Wed, 05 Aug 2020 08:16:02 GMT): nkl199 (Wed, 05 Aug 2020 08:16:56 GMT): nkl199 (Wed, 05 Aug 2020 08:17:40 GMT): nkl199 (Wed, 05 Aug 2020 08:18:59 GMT): rameshlohala (Wed, 05 Aug 2020 10:43:14 GMT): casm3 (Wed, 05 Aug 2020 12:11:55 GMT): casm3 (Wed, 05 Aug 2020 16:14:08 GMT): casm3 (Wed, 05 Aug 2020 16:14:14 GMT): akoita (Wed, 05 Aug 2020 16:41:39 GMT): casm3 (Wed, 05 Aug 2020 16:43:15 GMT): aqid (Wed, 05 Aug 2020 22:29:35 GMT): nkl199 (Thu, 06 Aug 2020 07:28:56 GMT): aqid (Thu, 06 Aug 2020 08:18:29 GMT): aqid (Thu, 06 Aug 2020 09:20:11 GMT): aqid (Thu, 06 Aug 2020 09:20:18 GMT): nkl199 (Thu, 06 Aug 2020 10:35:55 GMT): nkl199 (Thu, 06 Aug 2020 10:35:55 GMT): casm3 (Thu, 06 Aug 2020 14:55:41 GMT): nkl199 (Thu, 06 Aug 2020 16:12:12 GMT): nkl199 (Thu, 06 Aug 2020 16:12:12 GMT): casm3 (Thu, 06 Aug 2020 16:31:09 GMT): casm3 (Thu, 06 Aug 2020 16:31:46 GMT): akoita (Thu, 06 Aug 2020 16:50:58 GMT): casm3 (Thu, 06 Aug 2020 16:52:25 GMT): Sushilpaneru (Sat, 08 Aug 2020 00:33:12 GMT): Sushilpaneru (Sat, 08 Aug 2020 00:33:12 GMT): Sushilpaneru (Sat, 08 Aug 2020 00:33:41 GMT): Sushilpaneru (Sat, 08 Aug 2020 00:34:11 GMT): Sushilpaneru (Sat, 08 Aug 2020 00:35:36 GMT): Sushilpaneru (Sat, 08 Aug 2020 00:35:36 GMT): Sushilpaneru (Sat, 08 Aug 2020 00:35:36 GMT): Sushilpaneru (Sat, 08 Aug 2020 03:56:41 GMT): covepark (Sun, 09 Aug 2020 15:39:05 GMT): covepark (Sun, 09 Aug 2020 15:41:41 GMT): covepark (Sun, 09 Aug 2020 15:41:42 GMT): covepark (Sun, 09 Aug 2020 15:42:37 GMT): HienDoan (Mon, 10 Aug 2020 03:06:48 GMT): jtonline (Mon, 10 Aug 2020 14:26:26 GMT): dporto (Tue, 11 Aug 2020 16:59:52 GMT): dporto (Tue, 11 Aug 2020 16:59:52 GMT): dporto (Tue, 11 Aug 2020 16:59:52 GMT): nkl199 (Wed, 12 Aug 2020 09:32:50 GMT): dporto (Wed, 12 Aug 2020 10:36:32 GMT): klenik (Wed, 12 Aug 2020 12:45:20 GMT): klenik (Wed, 12 Aug 2020 12:50:38 GMT): klenik (Wed, 12 Aug 2020 12:50:38 GMT): dporto (Wed, 12 Aug 2020 13:21:32 GMT): nkl199 (Wed, 12 Aug 2020 13:50:12 GMT): nkl199 (Wed, 12 Aug 2020 13:50:12 GMT): dporto (Wed, 12 Aug 2020 13:51:12 GMT): dporto (Wed, 12 Aug 2020 13:53:11 GMT): dporto (Wed, 12 Aug 2020 13:53:31 GMT): dporto (Wed, 12 Aug 2020 13:57:39 GMT): nkl199 (Wed, 12 Aug 2020 13:57:52 GMT): dporto (Wed, 12 Aug 2020 13:58:00 GMT): nkl199 (Wed, 12 Aug 2020 13:58:10 GMT): dporto (Wed, 12 Aug 2020 13:58:35 GMT): dporto (Wed, 12 Aug 2020 13:58:42 GMT): dporto (Wed, 12 Aug 2020 13:58:51 GMT): dporto (Wed, 12 Aug 2020 13:59:28 GMT): nkl199 (Wed, 12 Aug 2020 14:11:34 GMT): dporto (Wed, 12 Aug 2020 14:12:36 GMT): dporto (Wed, 12 Aug 2020 14:14:02 GMT): dporto (Wed, 12 Aug 2020 14:14:26 GMT): akoita (Wed, 12 Aug 2020 14:29:58 GMT): dporto (Wed, 12 Aug 2020 14:45:56 GMT): nkl199 (Wed, 12 Aug 2020 14:47:01 GMT): dporto (Wed, 12 Aug 2020 14:48:25 GMT): dporto (Wed, 12 Aug 2020 14:49:04 GMT): dporto (Wed, 12 Aug 2020 14:49:49 GMT): dporto (Wed, 12 Aug 2020 14:50:59 GMT): nkl199 (Wed, 12 Aug 2020 14:51:07 GMT): nkl199 (Wed, 12 Aug 2020 14:51:07 GMT): nkl199 (Wed, 12 Aug 2020 14:51:07 GMT): dporto (Wed, 12 Aug 2020 14:53:09 GMT): dporto (Wed, 12 Aug 2020 14:53:15 GMT): nkl199 (Wed, 12 Aug 2020 14:54:34 GMT): dporto (Wed, 12 Aug 2020 14:54:43 GMT): nkl199 (Wed, 12 Aug 2020 14:55:03 GMT): dporto (Wed, 12 Aug 2020 14:56:59 GMT): dporto (Wed, 12 Aug 2020 15:02:19 GMT): dporto (Wed, 12 Aug 2020 15:02:19 GMT): nkl199 (Wed, 12 Aug 2020 15:04:36 GMT): dporto (Wed, 12 Aug 2020 15:07:49 GMT): dporto (Wed, 12 Aug 2020 15:09:09 GMT): dporto (Wed, 12 Aug 2020 15:10:24 GMT): dporto (Wed, 12 Aug 2020 17:10:20 GMT): dporto (Wed, 12 Aug 2020 17:10:40 GMT): dporto (Wed, 12 Aug 2020 17:11:01 GMT): dporto (Wed, 12 Aug 2020 17:11:19 GMT): jorgego (Wed, 12 Aug 2020 23:08:17 GMT): jorgego (Wed, 12 Aug 2020 23:08:17 GMT): nkl199 (Thu, 13 Aug 2020 07:21:44 GMT): nkl199 (Thu, 13 Aug 2020 07:39:16 GMT): dporto (Thu, 13 Aug 2020 15:26:09 GMT): dporto (Thu, 13 Aug 2020 15:26:14 GMT): dporto (Thu, 13 Aug 2020 15:27:00 GMT): dengjiali (Thu, 13 Aug 2020 15:31:45 GMT): dengjiali (Thu, 13 Aug 2020 15:32:07 GMT): dporto (Thu, 13 Aug 2020 15:32:18 GMT): dengjiali (Thu, 13 Aug 2020 15:34:08 GMT): dporto (Thu, 13 Aug 2020 15:34:21 GMT): dporto (Thu, 13 Aug 2020 15:36:11 GMT): dporto (Thu, 13 Aug 2020 15:37:45 GMT): dporto (Thu, 13 Aug 2020 15:39:33 GMT): dporto (Thu, 13 Aug 2020 15:41:45 GMT): dporto (Thu, 13 Aug 2020 15:42:13 GMT): dporto (Thu, 13 Aug 2020 15:54:22 GMT): dporto (Thu, 13 Aug 2020 15:56:22 GMT): dporto (Thu, 13 Aug 2020 16:01:36 GMT): dporto (Thu, 13 Aug 2020 16:11:41 GMT): akoita (Thu, 13 Aug 2020 17:32:59 GMT): dporto (Thu, 13 Aug 2020 21:26:02 GMT): dporto (Thu, 13 Aug 2020 21:26:25 GMT): klenik (Fri, 14 Aug 2020 08:47:37 GMT): dporto (Fri, 14 Aug 2020 11:04:41 GMT): dporto (Fri, 14 Aug 2020 11:06:41 GMT): dporto (Fri, 14 Aug 2020 11:06:55 GMT): dporto (Fri, 14 Aug 2020 13:07:21 GMT): dporto (Fri, 14 Aug 2020 13:07:23 GMT): dporto (Fri, 14 Aug 2020 13:08:20 GMT): dporto (Fri, 14 Aug 2020 13:08:48 GMT): klenik (Fri, 14 Aug 2020 13:16:39 GMT): klenik (Fri, 14 Aug 2020 13:17:40 GMT): dporto (Fri, 14 Aug 2020 13:42:21 GMT): dporto (Fri, 14 Aug 2020 14:01:53 GMT): dporto (Fri, 14 Aug 2020 14:36:07 GMT): klenik (Fri, 14 Aug 2020 15:10:44 GMT): klenik (Fri, 14 Aug 2020 15:11:11 GMT): klenik (Fri, 14 Aug 2020 15:12:19 GMT): dporto (Fri, 14 Aug 2020 15:13:25 GMT): klenik (Fri, 14 Aug 2020 15:13:38 GMT): dporto (Fri, 14 Aug 2020 15:13:40 GMT): dporto (Fri, 14 Aug 2020 15:13:46 GMT): dporto (Fri, 14 Aug 2020 15:14:26 GMT): klenik (Fri, 14 Aug 2020 15:15:06 GMT): klenik (Fri, 14 Aug 2020 15:15:29 GMT): dporto (Fri, 14 Aug 2020 15:16:30 GMT): dporto (Fri, 14 Aug 2020 15:17:11 GMT): klenik (Fri, 14 Aug 2020 15:20:50 GMT): dporto (Fri, 14 Aug 2020 17:56:59 GMT): dporto (Fri, 14 Aug 2020 17:59:29 GMT): dporto (Fri, 14 Aug 2020 18:28:39 GMT): dporto (Fri, 14 Aug 2020 18:48:40 GMT): dporto (Fri, 14 Aug 2020 18:49:41 GMT): dporto (Fri, 14 Aug 2020 18:49:41 GMT): akoita (Sat, 15 Aug 2020 12:09:53 GMT): andrew-coleman (Mon, 17 Aug 2020 08:09:49 GMT): casm3 (Mon, 17 Aug 2020 19:13:24 GMT): casm3 (Mon, 17 Aug 2020 19:13:54 GMT): casm3 (Mon, 17 Aug 2020 19:14:05 GMT): dporto (Tue, 18 Aug 2020 14:41:16 GMT): dporto (Tue, 18 Aug 2020 14:41:38 GMT): dporto (Tue, 18 Aug 2020 14:45:21 GMT): dporto (Tue, 18 Aug 2020 14:45:41 GMT): dporto (Tue, 18 Aug 2020 14:45:43 GMT): dporto (Tue, 18 Aug 2020 14:46:37 GMT): dporto (Tue, 18 Aug 2020 14:49:28 GMT): dporto (Tue, 18 Aug 2020 14:49:57 GMT): dporto (Tue, 18 Aug 2020 14:51:19 GMT): dporto (Tue, 18 Aug 2020 17:29:32 GMT): dporto (Tue, 18 Aug 2020 17:29:32 GMT): dporto (Tue, 18 Aug 2020 17:30:13 GMT): dporto (Tue, 18 Aug 2020 17:30:29 GMT): dporto (Tue, 18 Aug 2020 17:31:51 GMT): nkl199 (Wed, 19 Aug 2020 07:34:20 GMT): dporto (Wed, 19 Aug 2020 08:14:10 GMT): dporto (Wed, 19 Aug 2020 08:19:37 GMT): dporto (Wed, 19 Aug 2020 08:19:59 GMT): dporto (Wed, 19 Aug 2020 08:19:59 GMT): dporto (Wed, 19 Aug 2020 11:02:02 GMT): dporto (Wed, 19 Aug 2020 11:02:02 GMT): klenik (Wed, 19 Aug 2020 13:16:28 GMT): klenik (Wed, 19 Aug 2020 13:17:26 GMT): klenik (Wed, 19 Aug 2020 13:18:52 GMT): klenik (Wed, 19 Aug 2020 13:20:02 GMT): dporto (Wed, 19 Aug 2020 13:28:26 GMT): klenik (Wed, 19 Aug 2020 13:29:30 GMT): dporto (Wed, 19 Aug 2020 13:30:13 GMT): dporto (Wed, 19 Aug 2020 13:31:06 GMT): klenik (Wed, 19 Aug 2020 13:34:38 GMT): klenik (Wed, 19 Aug 2020 13:35:20 GMT): klenik (Wed, 19 Aug 2020 13:38:08 GMT): dporto (Wed, 19 Aug 2020 13:58:18 GMT): dporto (Wed, 19 Aug 2020 14:05:29 GMT): dporto (Wed, 19 Aug 2020 14:05:29 GMT): klenik (Wed, 19 Aug 2020 17:41:49 GMT): tongli (Thu, 20 Aug 2020 20:42:00 GMT): tongli (Thu, 20 Aug 2020 20:42:49 GMT): tongli (Thu, 20 Aug 2020 20:43:16 GMT): klenik (Fri, 21 Aug 2020 11:04:48 GMT): tongli (Fri, 21 Aug 2020 11:37:06 GMT): covepark (Fri, 21 Aug 2020 12:25:34 GMT): klenik (Fri, 21 Aug 2020 12:41:35 GMT): dporto (Fri, 21 Aug 2020 16:16:48 GMT): jcldnatv (Sat, 22 Aug 2020 17:21:24 GMT): mzeeshanhaider (Mon, 24 Aug 2020 06:41:22 GMT): mzeeshanhaider (Mon, 24 Aug 2020 11:37:27 GMT): nkl199 (Mon, 24 Aug 2020 13:36:47 GMT): dporto (Mon, 24 Aug 2020 14:46:22 GMT): dporto (Mon, 24 Aug 2020 14:46:22 GMT): Glen (Tue, 25 Aug 2020 03:28:32 GMT): Glen (Tue, 25 Aug 2020 03:30:27 GMT): Glen (Tue, 25 Aug 2020 03:30:27 GMT): Glen (Tue, 25 Aug 2020 03:30:27 GMT): Glen (Tue, 25 Aug 2020 03:30:27 GMT): nkl199 (Tue, 25 Aug 2020 07:08:42 GMT): nkl199 (Tue, 25 Aug 2020 07:09:20 GMT): Glen (Tue, 25 Aug 2020 09:25:27 GMT): Glen (Tue, 25 Aug 2020 09:25:56 GMT): mzeeshanhaider (Tue, 25 Aug 2020 16:10:26 GMT): nkl199 (Wed, 26 Aug 2020 12:58:45 GMT): qadahtm (Wed, 26 Aug 2020 13:11:14 GMT): qadahtm (Wed, 26 Aug 2020 13:11:15 GMT): nkl199 (Wed, 26 Aug 2020 14:46:05 GMT): nkl199 (Wed, 26 Aug 2020 14:46:36 GMT): qadahtm (Wed, 26 Aug 2020 16:17:36 GMT): qadahtm (Wed, 26 Aug 2020 16:18:15 GMT): nkl199 (Wed, 26 Aug 2020 16:18:47 GMT): nkl199 (Wed, 26 Aug 2020 16:18:47 GMT): qadahtm (Wed, 26 Aug 2020 16:19:37 GMT): qadahtm (Wed, 26 Aug 2020 16:21:09 GMT): nkl199 (Wed, 26 Aug 2020 16:21:58 GMT): nkl199 (Wed, 26 Aug 2020 16:22:14 GMT): qadahtm (Wed, 26 Aug 2020 16:23:20 GMT): qadahtm (Wed, 26 Aug 2020 16:23:48 GMT): nkl199 (Wed, 26 Aug 2020 16:24:18 GMT): qadahtm (Wed, 26 Aug 2020 16:25:19 GMT): nkl199 (Wed, 26 Aug 2020 16:25:31 GMT): bestbeforetoday (Wed, 26 Aug 2020 16:58:30 GMT): jorgego (Wed, 26 Aug 2020 22:39:23 GMT): jorgego (Wed, 26 Aug 2020 22:39:23 GMT): jorgego (Wed, 26 Aug 2020 22:39:23 GMT): jorgego (Wed, 26 Aug 2020 22:39:23 GMT): jorgego (Wed, 26 Aug 2020 22:39:23 GMT): nkl199 (Fri, 28 Aug 2020 08:27:41 GMT): dporto (Fri, 28 Aug 2020 11:06:24 GMT): dporto (Fri, 28 Aug 2020 11:06:24 GMT): dporto (Fri, 28 Aug 2020 11:06:24 GMT): nkl199 (Fri, 28 Aug 2020 14:13:00 GMT): TzortzisPanagiotis (Fri, 28 Aug 2020 17:04:44 GMT): TzortzisPanagiotis (Fri, 28 Aug 2020 17:08:29 GMT): TzortzisPanagiotis (Fri, 28 Aug 2020 18:38:40 GMT): nkl199 (Sat, 29 Aug 2020 16:59:39 GMT): nkl199 (Sat, 29 Aug 2020 17:00:04 GMT): macfarla (Tue, 01 Sep 2020 04:11:22 GMT): dporto (Thu, 03 Sep 2020 10:47:16 GMT): gregdhill (Thu, 03 Sep 2020 13:35:20 GMT): dporto (Fri, 04 Sep 2020 15:02:55 GMT): dporto (Fri, 04 Sep 2020 15:03:09 GMT): dporto (Fri, 04 Sep 2020 15:03:41 GMT): dporto (Fri, 04 Sep 2020 16:47:26 GMT): dporto (Fri, 04 Sep 2020 16:52:41 GMT): dporto (Fri, 04 Sep 2020 16:53:50 GMT): dporto (Fri, 04 Sep 2020 16:54:03 GMT): dporto (Fri, 04 Sep 2020 16:55:22 GMT): dporto (Fri, 04 Sep 2020 16:56:11 GMT): dporto (Fri, 04 Sep 2020 16:57:15 GMT): dporto (Fri, 04 Sep 2020 16:59:08 GMT): dporto (Fri, 04 Sep 2020 16:59:11 GMT): dporto (Fri, 04 Sep 2020 17:07:38 GMT): dporto (Fri, 04 Sep 2020 17:08:21 GMT): davidkel (Fri, 04 Sep 2020 17:59:15 GMT): mzeeshanhaider (Fri, 04 Sep 2020 19:01:46 GMT): mzeeshanhaider (Fri, 04 Sep 2020 19:03:55 GMT): jorgeRodriguez (Sun, 06 Sep 2020 07:34:31 GMT): hassan_ahmed4621 (Sun, 06 Sep 2020 08:16:11 GMT): hassan_ahmed4621 (Sun, 06 Sep 2020 08:16:12 GMT): hassan_ahmed4621 (Sun, 06 Sep 2020 08:16:12 GMT): hassan_ahmed4621 (Sun, 06 Sep 2020 12:47:20 GMT): Jakeeyturner (Mon, 07 Sep 2020 10:13:53 GMT): dporto (Mon, 07 Sep 2020 10:24:06 GMT): dporto (Mon, 07 Sep 2020 10:24:52 GMT): dporto (Mon, 07 Sep 2020 10:25:00 GMT): dporto (Mon, 07 Sep 2020 10:25:31 GMT): RosieM (Mon, 07 Sep 2020 12:45:10 GMT): RosieM (Mon, 07 Sep 2020 12:45:10 GMT): RosieM (Mon, 07 Sep 2020 12:45:10 GMT): RosieM (Mon, 07 Sep 2020 12:45:10 GMT): hassan_ahmed4621 (Mon, 07 Sep 2020 14:18:37 GMT): dporto (Mon, 07 Sep 2020 14:33:57 GMT): dporto (Mon, 07 Sep 2020 15:01:45 GMT): dporto (Mon, 07 Sep 2020 15:01:48 GMT): RosieM (Mon, 07 Sep 2020 15:08:09 GMT): RosieM (Mon, 07 Sep 2020 15:08:09 GMT): sghaemi (Mon, 07 Sep 2020 15:16:03 GMT): sghaemi (Mon, 07 Sep 2020 15:16:03 GMT): hassan_ahmed4621 (Tue, 08 Sep 2020 05:02:01 GMT): davidkel (Tue, 08 Sep 2020 06:59:44 GMT): sghaemi (Tue, 08 Sep 2020 16:20:05 GMT): davidkel (Tue, 08 Sep 2020 18:06:47 GMT): hassan_ahmed4621 (Tue, 08 Sep 2020 18:07:56 GMT): hassan_ahmed4621 (Tue, 08 Sep 2020 18:09:34 GMT): hassan_ahmed4621 (Tue, 08 Sep 2020 18:10:16 GMT): hassan_ahmed4621 (Tue, 08 Sep 2020 18:11:12 GMT): hassan_ahmed4621 (Tue, 08 Sep 2020 20:32:48 GMT): davidkel (Tue, 08 Sep 2020 21:20:37 GMT): klenik (Wed, 09 Sep 2020 07:38:16 GMT): klenik (Wed, 09 Sep 2020 07:44:36 GMT): klenik (Wed, 09 Sep 2020 07:52:35 GMT): dporto (Wed, 09 Sep 2020 09:27:54 GMT): dporto (Wed, 09 Sep 2020 09:30:30 GMT): dporto (Wed, 09 Sep 2020 09:31:44 GMT): dporto (Wed, 09 Sep 2020 09:33:10 GMT): dporto (Wed, 09 Sep 2020 09:35:33 GMT): tongli (Wed, 09 Sep 2020 16:59:05 GMT): tongli (Wed, 09 Sep 2020 16:59:10 GMT): tongli (Wed, 09 Sep 2020 17:06:40 GMT): klenik (Wed, 09 Sep 2020 18:19:09 GMT): tongli (Wed, 09 Sep 2020 18:19:42 GMT): tongli (Wed, 09 Sep 2020 18:20:39 GMT): tongli (Wed, 09 Sep 2020 18:20:39 GMT): tongli (Wed, 09 Sep 2020 18:20:57 GMT): tongli (Wed, 09 Sep 2020 18:21:36 GMT): tongli (Wed, 09 Sep 2020 19:01:47 GMT): hassan_ahmed4621 (Fri, 11 Sep 2020 06:28:34 GMT): hassan_ahmed4621 (Fri, 11 Sep 2020 06:32:19 GMT): klenik (Fri, 11 Sep 2020 06:57:42 GMT): tongli (Fri, 11 Sep 2020 15:48:13 GMT): tongli (Fri, 11 Sep 2020 15:48:44 GMT): davidkel (Fri, 11 Sep 2020 16:51:00 GMT): davidkel (Fri, 11 Sep 2020 16:51:00 GMT): hassan_ahmed4621 (Fri, 11 Sep 2020 17:30:23 GMT): hassan_ahmed4621 (Fri, 11 Sep 2020 17:30:23 GMT): hassan_ahmed4621 (Fri, 11 Sep 2020 17:30:23 GMT): dporto (Fri, 11 Sep 2020 17:33:42 GMT): dporto (Fri, 11 Sep 2020 17:33:51 GMT): hassan_ahmed4621 (Fri, 11 Sep 2020 17:44:42 GMT): hassan_ahmed4621 (Fri, 11 Sep 2020 17:44:42 GMT): hassan_ahmed4621 (Fri, 11 Sep 2020 17:44:42 GMT): hassan_ahmed4621 (Fri, 11 Sep 2020 17:46:30 GMT): hassan_ahmed4621 (Fri, 11 Sep 2020 17:46:32 GMT): tongli (Mon, 14 Sep 2020 03:27:33 GMT): lquintai (Mon, 14 Sep 2020 08:23:41 GMT): AlexanderZhovnuvaty (Mon, 14 Sep 2020 13:11:54 GMT): davidwboswell (Mon, 14 Sep 2020 14:56:08 GMT): davidwboswell (Mon, 14 Sep 2020 14:56:09 GMT): dporto (Mon, 14 Sep 2020 16:12:31 GMT): dporto (Mon, 14 Sep 2020 16:22:44 GMT): davidwboswell (Mon, 14 Sep 2020 17:11:14 GMT): tongli (Tue, 15 Sep 2020 00:48:20 GMT): tongli (Tue, 15 Sep 2020 00:48:41 GMT): tongli (Tue, 15 Sep 2020 00:48:54 GMT): tongli (Tue, 15 Sep 2020 00:49:25 GMT): nkl199 (Tue, 15 Sep 2020 09:23:16 GMT): nkl199 (Tue, 15 Sep 2020 09:23:16 GMT): AlexanderZhovnuvaty (Tue, 15 Sep 2020 09:28:08 GMT): nkl199 (Tue, 15 Sep 2020 10:11:59 GMT): AlexanderZhovnuvaty (Tue, 15 Sep 2020 10:12:47 GMT): klenik (Wed, 16 Sep 2020 16:11:42 GMT): klenik (Wed, 16 Sep 2020 16:12:40 GMT): klenik (Wed, 16 Sep 2020 16:14:41 GMT): klenik (Wed, 16 Sep 2020 16:15:41 GMT): dporto (Fri, 18 Sep 2020 14:44:13 GMT): dporto (Fri, 18 Sep 2020 14:46:47 GMT): dporto (Fri, 18 Sep 2020 14:50:02 GMT): dporto (Fri, 18 Sep 2020 14:50:08 GMT): nkl199 (Fri, 18 Sep 2020 14:56:06 GMT): vioking (Fri, 18 Sep 2020 16:52:59 GMT): klenik (Fri, 18 Sep 2020 17:47:59 GMT): yongmu-lol (Mon, 21 Sep 2020 06:24:12 GMT): yongmu-lol (Mon, 21 Sep 2020 06:34:58 GMT): yongmu-lol (Mon, 21 Sep 2020 06:35:40 GMT): vishnupradeepmahe (Mon, 21 Sep 2020 07:13:58 GMT): erin-hughes (Mon, 21 Sep 2020 07:59:21 GMT): klenik (Mon, 21 Sep 2020 08:10:49 GMT): klenik (Mon, 21 Sep 2020 08:13:46 GMT): yongmu-lol (Mon, 21 Sep 2020 08:22:29 GMT): yongmu-lol (Mon, 21 Sep 2020 09:03:28 GMT): klenik (Mon, 21 Sep 2020 09:12:15 GMT): yongmu-lol (Mon, 21 Sep 2020 10:35:42 GMT): yongmu-lol (Mon, 21 Sep 2020 11:16:35 GMT): klenik (Mon, 21 Sep 2020 11:34:57 GMT): yongmu-lol (Tue, 22 Sep 2020 07:42:58 GMT): yongmu-lol (Tue, 22 Sep 2020 07:47:39 GMT): yongmu-lol (Tue, 22 Sep 2020 07:54:06 GMT): yongmu-lol (Tue, 22 Sep 2020 07:56:35 GMT): yongmu-lol (Tue, 22 Sep 2020 07:58:03 GMT): yongmu-lol (Tue, 22 Sep 2020 07:58:12 GMT): NicolasMassart (Fri, 25 Sep 2020 13:47:44 GMT): yongmu-lol (Sat, 26 Sep 2020 13:02:12 GMT): yusufucbas (Sat, 26 Sep 2020 23:27:25 GMT): yusufucbas (Sat, 26 Sep 2020 23:39:27 GMT): nkl199 (Mon, 28 Sep 2020 07:54:31 GMT): nkl199 (Mon, 28 Sep 2020 08:48:42 GMT): nkl199 (Mon, 28 Sep 2020 08:48:42 GMT): klenik (Mon, 28 Sep 2020 12:11:48 GMT): yongmu-lol (Mon, 28 Sep 2020 12:40:40 GMT): yongmu-lol (Mon, 28 Sep 2020 12:41:18 GMT): nkl199 (Mon, 28 Sep 2020 12:41:38 GMT): yongmu-lol (Mon, 28 Sep 2020 13:01:29 GMT): nkl199 (Mon, 28 Sep 2020 13:05:19 GMT): yongmu-lol (Mon, 28 Sep 2020 13:09:10 GMT): nkl199 (Mon, 28 Sep 2020 13:09:27 GMT): yongmu-lol (Mon, 28 Sep 2020 13:13:00 GMT): nkl199 (Mon, 28 Sep 2020 13:13:37 GMT): nkl199 (Mon, 28 Sep 2020 13:13:52 GMT): nkl199 (Mon, 28 Sep 2020 13:14:13 GMT): yongmu-lol (Mon, 28 Sep 2020 13:14:53 GMT): nkl199 (Mon, 28 Sep 2020 13:15:09 GMT): nkl199 (Mon, 28 Sep 2020 13:15:27 GMT): yongmu-lol (Mon, 28 Sep 2020 13:20:00 GMT): nkl199 (Mon, 28 Sep 2020 13:20:53 GMT): yongmu-lol (Mon, 28 Sep 2020 13:21:00 GMT): nkl199 (Mon, 28 Sep 2020 13:21:20 GMT): yongmu-lol (Mon, 28 Sep 2020 13:21:28 GMT): nkl199 (Mon, 28 Sep 2020 13:21:41 GMT): yongmu-lol (Mon, 28 Sep 2020 13:21:44 GMT): nkl199 (Mon, 28 Sep 2020 13:22:34 GMT): yongmu-lol (Mon, 28 Sep 2020 13:28:25 GMT): yongmu-lol (Mon, 28 Sep 2020 13:29:42 GMT): nkl199 (Mon, 28 Sep 2020 13:32:02 GMT): yongmu-lol (Mon, 28 Sep 2020 13:34:12 GMT): nkl199 (Mon, 28 Sep 2020 13:34:53 GMT): yongmu-lol (Mon, 28 Sep 2020 13:39:30 GMT): nkl199 (Mon, 28 Sep 2020 13:43:21 GMT): miribeiro (Mon, 28 Sep 2020 15:22:27 GMT): miribeiro (Mon, 28 Sep 2020 15:22:27 GMT): nkl199 (Mon, 28 Sep 2020 16:36:25 GMT): tongli (Mon, 28 Sep 2020 16:45:44 GMT): miribeiro (Mon, 28 Sep 2020 17:03:25 GMT): miribeiro (Mon, 28 Sep 2020 17:07:11 GMT): miribeiro (Mon, 28 Sep 2020 17:08:44 GMT): nkl199 (Mon, 28 Sep 2020 17:12:58 GMT): nkl199 (Mon, 28 Sep 2020 17:13:43 GMT): nkl199 (Mon, 28 Sep 2020 17:13:43 GMT): nkl199 (Mon, 28 Sep 2020 17:14:36 GMT): miribeiro (Mon, 28 Sep 2020 17:27:21 GMT): miribeiro (Mon, 28 Sep 2020 17:28:32 GMT): tongli (Mon, 28 Sep 2020 18:21:25 GMT): tongli (Mon, 28 Sep 2020 18:21:25 GMT): nkl199 (Tue, 29 Sep 2020 08:16:28 GMT): yongmu-lol (Tue, 29 Sep 2020 08:38:44 GMT): yongmu-lol (Tue, 29 Sep 2020 08:39:00 GMT): yongmu-lol (Tue, 29 Sep 2020 08:39:14 GMT): yongmu-lol (Tue, 29 Sep 2020 08:39:32 GMT): yongmu-lol (Tue, 29 Sep 2020 08:40:31 GMT): yongmu-lol (Tue, 29 Sep 2020 08:40:44 GMT): nkl199 (Tue, 29 Sep 2020 08:41:54 GMT): yongmu-lol (Tue, 29 Sep 2020 08:43:31 GMT): nkl199 (Tue, 29 Sep 2020 08:44:20 GMT): yongmu-lol (Tue, 29 Sep 2020 08:45:43 GMT): yongmu-lol (Tue, 29 Sep 2020 08:46:25 GMT): nkl199 (Tue, 29 Sep 2020 08:47:00 GMT): yongmu-lol (Tue, 29 Sep 2020 08:48:16 GMT): nkl199 (Tue, 29 Sep 2020 08:49:55 GMT): yongmu-lol (Tue, 29 Sep 2020 08:51:30 GMT): yongmu-lol (Tue, 29 Sep 2020 08:54:41 GMT): yongmu-lol (Tue, 29 Sep 2020 08:55:25 GMT): nkl199 (Tue, 29 Sep 2020 08:58:42 GMT): yongmu-lol (Tue, 29 Sep 2020 09:04:55 GMT): vishnupradeepmahe (Tue, 29 Sep 2020 16:47:34 GMT): yusufucbas (Wed, 30 Sep 2020 02:28:38 GMT): yusufucbas (Wed, 30 Sep 2020 02:49:14 GMT): yusufucbas (Wed, 30 Sep 2020 02:55:38 GMT): yusufucbas (Wed, 30 Sep 2020 02:57:04 GMT): yongmu-lol (Wed, 30 Sep 2020 05:19:36 GMT): nkl199 (Wed, 30 Sep 2020 06:54:51 GMT): yongmu-lol (Wed, 30 Sep 2020 08:01:24 GMT): klenik (Wed, 30 Sep 2020 14:06:00 GMT): klenik (Wed, 30 Sep 2020 14:07:55 GMT): qadahtm (Wed, 30 Sep 2020 16:54:33 GMT): qadahtm (Wed, 30 Sep 2020 16:54:33 GMT): Dan (Wed, 30 Sep 2020 17:50:58 GMT): yusufucbas (Wed, 30 Sep 2020 22:32:51 GMT): yusufucbas (Wed, 30 Sep 2020 22:33:46 GMT): yusufucbas (Wed, 30 Sep 2020 22:34:46 GMT): yusufucbas (Wed, 30 Sep 2020 22:35:00 GMT): yusufucbas (Wed, 30 Sep 2020 22:35:33 GMT): manoranjith (Fri, 02 Oct 2020 06:23:31 GMT): nkl199 (Fri, 02 Oct 2020 09:11:05 GMT): dgt1nsty (Fri, 02 Oct 2020 14:24:02 GMT): yusufucbas (Mon, 05 Oct 2020 00:09:26 GMT): yusufucbas (Mon, 05 Oct 2020 00:09:29 GMT): yusufucbas (Mon, 05 Oct 2020 00:09:29 GMT): klenik (Mon, 05 Oct 2020 11:49:11 GMT): klenik (Mon, 05 Oct 2020 12:23:25 GMT): yongmu-lol (Tue, 06 Oct 2020 06:54:08 GMT): Sandeepk40 (Wed, 07 Oct 2020 04:28:52 GMT): yongmu-lol (Wed, 07 Oct 2020 10:47:39 GMT): klenik (Wed, 07 Oct 2020 11:11:25 GMT): klenik (Wed, 07 Oct 2020 11:11:25 GMT): dporto (Thu, 08 Oct 2020 10:18:03 GMT): dporto (Thu, 08 Oct 2020 10:18:09 GMT): dporto (Thu, 08 Oct 2020 10:26:59 GMT): klenik (Thu, 08 Oct 2020 12:27:03 GMT): dporto (Thu, 08 Oct 2020 14:16:30 GMT): klenik (Thu, 08 Oct 2020 14:19:00 GMT): dporto (Thu, 08 Oct 2020 14:25:35 GMT): klenik (Thu, 08 Oct 2020 14:28:39 GMT): klenik (Thu, 08 Oct 2020 14:31:24 GMT): jaromil (Thu, 08 Oct 2020 15:19:53 GMT): dporto (Thu, 08 Oct 2020 16:01:35 GMT): dporto (Thu, 08 Oct 2020 16:01:35 GMT): dporto (Thu, 08 Oct 2020 16:13:52 GMT): dporto (Thu, 08 Oct 2020 16:14:32 GMT): dporto (Thu, 08 Oct 2020 16:14:43 GMT): dporto (Thu, 08 Oct 2020 16:15:07 GMT): tongli (Thu, 08 Oct 2020 16:39:23 GMT): tongli (Thu, 08 Oct 2020 16:39:34 GMT): tongli (Thu, 08 Oct 2020 16:40:04 GMT): tongli (Thu, 08 Oct 2020 16:40:46 GMT): davidkel (Thu, 08 Oct 2020 17:24:40 GMT): davidkel (Thu, 08 Oct 2020 17:24:40 GMT): dporto (Thu, 08 Oct 2020 17:26:08 GMT): dporto (Thu, 08 Oct 2020 17:27:19 GMT): dporto (Thu, 08 Oct 2020 17:27:28 GMT): davidkel (Thu, 08 Oct 2020 17:28:05 GMT): davidkel (Thu, 08 Oct 2020 17:28:54 GMT): dporto (Thu, 08 Oct 2020 17:29:03 GMT): dporto (Thu, 08 Oct 2020 17:30:32 GMT): dporto (Thu, 08 Oct 2020 17:30:54 GMT): dporto (Thu, 08 Oct 2020 17:32:12 GMT): dporto (Thu, 08 Oct 2020 17:36:40 GMT): davidkel (Thu, 08 Oct 2020 17:37:04 GMT): dporto (Thu, 08 Oct 2020 17:37:19 GMT): dporto (Thu, 08 Oct 2020 17:58:43 GMT): dporto (Thu, 08 Oct 2020 17:59:07 GMT): dporto (Thu, 08 Oct 2020 18:01:16 GMT): tongli (Thu, 08 Oct 2020 18:02:16 GMT): dporto (Thu, 08 Oct 2020 18:02:43 GMT): tongli (Thu, 08 Oct 2020 18:03:00 GMT): tongli (Thu, 08 Oct 2020 18:03:24 GMT): dporto (Thu, 08 Oct 2020 18:03:57 GMT): tongli (Thu, 08 Oct 2020 18:04:09 GMT): tongli (Thu, 08 Oct 2020 18:04:54 GMT): tongli (Thu, 08 Oct 2020 18:05:39 GMT): tongli (Thu, 08 Oct 2020 18:06:14 GMT): dporto (Thu, 08 Oct 2020 18:09:58 GMT): tongli (Thu, 08 Oct 2020 18:11:02 GMT): tongli (Thu, 08 Oct 2020 18:11:43 GMT): davidkel (Thu, 08 Oct 2020 18:12:53 GMT): davidkel (Thu, 08 Oct 2020 18:12:53 GMT): davidkel (Thu, 08 Oct 2020 18:14:54 GMT): davidkel (Thu, 08 Oct 2020 18:14:54 GMT): dporto (Thu, 08 Oct 2020 18:16:42 GMT): dporto (Thu, 08 Oct 2020 18:16:51 GMT): dporto (Thu, 08 Oct 2020 18:17:02 GMT): dporto (Thu, 08 Oct 2020 18:17:08 GMT): dporto (Thu, 08 Oct 2020 18:17:48 GMT): dporto (Thu, 08 Oct 2020 18:18:08 GMT): dporto (Thu, 08 Oct 2020 18:18:35 GMT): davidkel (Thu, 08 Oct 2020 18:18:53 GMT): davidkel (Thu, 08 Oct 2020 18:21:30 GMT): tongli (Thu, 08 Oct 2020 18:26:49 GMT): nkl199 (Fri, 09 Oct 2020 08:26:39 GMT): nkl199 (Fri, 09 Oct 2020 08:27:47 GMT): yongmu-lol (Sat, 10 Oct 2020 06:41:05 GMT): yongmu-lol (Sat, 10 Oct 2020 06:53:03 GMT): yongmu-lol (Sat, 10 Oct 2020 07:45:21 GMT): nkl199 (Mon, 12 Oct 2020 08:17:21 GMT): nkl199 (Mon, 12 Oct 2020 08:17:21 GMT): nkl199 (Mon, 12 Oct 2020 12:40:10 GMT): nkl199 (Mon, 12 Oct 2020 12:41:27 GMT): tongli (Mon, 12 Oct 2020 12:45:02 GMT): nkl199 (Mon, 12 Oct 2020 12:48:41 GMT): nkl199 (Mon, 12 Oct 2020 12:48:55 GMT): tongli (Mon, 12 Oct 2020 12:54:19 GMT): nkl199 (Mon, 12 Oct 2020 12:55:22 GMT): tongli (Mon, 12 Oct 2020 13:01:45 GMT): nkl199 (Mon, 12 Oct 2020 13:02:41 GMT): tongli (Mon, 12 Oct 2020 13:06:30 GMT): nkl199 (Mon, 12 Oct 2020 13:06:41 GMT): tongli (Mon, 12 Oct 2020 13:22:45 GMT): nkl199 (Mon, 12 Oct 2020 13:23:01 GMT): tongli (Mon, 12 Oct 2020 13:23:14 GMT): nkl199 (Mon, 12 Oct 2020 13:23:30 GMT): tongli (Mon, 12 Oct 2020 13:23:35 GMT): tongli (Mon, 12 Oct 2020 13:23:48 GMT): tongli (Mon, 12 Oct 2020 13:23:55 GMT): tongli (Mon, 12 Oct 2020 13:24:35 GMT): tongli (Mon, 12 Oct 2020 13:24:41 GMT): tongli (Mon, 12 Oct 2020 13:25:54 GMT): tongli (Mon, 12 Oct 2020 13:26:12 GMT): tongli (Mon, 12 Oct 2020 13:27:22 GMT): nkl199 (Mon, 12 Oct 2020 13:27:38 GMT): tongli (Mon, 12 Oct 2020 13:27:40 GMT): tongli (Mon, 12 Oct 2020 13:28:49 GMT): nkl199 (Mon, 12 Oct 2020 13:29:02 GMT): tongli (Mon, 12 Oct 2020 13:29:29 GMT): nkl199 (Mon, 12 Oct 2020 13:29:37 GMT): tongli (Mon, 12 Oct 2020 13:30:11 GMT): tongli (Mon, 12 Oct 2020 13:30:22 GMT): tongli (Mon, 12 Oct 2020 13:30:35 GMT): tongli (Mon, 12 Oct 2020 13:31:46 GMT): tongli (Mon, 12 Oct 2020 13:33:38 GMT): tongli (Mon, 12 Oct 2020 13:36:57 GMT): tongli (Mon, 12 Oct 2020 13:37:06 GMT): tongli (Mon, 12 Oct 2020 13:37:24 GMT): tongli (Mon, 12 Oct 2020 13:37:42 GMT): nkl199 (Mon, 12 Oct 2020 13:38:36 GMT): tongli (Mon, 12 Oct 2020 13:40:40 GMT): tongli (Mon, 12 Oct 2020 13:40:49 GMT): tongli (Mon, 12 Oct 2020 13:40:54 GMT): tongli (Mon, 12 Oct 2020 13:41:33 GMT): tongli (Mon, 12 Oct 2020 13:41:54 GMT): nkl199 (Mon, 12 Oct 2020 13:48:36 GMT): tongli (Mon, 12 Oct 2020 13:49:06 GMT): klenik (Mon, 12 Oct 2020 16:16:18 GMT): tongli (Mon, 12 Oct 2020 16:17:25 GMT): tongli (Mon, 12 Oct 2020 16:21:46 GMT): klenik (Mon, 12 Oct 2020 16:33:48 GMT): klenik (Mon, 12 Oct 2020 16:34:12 GMT): tongli (Mon, 12 Oct 2020 17:08:50 GMT): tongli (Mon, 12 Oct 2020 17:08:58 GMT): tongli (Mon, 12 Oct 2020 17:09:10 GMT): klenik (Mon, 12 Oct 2020 17:35:30 GMT): klenik (Mon, 12 Oct 2020 17:35:30 GMT): tongli (Mon, 12 Oct 2020 17:45:17 GMT): tongli (Mon, 12 Oct 2020 17:45:17 GMT): klenik (Mon, 12 Oct 2020 17:47:31 GMT): tongli (Mon, 12 Oct 2020 17:49:59 GMT): tongli (Mon, 12 Oct 2020 17:56:15 GMT): tongli (Mon, 12 Oct 2020 17:56:18 GMT): tongli (Mon, 12 Oct 2020 17:56:26 GMT): tongli (Mon, 12 Oct 2020 17:56:34 GMT): MuhammadIslam (Tue, 13 Oct 2020 06:05:14 GMT): MuhammadIslam (Tue, 13 Oct 2020 06:05:15 GMT): MuhammadIslam (Tue, 13 Oct 2020 06:05:15 GMT): BatistaSilva (Tue, 13 Oct 2020 06:55:25 GMT): BatistaSilva (Tue, 13 Oct 2020 06:55:26 GMT): BatistaSilva (Tue, 13 Oct 2020 06:55:32 GMT): nkl199 (Tue, 13 Oct 2020 07:15:20 GMT): nkl199 (Tue, 13 Oct 2020 07:15:31 GMT): sghaemi (Tue, 13 Oct 2020 17:20:20 GMT): sghaemi (Tue, 13 Oct 2020 17:21:53 GMT): sghaemi (Tue, 13 Oct 2020 17:21:53 GMT): nkl199 (Wed, 14 Oct 2020 07:36:28 GMT): suneel18 (Wed, 14 Oct 2020 14:44:13 GMT): suneel18 (Wed, 14 Oct 2020 14:44:13 GMT): nkl199 (Wed, 14 Oct 2020 14:58:11 GMT): suneel18 (Wed, 14 Oct 2020 15:18:12 GMT): nkl199 (Wed, 14 Oct 2020 15:19:20 GMT): suneel18 (Wed, 14 Oct 2020 15:32:33 GMT): dporto (Wed, 14 Oct 2020 15:34:06 GMT): nkl199 (Wed, 14 Oct 2020 15:39:56 GMT): nkl199 (Wed, 14 Oct 2020 15:39:56 GMT): dporto (Wed, 14 Oct 2020 15:42:35 GMT): dporto (Wed, 14 Oct 2020 15:42:43 GMT): sghaemi (Wed, 14 Oct 2020 15:43:04 GMT): nkl199 (Wed, 14 Oct 2020 15:45:34 GMT): sghaemi (Wed, 14 Oct 2020 15:46:55 GMT): sghaemi (Wed, 14 Oct 2020 15:46:55 GMT): suneel18 (Wed, 14 Oct 2020 18:40:03 GMT): davidkel (Wed, 14 Oct 2020 22:11:21 GMT): suneel18 (Thu, 15 Oct 2020 05:59:37 GMT): davidkel (Thu, 15 Oct 2020 07:23:02 GMT): miribeiro (Thu, 15 Oct 2020 18:18:53 GMT): tongli (Thu, 15 Oct 2020 19:54:45 GMT): tongli (Thu, 15 Oct 2020 19:55:33 GMT): miribeiro (Thu, 15 Oct 2020 19:59:58 GMT): yongmu-lol (Fri, 16 Oct 2020 07:24:27 GMT): dporto (Fri, 16 Oct 2020 10:21:05 GMT): dporto (Fri, 16 Oct 2020 10:21:05 GMT): dporto (Fri, 16 Oct 2020 10:21:05 GMT): dporto (Fri, 16 Oct 2020 10:26:33 GMT): dporto (Fri, 16 Oct 2020 10:30:12 GMT): dporto (Fri, 16 Oct 2020 10:34:28 GMT): dporto (Fri, 16 Oct 2020 15:22:52 GMT): dporto (Fri, 16 Oct 2020 15:23:03 GMT): dporto (Fri, 16 Oct 2020 15:24:31 GMT): dporto (Fri, 16 Oct 2020 15:24:36 GMT): dporto (Fri, 16 Oct 2020 15:25:13 GMT): dporto (Fri, 16 Oct 2020 15:25:28 GMT): dporto (Fri, 16 Oct 2020 15:25:35 GMT): dporto (Fri, 16 Oct 2020 15:26:51 GMT): dporto (Fri, 16 Oct 2020 15:26:51 GMT): dporto (Fri, 16 Oct 2020 15:28:59 GMT): dporto (Fri, 16 Oct 2020 16:08:15 GMT): dporto (Fri, 16 Oct 2020 16:08:33 GMT): dporto (Fri, 16 Oct 2020 16:08:54 GMT): nkl199 (Mon, 19 Oct 2020 10:53:08 GMT): nkl199 (Mon, 19 Oct 2020 12:16:29 GMT): nkl199 (Mon, 19 Oct 2020 12:16:29 GMT): nkl199 (Mon, 19 Oct 2020 12:16:29 GMT): dporto (Mon, 19 Oct 2020 14:21:34 GMT): nkl199 (Mon, 19 Oct 2020 14:28:22 GMT): nkl199 (Mon, 19 Oct 2020 14:28:22 GMT): dporto (Mon, 19 Oct 2020 14:49:06 GMT): nkl199 (Mon, 19 Oct 2020 14:54:24 GMT): dporto (Mon, 19 Oct 2020 14:54:53 GMT): nkl199 (Mon, 19 Oct 2020 14:57:39 GMT): nkl199 (Mon, 19 Oct 2020 14:57:44 GMT): miribeiro (Mon, 19 Oct 2020 17:25:18 GMT): dfischercodethoughts (Tue, 20 Oct 2020 02:46:39 GMT): dfischercodethoughts (Tue, 20 Oct 2020 02:46:39 GMT): nkl199 (Tue, 20 Oct 2020 07:16:53 GMT): nkl199 (Tue, 20 Oct 2020 07:44:38 GMT): nkl199 (Tue, 20 Oct 2020 08:14:48 GMT): MuhammadIslam (Tue, 20 Oct 2020 09:40:55 GMT): MuhammadIslam (Tue, 20 Oct 2020 09:40:55 GMT): MuhammadIslam (Wed, 21 Oct 2020 06:49:52 GMT): lcxlcxlcx5800 (Wed, 21 Oct 2020 07:28:43 GMT): nkl199 (Wed, 21 Oct 2020 07:31:56 GMT): darksidergod (Wed, 21 Oct 2020 07:45:49 GMT): darksidergod (Wed, 21 Oct 2020 07:45:49 GMT): darksidergod (Wed, 21 Oct 2020 07:46:38 GMT): MuhammadIslam (Wed, 21 Oct 2020 11:30:26 GMT): MuhammadIslam (Wed, 21 Oct 2020 11:30:26 GMT): MuhammadIslam (Wed, 21 Oct 2020 11:41:08 GMT): MuhammadIslam (Wed, 21 Oct 2020 11:41:08 GMT): MuhammadIslam (Wed, 21 Oct 2020 11:41:08 GMT): MuhammadIslam (Wed, 21 Oct 2020 11:41:08 GMT): MuhammadIslam (Wed, 21 Oct 2020 11:44:01 GMT): MuhammadIslam (Wed, 21 Oct 2020 11:44:04 GMT): nkl199 (Wed, 21 Oct 2020 12:05:37 GMT): nkl199 (Wed, 21 Oct 2020 12:06:05 GMT): nkl199 (Wed, 21 Oct 2020 12:07:49 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:13:49 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:13:49 GMT): nkl199 (Wed, 21 Oct 2020 12:19:18 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:28:21 GMT): nkl199 (Wed, 21 Oct 2020 12:29:01 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:32:52 GMT): nkl199 (Wed, 21 Oct 2020 12:37:15 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:52:26 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:52:49 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:53:17 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:55:49 GMT): nkl199 (Wed, 21 Oct 2020 12:56:53 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:57:07 GMT): nkl199 (Wed, 21 Oct 2020 12:57:12 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:57:53 GMT): nkl199 (Wed, 21 Oct 2020 12:57:55 GMT): nkl199 (Wed, 21 Oct 2020 12:58:13 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:58:30 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:58:43 GMT): nkl199 (Wed, 21 Oct 2020 12:58:47 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:59:04 GMT): MuhammadIslam (Wed, 21 Oct 2020 12:59:31 GMT): nkl199 (Wed, 21 Oct 2020 12:59:46 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:01:43 GMT): nkl199 (Wed, 21 Oct 2020 13:02:01 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:02:18 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:03:42 GMT): nkl199 (Wed, 21 Oct 2020 13:04:17 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:05:34 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:05:34 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:06:03 GMT): darksidergod (Wed, 21 Oct 2020 13:07:43 GMT): nkl199 (Wed, 21 Oct 2020 13:18:50 GMT): C0rWin (Wed, 21 Oct 2020 13:29:19 GMT): nkl199 (Wed, 21 Oct 2020 13:31:35 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:32:18 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:34:19 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:34:19 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:37:09 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:37:52 GMT): nkl199 (Wed, 21 Oct 2020 13:40:12 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:42:50 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:42:50 GMT): nkl199 (Wed, 21 Oct 2020 13:47:18 GMT): MuhammadIslam (Wed, 21 Oct 2020 13:49:03 GMT): akoita (Thu, 22 Oct 2020 06:54:35 GMT): akoita (Thu, 22 Oct 2020 06:54:35 GMT): akoita (Thu, 22 Oct 2020 06:54:35 GMT): akoita (Thu, 22 Oct 2020 06:54:35 GMT): akoita (Thu, 22 Oct 2020 06:54:35 GMT): akoita (Thu, 22 Oct 2020 06:54:35 GMT): akoita (Thu, 22 Oct 2020 06:54:35 GMT): akoita (Thu, 22 Oct 2020 06:54:35 GMT): darksidergod (Thu, 22 Oct 2020 09:04:41 GMT): darksidergod (Thu, 22 Oct 2020 09:06:26 GMT): akoita (Thu, 22 Oct 2020 13:54:41 GMT): akoita (Thu, 22 Oct 2020 13:55:33 GMT): akoita (Thu, 22 Oct 2020 13:55:33 GMT): akoita (Thu, 22 Oct 2020 13:55:33 GMT): akoita (Thu, 22 Oct 2020 13:55:33 GMT): akoita (Thu, 22 Oct 2020 13:55:33 GMT): akoita (Thu, 22 Oct 2020 13:58:36 GMT): yongmu-lol (Sat, 24 Oct 2020 08:47:59 GMT): miribeiro (Sun, 25 Oct 2020 17:27:49 GMT): miribeiro (Sun, 25 Oct 2020 21:40:38 GMT): nkl199 (Mon, 26 Oct 2020 09:07:50 GMT): nkl199 (Mon, 26 Oct 2020 09:09:13 GMT): nkl199 (Mon, 26 Oct 2020 09:10:58 GMT): miribeiro (Mon, 26 Oct 2020 15:46:14 GMT): miribeiro (Mon, 26 Oct 2020 15:46:14 GMT): nkl199 (Mon, 26 Oct 2020 15:52:47 GMT): miribeiro (Mon, 26 Oct 2020 15:54:15 GMT): miribeiro (Mon, 26 Oct 2020 17:52:39 GMT): miribeiro (Mon, 26 Oct 2020 17:52:39 GMT): nkl199 (Tue, 27 Oct 2020 09:51:31 GMT): nkl199 (Tue, 27 Oct 2020 09:51:31 GMT): akoita (Tue, 27 Oct 2020 14:01:09 GMT): klenik (Tue, 27 Oct 2020 17:28:25 GMT): klenik (Tue, 27 Oct 2020 17:30:31 GMT): klenik (Tue, 27 Oct 2020 17:36:21 GMT): klenik (Tue, 27 Oct 2020 17:37:12 GMT): klenik (Tue, 27 Oct 2020 17:40:37 GMT): klenik (Tue, 27 Oct 2020 17:42:46 GMT): klenik (Tue, 27 Oct 2020 17:42:46 GMT): klenik (Tue, 27 Oct 2020 17:42:46 GMT): miribeiro (Tue, 27 Oct 2020 19:24:54 GMT): akoita (Wed, 28 Oct 2020 08:13:36 GMT): akoita (Wed, 28 Oct 2020 08:15:01 GMT): akoita (Wed, 28 Oct 2020 08:15:01 GMT): akoita (Wed, 28 Oct 2020 08:28:49 GMT): nkl199 (Wed, 28 Oct 2020 09:21:00 GMT): nkl199 (Wed, 28 Oct 2020 09:22:37 GMT): oykuyilmaz (Wed, 28 Oct 2020 10:42:38 GMT): AlphaX (Wed, 28 Oct 2020 10:59:34 GMT): AlphaX (Wed, 28 Oct 2020 10:59:35 GMT): AlphaX (Wed, 28 Oct 2020 11:01:22 GMT): AlphaX (Wed, 28 Oct 2020 11:01:46 GMT): klenik (Wed, 28 Oct 2020 12:43:26 GMT): klenik (Wed, 28 Oct 2020 12:46:45 GMT): AlphaX (Wed, 28 Oct 2020 13:14:14 GMT): AlphaX (Wed, 28 Oct 2020 13:14:23 GMT): klenik (Wed, 28 Oct 2020 13:15:36 GMT): miribeiro (Wed, 28 Oct 2020 21:23:08 GMT): miribeiro (Wed, 28 Oct 2020 21:23:08 GMT): nkl199 (Thu, 29 Oct 2020 08:26:25 GMT): miribeiro (Thu, 29 Oct 2020 11:58:51 GMT): nkl199 (Thu, 29 Oct 2020 12:00:05 GMT): nkl199 (Thu, 29 Oct 2020 12:00:22 GMT): miribeiro (Thu, 29 Oct 2020 12:06:34 GMT): nkl199 (Thu, 29 Oct 2020 12:28:34 GMT): HelmiTrabelsi (Mon, 02 Nov 2020 08:31:25 GMT): nkl199 (Mon, 02 Nov 2020 08:56:35 GMT): HelmiTrabelsi (Mon, 02 Nov 2020 10:21:42 GMT): HelmiTrabelsi (Mon, 02 Nov 2020 11:40:21 GMT): klenik (Mon, 02 Nov 2020 14:04:13 GMT): nkl199 (Mon, 02 Nov 2020 17:24:14 GMT): tongli (Mon, 02 Nov 2020 17:34:40 GMT): tongli (Mon, 02 Nov 2020 17:34:40 GMT): klenik (Mon, 02 Nov 2020 22:47:50 GMT): tongli (Mon, 02 Nov 2020 23:17:08 GMT): tongli (Mon, 02 Nov 2020 23:17:18 GMT): miribeiro (Tue, 03 Nov 2020 00:23:43 GMT): dengjiali (Tue, 03 Nov 2020 04:23:46 GMT): dengjiali (Tue, 03 Nov 2020 04:26:27 GMT): Adhavpavan (Tue, 03 Nov 2020 08:09:24 GMT): nkl199 (Tue, 03 Nov 2020 08:30:16 GMT): nkl199 (Tue, 03 Nov 2020 08:31:05 GMT): nkl199 (Tue, 03 Nov 2020 08:34:56 GMT): miribeiro (Tue, 03 Nov 2020 10:35:21 GMT): nkl199 (Tue, 03 Nov 2020 10:36:57 GMT): miribeiro (Tue, 03 Nov 2020 10:46:58 GMT): nkl199 (Tue, 03 Nov 2020 11:26:36 GMT): CarlosMorales (Tue, 03 Nov 2020 16:12:54 GMT): miribeiro (Tue, 03 Nov 2020 18:20:24 GMT): nkl199 (Tue, 03 Nov 2020 18:38:05 GMT): CarlosMorales (Wed, 04 Nov 2020 08:30:19 GMT): nkl199 (Wed, 04 Nov 2020 08:45:34 GMT): A1kartikey (Sat, 07 Nov 2020 09:38:43 GMT): erodotosd (Sat, 07 Nov 2020 13:10:42 GMT): erodotosd (Sat, 07 Nov 2020 13:10:42 GMT): erodotosd (Sat, 07 Nov 2020 13:10:42 GMT): JongWanSeo (Sat, 07 Nov 2020 16:28:18 GMT): JongWanSeo (Sat, 07 Nov 2020 16:28:18 GMT): suneel18 (Mon, 09 Nov 2020 06:56:58 GMT): nkl199 (Mon, 09 Nov 2020 08:49:20 GMT): Adhavpavan (Wed, 11 Nov 2020 06:43:22 GMT): nkl199 (Wed, 11 Nov 2020 09:23:08 GMT): nkl199 (Wed, 11 Nov 2020 09:23:08 GMT): Adhavpavan (Wed, 11 Nov 2020 10:11:18 GMT): Adhavpavan (Wed, 11 Nov 2020 10:11:40 GMT): Adhavpavan (Wed, 11 Nov 2020 10:12:05 GMT): Adhavpavan (Wed, 11 Nov 2020 10:13:09 GMT): nkl199 (Wed, 11 Nov 2020 10:18:30 GMT): Adhavpavan (Wed, 11 Nov 2020 12:38:57 GMT): nkl199 (Wed, 11 Nov 2020 12:43:48 GMT): Adhavpavan (Wed, 11 Nov 2020 12:44:19 GMT): nkl199 (Wed, 11 Nov 2020 12:44:36 GMT): EtricKombat (Thu, 12 Nov 2020 15:39:22 GMT): EtricKombat (Thu, 12 Nov 2020 15:39:22 GMT): MuhammadIslam (Fri, 13 Nov 2020 01:12:13 GMT): MuhammadIslam (Fri, 13 Nov 2020 01:12:59 GMT): MuhammadIslam (Fri, 13 Nov 2020 01:12:59 GMT): MuhammadIslam (Fri, 13 Nov 2020 01:12:59 GMT): xingyuan426 (Fri, 13 Nov 2020 01:53:31 GMT): nkl199 (Fri, 13 Nov 2020 09:23:19 GMT): nkl199 (Fri, 13 Nov 2020 09:23:19 GMT): nkl199 (Fri, 13 Nov 2020 09:23:19 GMT): nkl199 (Fri, 13 Nov 2020 09:25:53 GMT): MuhammadIslam (Fri, 13 Nov 2020 09:55:09 GMT): nkl199 (Fri, 13 Nov 2020 09:59:04 GMT): MuhammadIslam (Fri, 13 Nov 2020 10:03:18 GMT): MuhammadIslam (Fri, 13 Nov 2020 10:03:18 GMT): MuhammadIslam (Fri, 13 Nov 2020 10:05:24 GMT): MuhammadIslam (Fri, 13 Nov 2020 10:05:52 GMT): nkl199 (Fri, 13 Nov 2020 10:09:21 GMT): MuhammadIslam (Fri, 13 Nov 2020 10:11:03 GMT): MuhammadIslam (Fri, 13 Nov 2020 10:11:07 GMT): MuhammadIslam (Fri, 13 Nov 2020 10:12:06 GMT): MuhammadIslam (Fri, 13 Nov 2020 10:13:24 GMT): nkl199 (Fri, 13 Nov 2020 10:24:11 GMT): MuhammadIslam (Fri, 13 Nov 2020 10:38:41 GMT): MuhammadIslam (Fri, 13 Nov 2020 10:40:09 GMT): MuhammadIslam (Fri, 13 Nov 2020 10:41:56 GMT): nkl199 (Fri, 13 Nov 2020 11:10:08 GMT): nkl199 (Fri, 13 Nov 2020 11:10:41 GMT): MuhammadIslam (Fri, 13 Nov 2020 11:12:22 GMT): MuhammadIslam (Fri, 13 Nov 2020 11:14:50 GMT): MuhammadIslam (Fri, 13 Nov 2020 11:15:51 GMT): nkl199 (Fri, 13 Nov 2020 11:16:16 GMT): MuhammadIslam (Fri, 13 Nov 2020 11:16:49 GMT): MuhammadIslam (Fri, 13 Nov 2020 11:17:07 GMT): nkl199 (Fri, 13 Nov 2020 11:18:05 GMT): MuhammadIslam (Fri, 13 Nov 2020 11:19:39 GMT): MuhammadIslam (Fri, 13 Nov 2020 11:20:01 GMT): nkl199 (Fri, 13 Nov 2020 11:20:05 GMT): nkl199 (Fri, 13 Nov 2020 11:20:17 GMT): nkl199 (Fri, 13 Nov 2020 11:20:20 GMT): MuhammadIslam (Fri, 13 Nov 2020 11:21:02 GMT): EtricKombat (Fri, 13 Nov 2020 12:06:13 GMT): EtricKombat (Fri, 13 Nov 2020 12:10:25 GMT): HelmiTrabelsi (Fri, 13 Nov 2020 13:03:19 GMT): nkl199 (Sat, 14 Nov 2020 06:39:54 GMT): nkl199 (Sat, 14 Nov 2020 06:40:48 GMT): nkl199 (Sat, 14 Nov 2020 06:41:10 GMT): EtricKombat (Sat, 14 Nov 2020 06:59:45 GMT): HelmiTrabelsi (Sat, 14 Nov 2020 07:13:52 GMT): HelmiTrabelsi (Sat, 14 Nov 2020 07:13:52 GMT): sithukaungset (Sat, 14 Nov 2020 07:32:33 GMT): sithukaungset (Sat, 14 Nov 2020 07:32:33 GMT): Jakeeyturner (Mon, 16 Nov 2020 09:44:49 GMT): Jakeeyturner (Mon, 16 Nov 2020 09:44:51 GMT): Jakeeyturner (Mon, 16 Nov 2020 09:46:15 GMT): reviz0r (Mon, 16 Nov 2020 20:24:47 GMT): Vgkmanju (Tue, 17 Nov 2020 05:54:16 GMT): HelmiTrabelsi (Tue, 17 Nov 2020 08:21:38 GMT): HelmiTrabelsi (Tue, 17 Nov 2020 08:21:38 GMT): nkl199 (Tue, 17 Nov 2020 08:32:04 GMT): adgupta011 (Wed, 18 Nov 2020 07:49:00 GMT): adgupta011 (Wed, 18 Nov 2020 08:34:56 GMT): nkl199 (Wed, 18 Nov 2020 09:02:31 GMT): adgupta011 (Wed, 18 Nov 2020 09:03:18 GMT): nkl199 (Wed, 18 Nov 2020 09:03:52 GMT): adgupta011 (Wed, 18 Nov 2020 09:04:18 GMT): nkl199 (Wed, 18 Nov 2020 09:06:12 GMT): adgupta011 (Wed, 18 Nov 2020 09:10:01 GMT): nkl199 (Wed, 18 Nov 2020 09:16:35 GMT): nkl199 (Wed, 18 Nov 2020 09:16:35 GMT): nkl199 (Wed, 18 Nov 2020 09:16:35 GMT): nkl199 (Wed, 18 Nov 2020 09:17:37 GMT): adgupta011 (Wed, 18 Nov 2020 10:00:40 GMT): adgupta011 (Wed, 18 Nov 2020 10:00:42 GMT): adgupta011 (Wed, 18 Nov 2020 10:02:04 GMT): nkl199 (Wed, 18 Nov 2020 10:03:57 GMT): adgupta011 (Wed, 18 Nov 2020 10:05:08 GMT): adgupta011 (Wed, 18 Nov 2020 10:05:10 GMT): nkl199 (Wed, 18 Nov 2020 10:05:24 GMT): adgupta011 (Wed, 18 Nov 2020 10:05:24 GMT): nkl199 (Wed, 18 Nov 2020 10:05:50 GMT): adgupta011 (Wed, 18 Nov 2020 10:06:44 GMT): nkl199 (Wed, 18 Nov 2020 10:12:11 GMT): adgupta011 (Thu, 19 Nov 2020 15:02:18 GMT): adgupta011 (Thu, 19 Nov 2020 15:10:40 GMT): adgupta011 (Thu, 19 Nov 2020 15:10:40 GMT): nkl199 (Fri, 20 Nov 2020 14:50:21 GMT): adgupta011 (Fri, 20 Nov 2020 15:05:00 GMT): HelmiTrabelsi (Fri, 20 Nov 2020 15:49:58 GMT): nkl199 (Mon, 23 Nov 2020 11:26:32 GMT): HelmiTrabelsi (Mon, 23 Nov 2020 11:27:08 GMT): nkl199 (Mon, 23 Nov 2020 11:28:25 GMT): nkl199 (Mon, 23 Nov 2020 11:28:25 GMT): nkl199 (Mon, 23 Nov 2020 11:28:48 GMT): HelmiTrabelsi (Mon, 23 Nov 2020 11:33:07 GMT): MeenTech (Mon, 23 Nov 2020 14:14:51 GMT): MeenTech (Mon, 23 Nov 2020 14:14:52 GMT): MeenTech (Mon, 23 Nov 2020 14:15:28 GMT): MeenTech (Mon, 23 Nov 2020 14:15:54 GMT): MeenTech (Mon, 23 Nov 2020 14:16:25 GMT): MeenTech (Mon, 23 Nov 2020 14:24:40 GMT): MeenTech (Mon, 23 Nov 2020 14:24:40 GMT): MeenTech (Mon, 23 Nov 2020 14:24:40 GMT): MeenTech (Mon, 23 Nov 2020 14:24:40 GMT): davidkel (Mon, 23 Nov 2020 15:11:14 GMT): MichalJarosz (Mon, 23 Nov 2020 15:21:56 GMT): MichalJarosz (Mon, 23 Nov 2020 15:21:56 GMT): davidkel (Mon, 23 Nov 2020 15:24:41 GMT): davidkel (Mon, 23 Nov 2020 15:28:38 GMT): MichalJarosz (Mon, 23 Nov 2020 15:35:10 GMT): davidkel (Mon, 23 Nov 2020 15:43:11 GMT): MichalJarosz (Mon, 23 Nov 2020 15:45:25 GMT): klenik (Tue, 24 Nov 2020 12:05:49 GMT): MichalJarosz (Tue, 24 Nov 2020 13:51:12 GMT): MichalJarosz (Tue, 24 Nov 2020 13:51:12 GMT): darksidergod (Tue, 24 Nov 2020 17:23:08 GMT): darksidergod (Tue, 24 Nov 2020 17:25:58 GMT): darksidergod (Tue, 24 Nov 2020 17:27:08 GMT): darksidergod (Tue, 24 Nov 2020 17:30:12 GMT): piyushmaheshwari65 (Wed, 25 Nov 2020 04:19:57 GMT): MuhammadIslam (Wed, 25 Nov 2020 05:30:20 GMT): MuhammadIslam (Wed, 25 Nov 2020 05:30:20 GMT): MuhammadIslam (Wed, 25 Nov 2020 05:46:48 GMT): nkl199 (Wed, 25 Nov 2020 10:48:34 GMT): nkl199 (Wed, 25 Nov 2020 10:48:34 GMT): heui0316 (Wed, 25 Nov 2020 12:07:53 GMT): heui0316 (Wed, 25 Nov 2020 12:07:54 GMT): heui0316 (Wed, 25 Nov 2020 12:08:19 GMT): heui0316 (Wed, 25 Nov 2020 12:09:52 GMT): adgupta011 (Wed, 25 Nov 2020 13:29:37 GMT): adgupta011 (Wed, 25 Nov 2020 13:29:37 GMT): nkl199 (Wed, 25 Nov 2020 14:48:36 GMT): nkl199 (Wed, 25 Nov 2020 14:48:36 GMT): nkl199 (Wed, 25 Nov 2020 14:49:21 GMT): adgupta011 (Wed, 25 Nov 2020 16:03:01 GMT): nkl199 (Wed, 25 Nov 2020 16:05:13 GMT): nkl199 (Wed, 25 Nov 2020 16:06:18 GMT): nkl199 (Wed, 25 Nov 2020 16:06:44 GMT): adgupta011 (Wed, 25 Nov 2020 16:13:15 GMT): nkl199 (Wed, 25 Nov 2020 16:13:56 GMT): adgupta011 (Wed, 25 Nov 2020 20:38:14 GMT): MuhammadIslam (Fri, 27 Nov 2020 12:40:55 GMT): MuhammadIslam (Fri, 27 Nov 2020 12:40:55 GMT): nkl199 (Fri, 27 Nov 2020 12:42:31 GMT): MuhammadIslam (Fri, 27 Nov 2020 12:42:56 GMT): MuhammadIslam (Fri, 27 Nov 2020 12:44:13 GMT): MuhammadIslam (Fri, 27 Nov 2020 12:44:13 GMT): MuhammadIslam (Mon, 30 Nov 2020 12:11:55 GMT): CarlosMorales (Mon, 30 Nov 2020 19:29:12 GMT): klenik (Tue, 01 Dec 2020 07:20:41 GMT): horsefall (Tue, 01 Dec 2020 08:43:16 GMT): horsefall (Tue, 01 Dec 2020 08:43:17 GMT): nkl199 (Tue, 01 Dec 2020 08:51:16 GMT): adgupta011 (Tue, 01 Dec 2020 14:17:52 GMT): nkl199 (Tue, 01 Dec 2020 15:43:27 GMT): adgupta011 (Tue, 01 Dec 2020 16:01:35 GMT): HelmiTrabelsi (Tue, 01 Dec 2020 16:04:32 GMT): nkl199 (Tue, 01 Dec 2020 17:08:44 GMT): nkl199 (Tue, 01 Dec 2020 17:12:40 GMT): HelmiTrabelsi (Tue, 01 Dec 2020 18:41:13 GMT): nkl199 (Tue, 01 Dec 2020 18:42:04 GMT): adgupta011 (Tue, 01 Dec 2020 19:28:45 GMT): adgupta011 (Tue, 01 Dec 2020 19:28:55 GMT): adgupta011 (Tue, 01 Dec 2020 19:29:32 GMT): nkl199 (Tue, 01 Dec 2020 19:31:28 GMT): nkl199 (Tue, 01 Dec 2020 19:33:40 GMT): nkl199 (Tue, 01 Dec 2020 19:33:52 GMT): nkl199 (Tue, 01 Dec 2020 19:34:29 GMT): adgupta011 (Tue, 01 Dec 2020 19:39:18 GMT): adgupta011 (Tue, 01 Dec 2020 20:01:19 GMT): adgupta011 (Tue, 01 Dec 2020 20:35:57 GMT): saheli_c (Wed, 02 Dec 2020 10:48:26 GMT): klenik (Wed, 02 Dec 2020 15:34:07 GMT): klenik (Wed, 02 Dec 2020 15:34:07 GMT): aakzubaidi (Wed, 02 Dec 2020 22:53:45 GMT): aakzubaidi (Wed, 02 Dec 2020 22:53:46 GMT): aakzubaidi (Wed, 02 Dec 2020 22:53:46 GMT): aakzubaidi (Wed, 02 Dec 2020 22:53:46 GMT): aakzubaidi (Wed, 02 Dec 2020 22:53:46 GMT): aakzubaidi (Wed, 02 Dec 2020 22:58:14 GMT): aakzubaidi (Wed, 02 Dec 2020 22:58:14 GMT): aakzubaidi (Wed, 02 Dec 2020 23:01:12 GMT): aakzubaidi (Wed, 02 Dec 2020 23:01:12 GMT): aakzubaidi (Wed, 02 Dec 2020 23:26:45 GMT): aakzubaidi (Wed, 02 Dec 2020 23:26:45 GMT): davidkel (Thu, 03 Dec 2020 07:03:48 GMT): davidkel (Thu, 03 Dec 2020 07:04:29 GMT): davidkel (Thu, 03 Dec 2020 07:06:14 GMT): horsefall (Thu, 03 Dec 2020 08:12:28 GMT): aakzubaidi (Thu, 03 Dec 2020 10:30:02 GMT): nkl199 (Fri, 04 Dec 2020 10:41:20 GMT): sroopsai (Fri, 04 Dec 2020 12:15:47 GMT): sroopsai (Fri, 04 Dec 2020 12:15:47 GMT): sroopsai (Fri, 04 Dec 2020 12:16:01 GMT): sroopsai (Fri, 04 Dec 2020 12:16:05 GMT): sroopsai (Fri, 04 Dec 2020 12:16:12 GMT): sroopsai (Fri, 04 Dec 2020 12:16:22 GMT): sroopsai (Fri, 04 Dec 2020 12:16:57 GMT): sroopsai (Fri, 04 Dec 2020 12:17:09 GMT): klenik (Fri, 04 Dec 2020 12:40:08 GMT): sroopsai (Fri, 04 Dec 2020 12:41:37 GMT): sroopsai (Fri, 04 Dec 2020 12:41:55 GMT): sroopsai (Fri, 04 Dec 2020 12:42:16 GMT): sroopsai (Fri, 04 Dec 2020 12:43:00 GMT): sroopsai (Fri, 04 Dec 2020 12:43:08 GMT): sroopsai (Fri, 04 Dec 2020 12:43:55 GMT): sroopsai (Fri, 04 Dec 2020 12:44:15 GMT): sroopsai (Fri, 04 Dec 2020 12:44:54 GMT): sroopsai (Fri, 04 Dec 2020 12:46:08 GMT): klenik (Fri, 04 Dec 2020 13:20:52 GMT): sroopsai (Fri, 04 Dec 2020 14:43:11 GMT): sroopsai (Fri, 04 Dec 2020 14:43:22 GMT): klenik (Fri, 04 Dec 2020 15:07:19 GMT): sroopsai (Fri, 04 Dec 2020 15:09:28 GMT): klenik (Fri, 04 Dec 2020 15:19:36 GMT): Sara.r (Fri, 04 Dec 2020 17:00:38 GMT): sroopsai (Fri, 04 Dec 2020 18:18:35 GMT): sroopsai (Fri, 04 Dec 2020 18:19:06 GMT): sroopsai (Fri, 04 Dec 2020 18:19:15 GMT): davidkel (Fri, 04 Dec 2020 18:44:27 GMT): sroopsai (Fri, 04 Dec 2020 19:06:16 GMT): sroopsai (Fri, 04 Dec 2020 19:06:34 GMT): davidkel (Fri, 04 Dec 2020 19:50:26 GMT): davidkel (Fri, 04 Dec 2020 19:50:26 GMT): sroopsai (Fri, 04 Dec 2020 23:13:40 GMT): sroopsai (Fri, 04 Dec 2020 23:13:57 GMT): sroopsai (Sat, 05 Dec 2020 12:16:30 GMT): sroopsai (Sat, 05 Dec 2020 12:17:21 GMT): sroopsai (Sat, 05 Dec 2020 12:17:56 GMT): sroopsai (Sat, 05 Dec 2020 12:18:11 GMT): sroopsai (Sat, 05 Dec 2020 12:18:44 GMT): sroopsai (Sat, 05 Dec 2020 12:20:29 GMT): sroopsai (Sat, 05 Dec 2020 12:20:55 GMT): sroopsai (Sat, 05 Dec 2020 12:28:14 GMT): sroopsai (Sat, 05 Dec 2020 12:28:40 GMT): sroopsai (Sat, 05 Dec 2020 12:28:58 GMT): MuhammadIslam (Sat, 05 Dec 2020 14:16:25 GMT): MuhammadIslam (Sat, 05 Dec 2020 14:16:25 GMT): davidkel (Sat, 05 Dec 2020 21:37:11 GMT): nkl199 (Sun, 06 Dec 2020 14:44:15 GMT): james-wallis (Mon, 07 Dec 2020 10:44:54 GMT): darksidergod (Wed, 09 Dec 2020 14:59:19 GMT): nkl199 (Fri, 11 Dec 2020 10:34:29 GMT): yongmu-lol (Wed, 16 Dec 2020 02:09:34 GMT): nkl199 (Wed, 16 Dec 2020 09:45:46 GMT): yongmu-lol (Wed, 16 Dec 2020 10:15:38 GMT): HelmiTrabelsi (Wed, 16 Dec 2020 10:20:20 GMT): nkl199 (Wed, 16 Dec 2020 11:26:30 GMT): nkl199 (Wed, 16 Dec 2020 11:27:25 GMT): nkl199 (Wed, 16 Dec 2020 11:29:50 GMT): HelmiTrabelsi (Thu, 17 Dec 2020 08:19:17 GMT): nkl199 (Thu, 17 Dec 2020 08:22:43 GMT): nkl199 (Thu, 17 Dec 2020 08:22:43 GMT): nkl199 (Thu, 17 Dec 2020 08:22:43 GMT): nkl199 (Thu, 17 Dec 2020 08:22:43 GMT): HelmiTrabelsi (Fri, 18 Dec 2020 13:36:39 GMT): yongmu-lol (Sat, 19 Dec 2020 13:14:21 GMT): yongmu-lol (Sat, 19 Dec 2020 13:17:46 GMT): yongmu-lol (Sat, 19 Dec 2020 13:19:17 GMT): yongmu-lol (Sat, 19 Dec 2020 13:22:47 GMT): nkl199 (Sat, 19 Dec 2020 17:28:14 GMT): nkl199 (Sat, 19 Dec 2020 17:29:02 GMT): nkl199 (Sat, 19 Dec 2020 17:29:02 GMT): Sara.r (Mon, 21 Dec 2020 17:43:36 GMT): Sara.r (Mon, 21 Dec 2020 17:43:36 GMT): Sara.r (Mon, 21 Dec 2020 17:43:36 GMT): HumeyraFaroug (Mon, 21 Dec 2020 23:23:43 GMT): yongmu-lol (Tue, 22 Dec 2020 01:53:31 GMT): yongmu-lol (Tue, 22 Dec 2020 01:53:51 GMT): MuhammadIslam (Tue, 22 Dec 2020 03:09:13 GMT): MuhammadIslam (Tue, 22 Dec 2020 03:09:18 GMT): MuhammadIslam (Tue, 22 Dec 2020 03:10:26 GMT): tanveerahmad5 (Tue, 22 Dec 2020 03:40:56 GMT): tanveerahmad5 (Tue, 22 Dec 2020 03:40:57 GMT): tanveerahmad5 (Tue, 22 Dec 2020 03:41:40 GMT): yongmu-lol (Tue, 22 Dec 2020 06:58:16 GMT): horsefall (Tue, 22 Dec 2020 09:06:07 GMT): horsefall (Tue, 22 Dec 2020 09:07:06 GMT): horsefall (Tue, 22 Dec 2020 09:07:16 GMT): horsefall (Tue, 22 Dec 2020 09:08:20 GMT): lcvalves (Tue, 22 Dec 2020 09:08:43 GMT): horsefall (Tue, 22 Dec 2020 09:09:07 GMT): horsefall (Tue, 22 Dec 2020 09:09:22 GMT): HumeyraFaroug (Tue, 22 Dec 2020 12:48:16 GMT): HumeyraFaroug (Tue, 22 Dec 2020 12:49:42 GMT): yongmu-lol (Tue, 22 Dec 2020 13:04:39 GMT): nkl199 (Tue, 22 Dec 2020 17:58:11 GMT): nkl199 (Tue, 22 Dec 2020 17:59:00 GMT): nkl199 (Tue, 22 Dec 2020 17:59:18 GMT): yongmu-lol (Wed, 23 Dec 2020 05:47:50 GMT): nkl199 (Wed, 23 Dec 2020 08:47:11 GMT): nkl199 (Wed, 23 Dec 2020 08:48:32 GMT): yongmu-lol (Wed, 23 Dec 2020 12:02:08 GMT): nkl199 (Wed, 23 Dec 2020 12:06:12 GMT): HumeyraFaroug (Wed, 23 Dec 2020 20:36:26 GMT): prakharsr (Sun, 03 Jan 2021 07:57:23 GMT): Vgkmanju (Mon, 04 Jan 2021 06:05:29 GMT): Vgkmanju (Mon, 04 Jan 2021 11:22:47 GMT): nkl199 (Mon, 04 Jan 2021 11:26:57 GMT): nkl199 (Mon, 04 Jan 2021 11:27:21 GMT): nkl199 (Mon, 04 Jan 2021 11:27:44 GMT): nkl199 (Mon, 04 Jan 2021 11:28:46 GMT): curiousdude (Mon, 04 Jan 2021 14:21:28 GMT): curiousdude (Mon, 04 Jan 2021 14:21:28 GMT): Vgkmanju (Mon, 04 Jan 2021 15:04:09 GMT): nkl199 (Mon, 04 Jan 2021 15:06:42 GMT): nkl199 (Mon, 04 Jan 2021 15:07:13 GMT): nkl199 (Mon, 04 Jan 2021 15:08:48 GMT): Vgkmanju (Mon, 04 Jan 2021 15:14:48 GMT): nkl199 (Mon, 04 Jan 2021 15:20:27 GMT): nkl199 (Mon, 04 Jan 2021 15:20:43 GMT): nkl199 (Mon, 04 Jan 2021 15:20:59 GMT): nkl199 (Mon, 04 Jan 2021 15:21:41 GMT): Vgkmanju (Mon, 04 Jan 2021 15:22:33 GMT): nkl199 (Mon, 04 Jan 2021 15:24:34 GMT): Vgkmanju (Mon, 04 Jan 2021 15:27:25 GMT): curiousdude (Wed, 06 Jan 2021 10:09:04 GMT): nkl199 (Wed, 06 Jan 2021 10:33:42 GMT): curiousdude (Wed, 06 Jan 2021 10:36:09 GMT): nkl199 (Wed, 06 Jan 2021 10:38:08 GMT): curiousdude (Wed, 06 Jan 2021 10:39:25 GMT): curiousdude (Wed, 06 Jan 2021 10:39:43 GMT): nkl199 (Wed, 06 Jan 2021 11:18:18 GMT): curiousdude (Wed, 06 Jan 2021 11:43:39 GMT): nkl199 (Wed, 06 Jan 2021 11:53:06 GMT): yongmu-lol (Wed, 06 Jan 2021 11:54:58 GMT): yongmu-lol (Wed, 06 Jan 2021 11:55:47 GMT): yongmu-lol (Wed, 06 Jan 2021 11:57:20 GMT): nkl199 (Wed, 06 Jan 2021 12:03:28 GMT): nkl199 (Wed, 06 Jan 2021 12:03:28 GMT): yongmu-lol (Wed, 06 Jan 2021 12:05:46 GMT): curiousdude (Wed, 06 Jan 2021 12:06:24 GMT): yongmu-lol (Wed, 06 Jan 2021 12:06:49 GMT): nkl199 (Wed, 06 Jan 2021 12:06:59 GMT): yongmu-lol (Wed, 06 Jan 2021 12:08:41 GMT): yongmu-lol (Wed, 06 Jan 2021 12:08:45 GMT): nkl199 (Wed, 06 Jan 2021 12:09:31 GMT): curiousdude (Wed, 06 Jan 2021 12:12:02 GMT): yongmu-lol (Wed, 06 Jan 2021 12:44:56 GMT): yongmu-lol (Wed, 06 Jan 2021 12:45:45 GMT): nkl199 (Wed, 06 Jan 2021 13:28:12 GMT): nkl199 (Wed, 06 Jan 2021 13:28:47 GMT): yongmu-lol (Wed, 06 Jan 2021 13:29:02 GMT): yongmu-lol (Wed, 06 Jan 2021 13:29:32 GMT): nkl199 (Wed, 06 Jan 2021 13:29:53 GMT): yongmu-lol (Wed, 06 Jan 2021 13:31:08 GMT): yongmu-lol (Wed, 06 Jan 2021 13:31:51 GMT): nkl199 (Wed, 06 Jan 2021 13:32:35 GMT): yongmu-lol (Wed, 06 Jan 2021 13:33:00 GMT): yongmu-lol (Wed, 06 Jan 2021 13:36:25 GMT): nkl199 (Wed, 06 Jan 2021 13:37:01 GMT): yongmu-lol (Wed, 06 Jan 2021 13:38:52 GMT): nkl199 (Wed, 06 Jan 2021 13:39:38 GMT): yongmu-lol (Wed, 06 Jan 2021 13:41:54 GMT): yongmu-lol (Thu, 07 Jan 2021 11:23:20 GMT): nkl199 (Thu, 07 Jan 2021 11:27:08 GMT): yongmu-lol (Thu, 07 Jan 2021 12:28:24 GMT): yongmu-lol (Thu, 07 Jan 2021 12:40:44 GMT): nkl199 (Thu, 07 Jan 2021 13:07:28 GMT): yongmu-lol (Thu, 07 Jan 2021 13:36:08 GMT): horsefall (Fri, 08 Jan 2021 03:11:14 GMT): nkl199 (Fri, 08 Jan 2021 12:30:17 GMT): awsl999 (Mon, 11 Jan 2021 02:38:35 GMT): nkl199 (Mon, 11 Jan 2021 10:43:32 GMT): awsl999 (Mon, 11 Jan 2021 11:27:38 GMT): awsl999 (Mon, 11 Jan 2021 11:27:39 GMT): nkl199 (Mon, 11 Jan 2021 11:30:26 GMT): awsl999 (Mon, 11 Jan 2021 11:51:34 GMT): awsl999 (Mon, 11 Jan 2021 12:13:15 GMT): nkl199 (Mon, 11 Jan 2021 13:05:52 GMT): nkl199 (Mon, 11 Jan 2021 13:06:38 GMT): rambott (Tue, 12 Jan 2021 05:38:01 GMT): rambott (Tue, 12 Jan 2021 05:38:01 GMT): davidkel (Tue, 12 Jan 2021 09:09:42 GMT): Kestutis_Gudynas (Tue, 12 Jan 2021 10:26:04 GMT): prakharsr (Fri, 15 Jan 2021 07:38:23 GMT): prakharsr (Fri, 15 Jan 2021 07:38:23 GMT): nkl199 (Fri, 15 Jan 2021 11:31:27 GMT): cmhacker (Tue, 19 Jan 2021 14:41:26 GMT): famar (Wed, 20 Jan 2021 09:34:43 GMT): famar (Wed, 20 Jan 2021 09:34:43 GMT): nkl199 (Wed, 20 Jan 2021 09:49:48 GMT): famar (Wed, 20 Jan 2021 10:03:25 GMT): famar (Wed, 20 Jan 2021 10:03:25 GMT): SonDo 2 (Wed, 20 Jan 2021 16:44:45 GMT): SonDo 2 (Wed, 20 Jan 2021 16:44:46 GMT): SonDo 2 (Wed, 20 Jan 2021 16:44:55 GMT): nkl199 (Thu, 21 Jan 2021 09:58:11 GMT): MrSE400 (Tue, 26 Jan 2021 19:55:48 GMT): MrSE400 (Tue, 26 Jan 2021 20:00:28 GMT): MrSE400 (Tue, 26 Jan 2021 20:00:28 GMT): MrSE400 (Tue, 26 Jan 2021 20:00:28 GMT): MrSE400 (Tue, 26 Jan 2021 20:00:28 GMT): akoita (Thu, 28 Jan 2021 07:59:23 GMT): nkl199 (Thu, 28 Jan 2021 09:06:59 GMT): nkl199 (Thu, 28 Jan 2021 09:11:03 GMT): akoita (Thu, 28 Jan 2021 09:36:42 GMT): nkl199 (Thu, 28 Jan 2021 14:46:15 GMT): akoita (Thu, 28 Jan 2021 14:58:11 GMT): nkl199 (Thu, 28 Jan 2021 16:16:37 GMT): akoita (Thu, 28 Jan 2021 16:18:00 GMT): nkl199 (Thu, 28 Jan 2021 16:41:57 GMT): akoita (Thu, 28 Jan 2021 17:21:23 GMT): lcvalves (Fri, 29 Jan 2021 02:11:40 GMT): nkl199 (Fri, 29 Jan 2021 10:33:04 GMT): lcvalves (Fri, 29 Jan 2021 14:50:46 GMT): nkl199 (Fri, 29 Jan 2021 15:33:36 GMT): Sara.r (Fri, 29 Jan 2021 23:30:02 GMT): foozhiqin (Sun, 31 Jan 2021 23:59:06 GMT): foozhiqin (Sun, 31 Jan 2021 23:59:06 GMT): MrSE400 (Mon, 01 Feb 2021 00:16:18 GMT): MrSE400 (Mon, 01 Feb 2021 00:16:18 GMT): MrSE400 (Mon, 01 Feb 2021 00:16:18 GMT): MrSE400 (Mon, 01 Feb 2021 00:16:18 GMT): MrSE400 (Mon, 01 Feb 2021 00:21:38 GMT): MrSE400 (Mon, 01 Feb 2021 00:21:38 GMT): MrSE400 (Mon, 01 Feb 2021 00:25:18 GMT): karthiksamaganam (Mon, 01 Feb 2021 14:45:42 GMT): nkl199 (Mon, 01 Feb 2021 15:34:43 GMT): nkl199 (Mon, 01 Feb 2021 15:36:05 GMT): MrSE400 (Tue, 02 Feb 2021 21:32:15 GMT): MrSE400 (Tue, 02 Feb 2021 21:32:20 GMT): MrSE400 (Tue, 02 Feb 2021 21:32:22 GMT): MrSE400 (Tue, 02 Feb 2021 21:32:22 GMT): MrSE400 (Tue, 02 Feb 2021 21:38:29 GMT): MrSE400 (Tue, 02 Feb 2021 21:38:29 GMT): MrSE400 (Tue, 02 Feb 2021 23:21:40 GMT): nkl199 (Wed, 03 Feb 2021 10:05:23 GMT): MrSE400 (Wed, 03 Feb 2021 10:29:37 GMT): PauliusLT (Wed, 03 Feb 2021 12:49:53 GMT): PauliusLT (Wed, 03 Feb 2021 12:49:54 GMT): PauliusLT (Wed, 03 Feb 2021 12:51:27 GMT): PauliusLT (Wed, 03 Feb 2021 12:52:12 GMT): davidkel (Wed, 03 Feb 2021 15:02:35 GMT): nkl199 (Wed, 03 Feb 2021 15:42:35 GMT): PauliusLT (Wed, 03 Feb 2021 17:23:48 GMT): PauliusLT (Wed, 03 Feb 2021 17:25:58 GMT): PauliusLT (Wed, 03 Feb 2021 17:32:42 GMT): PauliusLT (Wed, 03 Feb 2021 17:32:42 GMT): PauliusLT (Wed, 03 Feb 2021 17:34:44 GMT): PauliusLT (Wed, 03 Feb 2021 17:34:52 GMT): PauliusLT (Wed, 03 Feb 2021 17:36:24 GMT): davidkel (Wed, 03 Feb 2021 18:43:55 GMT): davidkel (Wed, 03 Feb 2021 18:43:55 GMT): davidkel (Wed, 03 Feb 2021 18:43:55 GMT): PauliusLT (Wed, 03 Feb 2021 20:39:00 GMT): davidkel (Wed, 03 Feb 2021 21:57:57 GMT): davidkel (Wed, 03 Feb 2021 21:57:57 GMT): swatim (Thu, 04 Feb 2021 08:56:29 GMT): swatim (Thu, 04 Feb 2021 09:01:07 GMT): MrSE400 (Sat, 06 Feb 2021 10:39:31 GMT): Vgkmanju (Mon, 08 Feb 2021 05:06:27 GMT): davidkel (Mon, 08 Feb 2021 08:30:08 GMT): Vgkmanju (Mon, 08 Feb 2021 08:32:30 GMT): FilipeSilva (Mon, 08 Feb 2021 09:01:32 GMT): FilipeSilva (Mon, 08 Feb 2021 09:01:50 GMT): FilipeSilva (Mon, 08 Feb 2021 09:02:27 GMT): FilipeSilva (Mon, 08 Feb 2021 09:02:27 GMT): davidkel (Mon, 08 Feb 2021 09:23:12 GMT): Vgkmanju (Mon, 08 Feb 2021 09:24:57 GMT): Vgkmanju (Mon, 08 Feb 2021 09:24:57 GMT): Vgkmanju (Mon, 08 Feb 2021 09:25:55 GMT): davidkel (Mon, 08 Feb 2021 09:28:41 GMT): davidkel (Mon, 08 Feb 2021 09:28:41 GMT): Vgkmanju (Mon, 08 Feb 2021 09:28:41 GMT): nkl199 (Mon, 08 Feb 2021 11:10:23 GMT): nkl199 (Mon, 08 Feb 2021 11:14:55 GMT): FilipeSilva (Mon, 08 Feb 2021 11:20:09 GMT): FilipeSilva (Mon, 08 Feb 2021 11:20:23 GMT): nkl199 (Mon, 08 Feb 2021 11:30:04 GMT): FilipeSilva (Mon, 08 Feb 2021 11:47:51 GMT): FilipeSilva (Mon, 08 Feb 2021 11:48:31 GMT): FilipeSilva (Mon, 08 Feb 2021 11:48:46 GMT): nkl199 (Mon, 08 Feb 2021 12:29:08 GMT): FilipeSilva (Mon, 08 Feb 2021 12:29:50 GMT): FilipeSilva (Mon, 08 Feb 2021 12:29:57 GMT): nkl199 (Mon, 08 Feb 2021 12:30:03 GMT): FilipeSilva (Mon, 08 Feb 2021 12:30:29 GMT): FilipeSilva (Mon, 08 Feb 2021 12:30:50 GMT): nkl199 (Mon, 08 Feb 2021 12:36:29 GMT): FilipeSilva (Mon, 08 Feb 2021 12:36:55 GMT): FilipeSilva (Mon, 08 Feb 2021 12:37:08 GMT): nkl199 (Mon, 08 Feb 2021 12:37:16 GMT): FilipeSilva (Mon, 08 Feb 2021 12:37:30 GMT): nkl199 (Mon, 08 Feb 2021 12:38:21 GMT): FilipeSilva (Mon, 08 Feb 2021 12:38:28 GMT): FilipeSilva (Mon, 08 Feb 2021 13:00:15 GMT): FilipeSilva (Mon, 08 Feb 2021 13:00:45 GMT): nkl199 (Mon, 08 Feb 2021 14:00:57 GMT): nkl199 (Mon, 08 Feb 2021 14:01:14 GMT): nkl199 (Mon, 08 Feb 2021 14:01:14 GMT): FilipeSilva (Mon, 08 Feb 2021 14:24:17 GMT): FilipeSilva (Mon, 08 Feb 2021 14:24:22 GMT): nkl199 (Mon, 08 Feb 2021 14:24:36 GMT): FilipeSilva (Mon, 08 Feb 2021 14:24:38 GMT): nkl199 (Mon, 08 Feb 2021 14:24:43 GMT): FilipeSilva (Mon, 08 Feb 2021 16:56:36 GMT): nkl199 (Mon, 08 Feb 2021 17:14:10 GMT): nkl199 (Mon, 08 Feb 2021 17:14:10 GMT): FilipeSilva (Mon, 08 Feb 2021 17:16:27 GMT): FilipeSilva (Mon, 08 Feb 2021 17:16:48 GMT): FilipeSilva (Mon, 08 Feb 2021 17:17:52 GMT): nkl199 (Mon, 08 Feb 2021 17:18:20 GMT): nkl199 (Mon, 08 Feb 2021 17:18:39 GMT): FilipeSilva (Mon, 08 Feb 2021 17:19:13 GMT): nkl199 (Mon, 08 Feb 2021 17:19:45 GMT): nkl199 (Mon, 08 Feb 2021 17:19:45 GMT): FilipeSilva (Mon, 08 Feb 2021 17:20:40 GMT): FilipeSilva (Mon, 08 Feb 2021 17:21:10 GMT): nkl199 (Mon, 08 Feb 2021 17:21:58 GMT): FilipeSilva (Mon, 08 Feb 2021 17:29:58 GMT): FilipeSilva (Mon, 08 Feb 2021 17:30:36 GMT): nkl199 (Mon, 08 Feb 2021 17:32:32 GMT): nkl199 (Mon, 08 Feb 2021 17:33:28 GMT): FilipeSilva (Mon, 08 Feb 2021 17:34:42 GMT): nkl199 (Mon, 08 Feb 2021 17:35:20 GMT): nkl199 (Mon, 08 Feb 2021 17:36:11 GMT): FilipeSilva (Mon, 08 Feb 2021 17:36:33 GMT): FilipeSilva (Mon, 08 Feb 2021 17:36:47 GMT): FilipeSilva (Mon, 08 Feb 2021 17:37:07 GMT): nkl199 (Mon, 08 Feb 2021 17:37:51 GMT): nkl199 (Mon, 08 Feb 2021 17:38:29 GMT): FilipeSilva (Mon, 08 Feb 2021 17:44:57 GMT): nkl199 (Mon, 08 Feb 2021 17:46:05 GMT): nkl199 (Mon, 08 Feb 2021 17:46:18 GMT): FilipeSilva (Mon, 08 Feb 2021 17:47:48 GMT): nkl199 (Mon, 08 Feb 2021 17:50:10 GMT): FilipeSilva (Mon, 08 Feb 2021 17:55:26 GMT): nkl199 (Mon, 08 Feb 2021 17:59:43 GMT): FilipeSilva (Mon, 08 Feb 2021 18:02:50 GMT): nkl199 (Mon, 08 Feb 2021 18:03:45 GMT): FilipeSilva (Mon, 08 Feb 2021 18:20:37 GMT): FilipeSilva (Mon, 08 Feb 2021 18:20:37 GMT): nkl199 (Mon, 08 Feb 2021 18:21:08 GMT): nkl199 (Mon, 08 Feb 2021 18:21:22 GMT): FilipeSilva (Mon, 08 Feb 2021 18:22:22 GMT): nkl199 (Mon, 08 Feb 2021 18:24:29 GMT): nkl199 (Mon, 08 Feb 2021 18:24:55 GMT): FilipeSilva (Mon, 08 Feb 2021 18:36:04 GMT): FilipeSilva (Mon, 08 Feb 2021 18:38:13 GMT): FilipeSilva (Mon, 08 Feb 2021 18:38:22 GMT): nkl199 (Mon, 08 Feb 2021 18:47:51 GMT): nkl199 (Mon, 08 Feb 2021 18:48:05 GMT): FilipeSilva (Mon, 08 Feb 2021 18:50:20 GMT): nkl199 (Mon, 08 Feb 2021 19:16:33 GMT): FilipeSilva (Mon, 08 Feb 2021 19:21:31 GMT): FilipeSilva (Mon, 08 Feb 2021 19:28:13 GMT): FilipeSilva (Mon, 08 Feb 2021 19:29:10 GMT): FilipeSilva (Mon, 08 Feb 2021 19:29:10 GMT): FilipeSilva (Mon, 08 Feb 2021 19:30:00 GMT): FilipeSilva (Tue, 09 Feb 2021 10:16:34 GMT): FilipeSilva (Tue, 09 Feb 2021 10:16:34 GMT): nkl199 (Tue, 09 Feb 2021 10:50:34 GMT): FilipeSilva (Tue, 09 Feb 2021 10:52:03 GMT): FilipeSilva (Tue, 09 Feb 2021 10:52:22 GMT): FilipeSilva (Tue, 09 Feb 2021 10:52:59 GMT): nkl199 (Tue, 09 Feb 2021 10:53:21 GMT): nkl199 (Tue, 09 Feb 2021 10:53:32 GMT): nkl199 (Tue, 09 Feb 2021 10:53:45 GMT): FilipeSilva (Tue, 09 Feb 2021 10:58:19 GMT): FilipeSilva (Tue, 09 Feb 2021 11:00:48 GMT): nkl199 (Tue, 09 Feb 2021 11:01:17 GMT): nkl199 (Tue, 09 Feb 2021 11:01:33 GMT): nkl199 (Tue, 09 Feb 2021 11:02:09 GMT): nkl199 (Tue, 09 Feb 2021 11:02:28 GMT): FilipeSilva (Tue, 09 Feb 2021 11:05:47 GMT): nkl199 (Tue, 09 Feb 2021 11:05:55 GMT): FilipeSilva (Tue, 09 Feb 2021 11:06:48 GMT): nkl199 (Tue, 09 Feb 2021 11:07:24 GMT): FilipeSilva (Tue, 09 Feb 2021 11:09:39 GMT): FilipeSilva (Tue, 09 Feb 2021 11:09:39 GMT): nkl199 (Tue, 09 Feb 2021 11:09:48 GMT): nkl199 (Tue, 09 Feb 2021 11:10:10 GMT): nkl199 (Tue, 09 Feb 2021 11:11:45 GMT): FilipeSilva (Tue, 09 Feb 2021 11:14:53 GMT): nkl199 (Tue, 09 Feb 2021 11:17:08 GMT): FilipeSilva (Tue, 09 Feb 2021 11:18:05 GMT): nkl199 (Tue, 09 Feb 2021 11:18:10 GMT): nkl199 (Tue, 09 Feb 2021 11:18:43 GMT): FilipeSilva (Tue, 09 Feb 2021 11:18:45 GMT): nkl199 (Tue, 09 Feb 2021 11:19:20 GMT): FilipeSilva (Tue, 09 Feb 2021 11:20:37 GMT): FilipeSilva (Tue, 09 Feb 2021 11:20:37 GMT): FilipeSilva (Tue, 09 Feb 2021 11:20:45 GMT): nkl199 (Tue, 09 Feb 2021 11:21:46 GMT): FilipeSilva (Tue, 09 Feb 2021 11:22:59 GMT): FilipeSilva (Tue, 09 Feb 2021 11:23:30 GMT): FilipeSilva (Tue, 09 Feb 2021 11:23:30 GMT): nkl199 (Tue, 09 Feb 2021 11:23:57 GMT): FilipeSilva (Tue, 09 Feb 2021 11:24:03 GMT): nkl199 (Tue, 09 Feb 2021 11:24:27 GMT): nkl199 (Tue, 09 Feb 2021 11:24:32 GMT): FilipeSilva (Tue, 09 Feb 2021 11:24:38 GMT): nkl199 (Tue, 09 Feb 2021 11:24:47 GMT): FilipeSilva (Tue, 09 Feb 2021 11:25:20 GMT): FilipeSilva (Tue, 09 Feb 2021 11:26:22 GMT): FilipeSilva (Tue, 09 Feb 2021 11:27:18 GMT): nkl199 (Tue, 09 Feb 2021 11:27:59 GMT): FilipeSilva (Tue, 09 Feb 2021 11:28:01 GMT): nkl199 (Tue, 09 Feb 2021 11:28:41 GMT): FilipeSilva (Tue, 09 Feb 2021 11:33:42 GMT): nkl199 (Tue, 09 Feb 2021 11:37:04 GMT): FilipeSilva (Tue, 09 Feb 2021 11:47:35 GMT): nkl199 (Tue, 09 Feb 2021 11:48:00 GMT): FilipeSilva (Tue, 09 Feb 2021 11:48:52 GMT): nkl199 (Tue, 09 Feb 2021 11:49:51 GMT): nkl199 (Tue, 09 Feb 2021 11:50:19 GMT): FilipeSilva (Tue, 09 Feb 2021 11:55:24 GMT): FilipeSilva (Tue, 09 Feb 2021 11:56:13 GMT): FilipeSilva (Tue, 09 Feb 2021 11:59:30 GMT): nkl199 (Tue, 09 Feb 2021 13:27:02 GMT): nkl199 (Tue, 09 Feb 2021 13:27:02 GMT): FilipeSilva (Tue, 09 Feb 2021 13:49:15 GMT): FilipeSilva (Tue, 09 Feb 2021 13:52:36 GMT): nkl199 (Tue, 09 Feb 2021 14:05:36 GMT): nivak (Tue, 09 Feb 2021 14:56:33 GMT): nivak (Tue, 09 Feb 2021 14:56:33 GMT): nivak (Tue, 09 Feb 2021 14:56:33 GMT): nivak (Tue, 09 Feb 2021 14:58:12 GMT): nivak (Tue, 09 Feb 2021 15:07:01 GMT): nivak (Tue, 09 Feb 2021 15:08:00 GMT): nivak (Tue, 09 Feb 2021 15:08:00 GMT): nkl199 (Tue, 09 Feb 2021 15:41:53 GMT): nivak (Tue, 09 Feb 2021 15:46:29 GMT): nivak (Tue, 09 Feb 2021 15:46:29 GMT): nkl199 (Tue, 09 Feb 2021 15:47:08 GMT): tharindupr (Tue, 09 Feb 2021 16:55:07 GMT): nkl199 (Tue, 09 Feb 2021 17:31:25 GMT): tharindupr (Tue, 09 Feb 2021 17:37:40 GMT): tharindupr (Tue, 09 Feb 2021 17:37:41 GMT): tharindupr (Tue, 09 Feb 2021 17:37:44 GMT): nkl199 (Tue, 09 Feb 2021 17:39:49 GMT): nkl199 (Tue, 09 Feb 2021 17:39:49 GMT): nkl199 (Tue, 09 Feb 2021 17:40:34 GMT): tharindupr (Tue, 09 Feb 2021 17:40:51 GMT): nkl199 (Tue, 09 Feb 2021 17:41:24 GMT): tharindupr (Tue, 09 Feb 2021 17:41:39 GMT): nkl199 (Tue, 09 Feb 2021 17:46:21 GMT): tharindupr (Tue, 09 Feb 2021 17:47:26 GMT): nkl199 (Tue, 09 Feb 2021 17:49:46 GMT): nkl199 (Tue, 09 Feb 2021 17:49:46 GMT): nkl199 (Tue, 09 Feb 2021 17:51:39 GMT): tharindupr (Tue, 09 Feb 2021 17:55:18 GMT): nkl199 (Tue, 09 Feb 2021 17:55:56 GMT): nkl199 (Tue, 09 Feb 2021 17:56:12 GMT): FilipeSilva (Tue, 09 Feb 2021 17:56:17 GMT): FilipeSilva (Tue, 09 Feb 2021 17:56:17 GMT): tharindupr (Tue, 09 Feb 2021 17:56:49 GMT): FilipeSilva (Tue, 09 Feb 2021 17:57:00 GMT): nkl199 (Tue, 09 Feb 2021 18:00:20 GMT): nkl199 (Tue, 09 Feb 2021 18:00:33 GMT): nkl199 (Tue, 09 Feb 2021 18:00:51 GMT): FilipeSilva (Tue, 09 Feb 2021 18:05:09 GMT): FilipeSilva (Tue, 09 Feb 2021 18:05:09 GMT): nivak (Tue, 09 Feb 2021 21:57:21 GMT): nkl199 (Wed, 10 Feb 2021 09:16:17 GMT): FilipeSilva (Wed, 10 Feb 2021 11:55:06 GMT): FilipeSilva (Wed, 10 Feb 2021 11:55:55 GMT): FilipeSilva (Wed, 10 Feb 2021 11:55:55 GMT): FilipeSilva (Wed, 10 Feb 2021 11:56:46 GMT): FilipeSilva (Wed, 10 Feb 2021 11:56:46 GMT): FilipeSilva (Wed, 10 Feb 2021 11:56:51 GMT): nkl199 (Wed, 10 Feb 2021 13:36:03 GMT): FilipeSilva (Wed, 10 Feb 2021 14:08:36 GMT): tharindupr (Wed, 10 Feb 2021 16:42:48 GMT): nkl199 (Wed, 10 Feb 2021 16:44:08 GMT): tharindupr (Wed, 10 Feb 2021 16:46:07 GMT): nkl199 (Wed, 10 Feb 2021 16:47:15 GMT): nkl199 (Wed, 10 Feb 2021 16:47:45 GMT): tharindupr (Wed, 10 Feb 2021 16:53:33 GMT): nkl199 (Wed, 10 Feb 2021 16:55:09 GMT): nkl199 (Wed, 10 Feb 2021 16:55:10 GMT): tharindupr (Wed, 10 Feb 2021 16:57:58 GMT): tharindupr (Wed, 10 Feb 2021 21:14:10 GMT): tharindupr (Wed, 10 Feb 2021 21:14:46 GMT): tharindupr (Wed, 10 Feb 2021 21:48:43 GMT): MrSE400 (Mon, 15 Feb 2021 17:09:27 GMT): MrSE400 (Mon, 15 Feb 2021 17:09:27 GMT): MrSE400 (Mon, 15 Feb 2021 17:09:27 GMT): MrSE400 (Mon, 15 Feb 2021 17:09:27 GMT): MrSE400 (Mon, 15 Feb 2021 17:20:22 GMT): MrSE400 (Mon, 15 Feb 2021 17:20:22 GMT): MrSE400 (Mon, 15 Feb 2021 17:20:22 GMT): MrSE400 (Mon, 15 Feb 2021 17:28:10 GMT): PauliusLT (Tue, 16 Feb 2021 09:37:31 GMT): nkl199 (Wed, 17 Feb 2021 10:12:34 GMT): nkl199 (Wed, 17 Feb 2021 11:34:01 GMT): nkl199 (Wed, 17 Feb 2021 12:24:40 GMT): nkl199 (Wed, 17 Feb 2021 12:27:53 GMT): MrSE400 (Wed, 17 Feb 2021 13:19:59 GMT): MrSE400 (Wed, 17 Feb 2021 13:20:49 GMT): MrSE400 (Wed, 17 Feb 2021 13:23:09 GMT): nkl199 (Wed, 17 Feb 2021 13:24:01 GMT): MrSE400 (Wed, 17 Feb 2021 13:26:20 GMT): nkl199 (Wed, 17 Feb 2021 13:27:12 GMT): nkl199 (Wed, 17 Feb 2021 13:27:33 GMT): MrSE400 (Wed, 17 Feb 2021 13:31:41 GMT): A1kartikey (Thu, 18 Feb 2021 10:32:14 GMT): A1kartikey (Thu, 18 Feb 2021 10:32:58 GMT): A1kartikey (Thu, 18 Feb 2021 10:33:47 GMT): nkl199 (Fri, 19 Feb 2021 09:57:29 GMT): Tanveer5 (Sun, 21 Feb 2021 12:58:59 GMT): Tanveer5 (Sun, 21 Feb 2021 12:59:01 GMT): cmhacker (Sun, 21 Feb 2021 17:15:01 GMT): Tanveer5 (Mon, 22 Feb 2021 05:53:48 GMT): Tanveer5 (Mon, 22 Feb 2021 05:54:09 GMT): Tanveer5 (Mon, 22 Feb 2021 05:57:13 GMT): nkl199 (Mon, 22 Feb 2021 10:03:18 GMT): Tanveer5 (Mon, 22 Feb 2021 10:14:29 GMT): foozhiqin (Mon, 22 Feb 2021 10:15:21 GMT): nkl199 (Mon, 22 Feb 2021 10:26:01 GMT): Tanveer5 (Mon, 22 Feb 2021 10:38:14 GMT): Tanveer5 (Mon, 22 Feb 2021 10:38:35 GMT): nkl199 (Mon, 22 Feb 2021 11:28:15 GMT): MrSE400 (Mon, 22 Feb 2021 20:17:52 GMT): MrSE400 (Mon, 22 Feb 2021 20:35:16 GMT): Rabeb7 (Mon, 22 Feb 2021 21:58:37 GMT): Rabeb7 (Mon, 22 Feb 2021 21:58:38 GMT): Rabeb7 (Mon, 22 Feb 2021 22:03:01 GMT): Koushik (Tue, 23 Feb 2021 00:44:40 GMT): Koushik (Tue, 23 Feb 2021 00:45:39 GMT): foozhiqin (Tue, 23 Feb 2021 01:15:41 GMT): MrSE400 (Tue, 23 Feb 2021 07:15:04 GMT): nkl199 (Tue, 23 Feb 2021 09:43:31 GMT): nkl199 (Tue, 23 Feb 2021 09:43:52 GMT): Rabeb7 (Tue, 23 Feb 2021 22:01:45 GMT): nkl199 (Wed, 24 Feb 2021 08:28:35 GMT): Rabeb7 (Thu, 25 Feb 2021 00:00:18 GMT): Rabeb7 (Thu, 25 Feb 2021 00:01:36 GMT): Tanveer5 (Thu, 25 Feb 2021 09:31:46 GMT): Tanveer5 (Thu, 25 Feb 2021 09:33:00 GMT): MrSE400 (Thu, 25 Feb 2021 11:57:03 GMT): MrSE400 (Thu, 25 Feb 2021 11:57:33 GMT): MrSE400 (Thu, 25 Feb 2021 11:57:45 GMT): MrSE400 (Thu, 25 Feb 2021 11:57:58 GMT): MrSE400 (Thu, 25 Feb 2021 11:58:10 GMT): MrSE400 (Thu, 25 Feb 2021 11:58:20 GMT): MrSE400 (Thu, 25 Feb 2021 11:58:30 GMT): nkl199 (Thu, 25 Feb 2021 14:59:27 GMT): nkl199 (Thu, 25 Feb 2021 15:02:46 GMT): nkl199 (Thu, 25 Feb 2021 15:07:19 GMT): nkl199 (Thu, 25 Feb 2021 15:07:19 GMT): Rabeb7 (Thu, 25 Feb 2021 22:30:03 GMT): Rabeb7 (Thu, 25 Feb 2021 22:30:39 GMT): foozhiqin (Fri, 26 Feb 2021 01:48:11 GMT): foozhiqin (Fri, 26 Feb 2021 01:48:11 GMT): MrSE400 (Fri, 26 Feb 2021 13:54:06 GMT): prakharsr (Sun, 28 Feb 2021 03:59:21 GMT): foozhiqin (Mon, 01 Mar 2021 10:11:04 GMT): foozhiqin (Mon, 01 Mar 2021 10:11:04 GMT): foozhiqin (Mon, 01 Mar 2021 10:11:59 GMT): foozhiqin (Mon, 01 Mar 2021 10:12:25 GMT): klenik (Tue, 02 Mar 2021 15:55:43 GMT): klenik (Tue, 02 Mar 2021 15:57:36 GMT): klenik (Tue, 02 Mar 2021 15:58:23 GMT): mkbadigineni (Wed, 03 Mar 2021 11:32:36 GMT): mkbadigineni (Wed, 03 Mar 2021 11:39:26 GMT): S.pradeepkumar (Fri, 05 Mar 2021 05:14:22 GMT): S.pradeepkumar (Fri, 05 Mar 2021 05:14:23 GMT): S.pradeepkumar (Fri, 05 Mar 2021 05:14:50 GMT): nkl199 (Fri, 05 Mar 2021 09:25:27 GMT): wabiyow95 (Sun, 07 Mar 2021 14:35:01 GMT): wabiyow95 (Sun, 07 Mar 2021 14:35:02 GMT): klenik (Sun, 07 Mar 2021 18:42:01 GMT): wabiyow95 (Sun, 07 Mar 2021 18:47:25 GMT): nkl199 (Sun, 07 Mar 2021 18:57:19 GMT): nkl199 (Sun, 07 Mar 2021 18:57:19 GMT): MrSE400 (Mon, 08 Mar 2021 20:50:46 GMT): MrSE400 (Mon, 08 Mar 2021 20:54:16 GMT): wabiyow95 (Tue, 09 Mar 2021 14:06:44 GMT): wabiyow95 (Tue, 09 Mar 2021 14:07:59 GMT): wabiyow95 (Tue, 09 Mar 2021 20:00:19 GMT): wabiyow95 (Tue, 09 Mar 2021 20:03:01 GMT): MrSE400 (Tue, 09 Mar 2021 20:11:10 GMT): wabiyow95 (Tue, 09 Mar 2021 20:14:41 GMT): wabiyow95 (Tue, 09 Mar 2021 21:03:56 GMT): wabiyow95 (Tue, 09 Mar 2021 21:05:14 GMT): wabiyow95 (Tue, 09 Mar 2021 21:18:56 GMT): klenik (Wed, 10 Mar 2021 09:23:42 GMT): wabiyow95 (Wed, 10 Mar 2021 09:27:06 GMT): wabiyow95 (Wed, 10 Mar 2021 20:05:34 GMT): wabiyow95 (Wed, 10 Mar 2021 20:07:01 GMT): wabiyow95 (Wed, 10 Mar 2021 20:08:04 GMT): klenik (Wed, 10 Mar 2021 22:37:01 GMT): wabiyow95 (Thu, 11 Mar 2021 11:09:04 GMT): wabiyow95 (Thu, 11 Mar 2021 11:09:36 GMT): klenik (Thu, 11 Mar 2021 15:12:06 GMT): wabiyow95 (Thu, 11 Mar 2021 19:44:28 GMT): wabiyow95 (Thu, 11 Mar 2021 19:45:58 GMT): wabiyow95 (Thu, 11 Mar 2021 19:46:37 GMT): klenik (Thu, 11 Mar 2021 23:02:56 GMT): HelmiTrabelsi (Fri, 12 Mar 2021 17:30:53 GMT): nkl199 (Fri, 12 Mar 2021 17:42:08 GMT): wabiyow95 (Sun, 14 Mar 2021 20:21:43 GMT): zhuch (Tue, 16 Mar 2021 08:18:09 GMT): zhuch (Tue, 16 Mar 2021 08:18:10 GMT): klenik (Tue, 16 Mar 2021 13:37:43 GMT): klenik (Tue, 16 Mar 2021 13:38:12 GMT): klenik (Tue, 16 Mar 2021 13:39:27 GMT): swatim (Tue, 16 Mar 2021 14:14:42 GMT): klenik (Tue, 16 Mar 2021 21:01:25 GMT): zhuch (Wed, 17 Mar 2021 00:19:34 GMT): zhuch (Wed, 17 Mar 2021 00:19:49 GMT): zhuch (Wed, 17 Mar 2021 00:21:38 GMT): zhuch (Wed, 17 Mar 2021 00:40:02 GMT): klenik (Wed, 17 Mar 2021 07:19:03 GMT): zhuch (Wed, 17 Mar 2021 07:29:52 GMT): zhuch (Wed, 17 Mar 2021 07:30:19 GMT): zhuch (Wed, 17 Mar 2021 07:30:42 GMT): zhuch (Wed, 17 Mar 2021 07:32:03 GMT): klenik (Wed, 17 Mar 2021 09:56:24 GMT): klenik (Wed, 17 Mar 2021 09:57:10 GMT): zhuch (Wed, 17 Mar 2021 10:44:36 GMT): zhuch (Wed, 17 Mar 2021 10:46:44 GMT): zhuch (Wed, 17 Mar 2021 10:47:20 GMT): hoang-tranviet (Wed, 17 Mar 2021 13:50:41 GMT): hoang-tranviet (Wed, 17 Mar 2021 14:02:57 GMT): hoang-tranviet (Wed, 17 Mar 2021 14:02:57 GMT): hoang-tranviet (Wed, 17 Mar 2021 14:02:57 GMT): hoang-tranviet (Wed, 17 Mar 2021 14:02:57 GMT): davidkel (Wed, 17 Mar 2021 15:04:42 GMT): hoang-tranviet (Wed, 17 Mar 2021 17:43:33 GMT): MrSE400 (Sat, 20 Mar 2021 12:44:14 GMT): MrSE400 (Sat, 20 Mar 2021 12:49:18 GMT): MrSE400 (Sat, 20 Mar 2021 12:49:18 GMT): wabiyow95 (Mon, 22 Mar 2021 22:27:20 GMT): wabiyow95 (Mon, 22 Mar 2021 22:28:26 GMT): HelmiTrabelsi (Wed, 24 Mar 2021 13:08:14 GMT): nao (Fri, 26 Mar 2021 05:33:51 GMT): chasecheese (Mon, 29 Mar 2021 15:58:34 GMT): chasecheese (Mon, 29 Mar 2021 15:58:35 GMT): chasecheese (Mon, 29 Mar 2021 16:00:56 GMT): chasecheese (Mon, 29 Mar 2021 16:01:05 GMT): chasecheese (Mon, 29 Mar 2021 16:01:15 GMT): chasecheese (Mon, 29 Mar 2021 16:03:07 GMT): sroopsai (Mon, 29 Mar 2021 20:07:23 GMT): sroopsai (Mon, 29 Mar 2021 20:07:29 GMT): HelmiTrabelsi (Wed, 31 Mar 2021 07:38:47 GMT): nkl199 (Fri, 02 Apr 2021 18:23:09 GMT): roxhens (Fri, 02 Apr 2021 18:23:09 GMT): roxhens (Fri, 02 Apr 2021 18:41:29 GMT): davidkel (Fri, 02 Apr 2021 18:48:10 GMT): davidkel (Fri, 02 Apr 2021 18:48:10 GMT): roxhens (Fri, 02 Apr 2021 19:41:41 GMT): wabiyow95 (Sun, 04 Apr 2021 21:28:04 GMT): wabiyow95 (Mon, 05 Apr 2021 23:28:15 GMT): bistaastha (Tue, 06 Apr 2021 05:40:14 GMT): aminabrahem (Tue, 06 Apr 2021 13:24:00 GMT): aminabrahem (Tue, 06 Apr 2021 13:33:23 GMT): aminabrahem (Tue, 06 Apr 2021 14:01:15 GMT): aminabrahem (Tue, 06 Apr 2021 14:01:15 GMT): aminabrahem (Tue, 06 Apr 2021 14:01:15 GMT): aminabrahem (Tue, 06 Apr 2021 14:02:51 GMT): aminabrahem (Tue, 06 Apr 2021 14:03:07 GMT): aminabrahem (Tue, 06 Apr 2021 14:03:22 GMT): aminabrahem (Tue, 06 Apr 2021 14:03:33 GMT): aminabrahem (Tue, 06 Apr 2021 14:03:33 GMT): pianyu_shiguang (Wed, 07 Apr 2021 15:30:20 GMT): pianyu_shiguang (Wed, 07 Apr 2021 15:30:21 GMT): pianyu_shiguang (Wed, 07 Apr 2021 15:31:38 GMT): nkl199 (Thu, 08 Apr 2021 11:24:06 GMT): pianyu_shiguang (Thu, 08 Apr 2021 15:07:03 GMT): hoang-tranviet (Fri, 09 Apr 2021 09:20:42 GMT): DoHaiSon (Tue, 13 Apr 2021 04:41:10 GMT): DoHaiSon (Tue, 13 Apr 2021 04:41:11 GMT): DoHaiSon (Tue, 13 Apr 2021 04:41:21 GMT): tharindupr (Tue, 13 Apr 2021 14:04:29 GMT): tharindupr (Tue, 13 Apr 2021 14:04:47 GMT): tharindupr (Tue, 13 Apr 2021 14:06:18 GMT): mas41889732 (Wed, 14 Apr 2021 11:02:25 GMT): mas41889732 (Wed, 14 Apr 2021 13:13:35 GMT): mas41889732 (Wed, 14 Apr 2021 13:13:35 GMT): mas41889732 (Wed, 14 Apr 2021 13:13:35 GMT): mas41889732 (Wed, 14 Apr 2021 13:13:35 GMT): KozakJ (Wed, 14 Apr 2021 13:31:21 GMT): mas41889732 (Wed, 14 Apr 2021 14:34:04 GMT): mas41889732 (Wed, 14 Apr 2021 14:34:04 GMT): mas41889732 (Wed, 14 Apr 2021 14:34:04 GMT): alfaisal7421 (Wed, 14 Apr 2021 14:35:51 GMT): alfaisal7421 (Wed, 14 Apr 2021 14:35:51 GMT): mas41889732 (Wed, 14 Apr 2021 15:33:42 GMT): mas41889732 (Wed, 14 Apr 2021 15:33:42 GMT): mkbadigineni (Thu, 15 Apr 2021 04:31:43 GMT): DoHaiSon (Thu, 15 Apr 2021 06:52:41 GMT): KozakJ (Thu, 15 Apr 2021 14:39:11 GMT): KozakJ (Thu, 15 Apr 2021 14:39:11 GMT): davidkel (Thu, 15 Apr 2021 14:42:51 GMT): tharindupr (Thu, 15 Apr 2021 15:31:12 GMT): tharindupr (Fri, 16 Apr 2021 20:55:15 GMT): tharindupr (Fri, 16 Apr 2021 20:55:15 GMT): tharindupr (Fri, 16 Apr 2021 20:55:15 GMT): tharindupr (Fri, 16 Apr 2021 20:55:15 GMT): tharindupr (Fri, 16 Apr 2021 20:58:47 GMT): tharindupr (Fri, 16 Apr 2021 20:59:36 GMT): tharindupr (Fri, 16 Apr 2021 21:02:20 GMT): davidkel (Sat, 17 Apr 2021 07:56:56 GMT): tharindupr (Sat, 17 Apr 2021 14:38:35 GMT): tharindupr (Sat, 17 Apr 2021 14:38:49 GMT): tharindupr (Sat, 17 Apr 2021 18:58:03 GMT): wabiyow95 (Mon, 19 Apr 2021 23:00:32 GMT): lucianocampagnoli (Tue, 20 Apr 2021 13:03:12 GMT): lucianocampagnoli (Tue, 20 Apr 2021 13:03:13 GMT): davidkel (Tue, 20 Apr 2021 14:46:35 GMT): lucianocampagnoli (Tue, 20 Apr 2021 15:20:30 GMT): davidkel (Tue, 20 Apr 2021 15:29:56 GMT): davidkel (Tue, 20 Apr 2021 15:29:56 GMT): lucianocampagnoli (Tue, 20 Apr 2021 15:35:23 GMT): lucianocampagnoli (Tue, 20 Apr 2021 16:57:18 GMT): davidkel (Thu, 22 Apr 2021 11:39:44 GMT): nkl199 (Thu, 22 Apr 2021 16:05:29 GMT): PoojaGupta2309 (Thu, 29 Apr 2021 03:50:01 GMT): PoojaGupta2309 (Thu, 29 Apr 2021 03:50:01 GMT): HelmiTrabelsi (Thu, 29 Apr 2021 10:40:44 GMT): aqid (Sat, 01 May 2021 13:47:29 GMT): lucianocampagnoli (Mon, 03 May 2021 15:56:47 GMT): RobbeV 1 (Wed, 05 May 2021 08:20:49 GMT): RobbeV 1 (Wed, 05 May 2021 08:20:50 GMT): HelmiTrabelsi (Wed, 05 May 2021 12:44:47 GMT): davidkel (Wed, 05 May 2021 18:29:45 GMT): davidkel (Wed, 05 May 2021 18:29:45 GMT): davidkel (Wed, 05 May 2021 18:29:45 GMT): zeminzhou (Fri, 07 May 2021 12:40:56 GMT): zeminzhou (Fri, 07 May 2021 12:40:57 GMT): cbfh (Sun, 09 May 2021 10:05:46 GMT): cbfh (Sun, 09 May 2021 10:05:46 GMT): oliveruas (Wed, 12 May 2021 23:34:37 GMT): oliveruas (Wed, 12 May 2021 23:44:48 GMT): klenik (Thu, 13 May 2021 07:51:09 GMT): klenik (Thu, 13 May 2021 07:51:41 GMT): klenik (Thu, 13 May 2021 07:54:22 GMT): oliveruas (Thu, 13 May 2021 10:23:01 GMT): oliveruas (Thu, 13 May 2021 10:30:55 GMT): zeminzhou (Fri, 14 May 2021 03:29:04 GMT): charith1994 (Sat, 15 May 2021 17:04:27 GMT): PoojaGupta2309 (Mon, 17 May 2021 14:34:30 GMT): PoojaGupta2309 (Mon, 17 May 2021 14:34:30 GMT): zeminzhou (Wed, 19 May 2021 02:59:53 GMT): zeminzhou (Wed, 19 May 2021 03:01:15 GMT): zeminzhou (Wed, 19 May 2021 03:01:22 GMT): davidkel (Wed, 19 May 2021 06:25:46 GMT): Dazel (Thu, 20 May 2021 18:40:56 GMT): Dazel (Thu, 20 May 2021 18:40:56 GMT): klenik (Sun, 23 May 2021 13:00:29 GMT): klenik (Sun, 23 May 2021 13:06:59 GMT): nkl199 (Sun, 23 May 2021 13:24:17 GMT): HelmiTrabelsi (Mon, 24 May 2021 07:38:48 GMT): davidkel (Mon, 24 May 2021 08:23:41 GMT): oliveruas (Mon, 31 May 2021 09:37:17 GMT): klenik (Tue, 01 Jun 2021 14:12:59 GMT): san72 (Tue, 01 Jun 2021 14:53:05 GMT): oliveruas (Wed, 02 Jun 2021 16:14:17 GMT): LabibFarag (Sat, 05 Jun 2021 05:25:58 GMT): brunomc 1 (Wed, 16 Jun 2021 22:54:52 GMT): brunomc 1 (Wed, 16 Jun 2021 22:54:53 GMT): jigsphd (Thu, 17 Jun 2021 13:34:11 GMT): jigsphd (Thu, 17 Jun 2021 13:34:12 GMT): jigsphd (Thu, 17 Jun 2021 13:35:28 GMT): VijayKrishnan (Thu, 17 Jun 2021 16:37:49 GMT): klenik (Thu, 17 Jun 2021 17:40:52 GMT): klenik (Thu, 17 Jun 2021 17:42:37 GMT): brunomc 1 (Thu, 17 Jun 2021 22:02:39 GMT): brunomc 1 (Thu, 17 Jun 2021 22:03:36 GMT): klenik (Fri, 18 Jun 2021 12:06:04 GMT): brunomc 1 (Sun, 20 Jun 2021 12:47:45 GMT): brunomc 1 (Sun, 20 Jun 2021 12:48:12 GMT): brunomc 1 (Sun, 20 Jun 2021 12:48:25 GMT): brunomc 1 (Sun, 20 Jun 2021 12:49:25 GMT): brunomc 1 (Sun, 20 Jun 2021 12:50:21 GMT): brunomc 1 (Sun, 20 Jun 2021 12:50:24 GMT): brunomc 1 (Sun, 20 Jun 2021 12:53:16 GMT): brunomc 1 (Sun, 20 Jun 2021 12:53:36 GMT): nage (Mon, 21 Jun 2021 17:29:35 GMT): Skyquek (Fri, 25 Jun 2021 16:06:10 GMT): Skyquek (Fri, 25 Jun 2021 16:07:25 GMT): Skyquek (Fri, 25 Jun 2021 16:07:50 GMT): Skyquek (Fri, 25 Jun 2021 16:08:00 GMT): dexhunter (Wed, 07 Jul 2021 14:25:00 GMT): idiota101 (Thu, 08 Jul 2021 20:00:06 GMT): idiota101 (Thu, 08 Jul 2021 20:00:07 GMT): davidkel (Thu, 08 Jul 2021 21:40:54 GMT): davidkel (Thu, 08 Jul 2021 23:08:13 GMT): KarinelaureToga (Tue, 13 Jul 2021 14:24:16 GMT): SamYuan1990 (Sat, 17 Jul 2021 12:31:09 GMT): SamYuan1990 (Sat, 17 Jul 2021 12:31:51 GMT): FilipeSilva (Tue, 20 Jul 2021 22:50:16 GMT): FilipeSilva (Tue, 20 Jul 2021 22:50:44 GMT): klenik (Wed, 21 Jul 2021 05:57:20 GMT): klenik (Wed, 21 Jul 2021 06:00:16 GMT): klenik (Wed, 21 Jul 2021 06:00:16 GMT): FilipeSilva (Wed, 21 Jul 2021 07:55:49 GMT): FilipeSilva (Wed, 21 Jul 2021 07:56:55 GMT): FilipeSilva (Wed, 21 Jul 2021 07:56:55 GMT): FilipeSilva (Wed, 21 Jul 2021 07:56:55 GMT): FilipeSilva (Wed, 21 Jul 2021 09:26:08 GMT): klenik (Wed, 21 Jul 2021 09:49:43 GMT): FilipeSilva (Wed, 21 Jul 2021 09:50:40 GMT): klenik (Wed, 21 Jul 2021 09:54:16 GMT): FilipeSilva (Wed, 21 Jul 2021 09:54:53 GMT): FilipeSilva (Wed, 21 Jul 2021 09:55:37 GMT): FilipeSilva (Wed, 21 Jul 2021 09:55:55 GMT): klenik (Wed, 21 Jul 2021 10:18:04 GMT): FilipeSilva (Wed, 21 Jul 2021 14:51:49 GMT): FilipeSilva (Wed, 21 Jul 2021 14:51:49 GMT): klenik (Wed, 21 Jul 2021 14:52:27 GMT): FilipeSilva (Wed, 21 Jul 2021 14:52:38 GMT): klenik (Fri, 23 Jul 2021 07:22:21 GMT): SamYuan1990 (Wed, 28 Jul 2021 11:58:48 GMT): idiota101 (Thu, 29 Jul 2021 06:59:36 GMT): idiota101 (Thu, 29 Jul 2021 07:08:42 GMT): idiota101 (Thu, 29 Jul 2021 07:08:42 GMT): idiota101 (Thu, 29 Jul 2021 07:10:24 GMT): klenik (Thu, 29 Jul 2021 08:11:32 GMT): SamYuan1990 (Sun, 08 Aug 2021 08:20:57 GMT): SamYuan1990 (Sun, 08 Aug 2021 08:23:22 GMT): SamYuan1990 (Sun, 08 Aug 2021 08:24:41 GMT): NeelamRajesh (Tue, 10 Aug 2021 06:15:03 GMT): NeelamRajesh (Tue, 10 Aug 2021 06:15:04 GMT): sj1 4 (Wed, 11 Aug 2021 02:00:44 GMT): bentoumia (Wed, 11 Aug 2021 22:05:53 GMT): bentoumia (Wed, 11 Aug 2021 22:05:54 GMT): davidkel (Thu, 12 Aug 2021 07:00:22 GMT): davidkel (Thu, 12 Aug 2021 07:00:22 GMT): bentoumia (Thu, 12 Aug 2021 23:12:20 GMT): aakzubaidi (Fri, 13 Aug 2021 23:10:20 GMT): aakzubaidi (Fri, 13 Aug 2021 23:10:20 GMT): ankush1995 (Wed, 18 Aug 2021 13:41:38 GMT): ankush1995 (Wed, 18 Aug 2021 13:41:38 GMT): ankush1995 (Wed, 18 Aug 2021 13:46:53 GMT): ankush1995 (Wed, 18 Aug 2021 13:46:58 GMT): ankush1995 (Wed, 18 Aug 2021 13:47:13 GMT): aakzubaidi (Wed, 18 Aug 2021 17:27:52 GMT): NeelamRajesh (Fri, 20 Aug 2021 09:13:20 GMT): ankush1995 (Mon, 23 Aug 2021 05:56:17 GMT): ankush1995 (Mon, 23 Aug 2021 05:58:24 GMT): ankush1995 (Mon, 23 Aug 2021 05:59:12 GMT): ankush1995 (Mon, 23 Aug 2021 06:54:33 GMT): ankush1995 (Mon, 23 Aug 2021 06:54:41 GMT): ankush1995 (Mon, 23 Aug 2021 06:55:15 GMT): ankush1995 (Mon, 23 Aug 2021 06:55:18 GMT): bentoumia (Mon, 23 Aug 2021 12:53:48 GMT): HienDoan (Thu, 26 Aug 2021 06:42:16 GMT): HienDoan (Thu, 26 Aug 2021 06:42:16 GMT): HienDoan (Thu, 26 Aug 2021 06:42:16 GMT): HienDoan (Thu, 26 Aug 2021 06:42:38 GMT): HienDoan (Thu, 26 Aug 2021 06:43:08 GMT): JongHyunPark (Thu, 26 Aug 2021 10:35:11 GMT): JongHyunPark (Thu, 26 Aug 2021 10:35:11 GMT): ElhamShammar (Thu, 26 Aug 2021 15:33:01 GMT): ElhamShammar (Thu, 26 Aug 2021 15:33:02 GMT): ElhamShammar (Thu, 26 Aug 2021 15:33:03 GMT): ElhamShammar (Sat, 28 Aug 2021 04:51:57 GMT): ArchitaDasgupta (Mon, 06 Sep 2021 12:54:06 GMT): taccatisid (Thu, 09 Sep 2021 07:04:56 GMT): taccatisid (Thu, 09 Sep 2021 07:04:56 GMT): taccatisid (Thu, 09 Sep 2021 07:04:56 GMT): davidkel (Fri, 10 Sep 2021 14:46:01 GMT): davidkel (Fri, 10 Sep 2021 14:46:01 GMT): davidkel (Sat, 11 Sep 2021 11:44:17 GMT): fmy1993 (Sat, 11 Sep 2021 14:17:08 GMT): mianhammad (Mon, 13 Sep 2021 07:04:07 GMT): mianhammad (Mon, 13 Sep 2021 07:04:10 GMT): mianhammad (Mon, 13 Sep 2021 10:12:40 GMT): mianhammad (Mon, 13 Sep 2021 10:12:45 GMT): taccatisid (Tue, 14 Sep 2021 06:10:33 GMT): vlaca (Tue, 14 Sep 2021 08:55:05 GMT): taccatisid (Tue, 14 Sep 2021 23:29:02 GMT): vlaca (Wed, 15 Sep 2021 08:35:05 GMT): taccatisid (Thu, 16 Sep 2021 02:01:57 GMT): davidkel (Thu, 16 Sep 2021 07:10:30 GMT): igorkrupczynski (Thu, 16 Sep 2021 10:07:48 GMT): iffathossain (Mon, 20 Sep 2021 07:30:55 GMT): iffathossain (Mon, 20 Sep 2021 07:30:56 GMT): iffathossain (Wed, 22 Sep 2021 03:41:27 GMT): klenik (Wed, 22 Sep 2021 09:28:43 GMT): klenik (Wed, 22 Sep 2021 09:29:08 GMT): CollinMeese (Wed, 22 Sep 2021 16:34:08 GMT): CollinMeese (Wed, 22 Sep 2021 16:34:08 GMT): CollinMeese (Wed, 22 Sep 2021 16:34:08 GMT): davidkel (Wed, 22 Sep 2021 17:25:25 GMT): CollinMeese (Wed, 22 Sep 2021 18:01:34 GMT): GergelyLengyel (Sun, 03 Oct 2021 23:30:43 GMT): GergelyLengyel (Sun, 03 Oct 2021 23:30:44 GMT): GergelyLengyel (Mon, 04 Oct 2021 00:10:44 GMT): klenik (Mon, 04 Oct 2021 08:31:32 GMT): klenik (Mon, 04 Oct 2021 08:33:26 GMT): klenik (Mon, 04 Oct 2021 08:34:13 GMT): GergelyLengyel (Mon, 04 Oct 2021 11:46:11 GMT): klenik (Mon, 04 Oct 2021 11:50:52 GMT): klenik (Mon, 04 Oct 2021 11:53:39 GMT): GergelyLengyel (Mon, 04 Oct 2021 12:26:16 GMT): GergelyLengyel (Mon, 04 Oct 2021 12:29:36 GMT): GergelyLengyel (Mon, 04 Oct 2021 12:30:01 GMT): klenik (Tue, 05 Oct 2021 08:10:23 GMT): GergelyLengyel (Tue, 05 Oct 2021 12:03:04 GMT): GergelyLengyel (Tue, 05 Oct 2021 12:05:02 GMT): GergelyLengyel (Tue, 05 Oct 2021 12:06:41 GMT): GergelyLengyel (Tue, 05 Oct 2021 12:06:54 GMT): klenik (Tue, 05 Oct 2021 12:08:28 GMT): GergelyLengyel (Tue, 05 Oct 2021 12:26:06 GMT): GergelyLengyel (Tue, 05 Oct 2021 12:27:14 GMT): GergelyLengyel (Tue, 05 Oct 2021 12:30:00 GMT): GergelyLengyel (Tue, 05 Oct 2021 12:30:07 GMT): klenik (Tue, 05 Oct 2021 12:30:13 GMT): klenik (Tue, 05 Oct 2021 12:30:38 GMT): GergelyLengyel (Tue, 05 Oct 2021 12:31:03 GMT): GergelyLengyel (Tue, 05 Oct 2021 12:31:18 GMT): klenik (Tue, 05 Oct 2021 12:31:44 GMT): GergelyLengyel (Tue, 05 Oct 2021 21:35:38 GMT): GergelyLengyel (Tue, 05 Oct 2021 21:37:13 GMT): klenik (Wed, 06 Oct 2021 08:31:32 GMT): maciejjedrzejczyk (Wed, 06 Oct 2021 12:15:14 GMT): maciejjedrzejczyk (Wed, 06 Oct 2021 12:15:15 GMT): klenik (Wed, 06 Oct 2021 12:34:45 GMT): klenik (Wed, 06 Oct 2021 12:34:45 GMT): maciejjedrzejczyk (Wed, 06 Oct 2021 14:50:54 GMT): maciejjedrzejczyk (Wed, 06 Oct 2021 14:51:24 GMT): klenik (Thu, 07 Oct 2021 08:07:35 GMT): GergelyLengyel (Tue, 12 Oct 2021 17:10:08 GMT): GergelyLengyel (Tue, 12 Oct 2021 17:10:08 GMT): davidkel (Fri, 15 Oct 2021 07:49:42 GMT): GergelyLengyel (Fri, 15 Oct 2021 13:48:34 GMT): davidkel (Fri, 15 Oct 2021 13:51:08 GMT): davidkel (Fri, 15 Oct 2021 13:51:08 GMT): davidkel (Fri, 15 Oct 2021 13:51:08 GMT): GergelyLengyel (Sat, 16 Oct 2021 10:20:56 GMT): OmarSaad (Sat, 16 Oct 2021 12:50:51 GMT): outsidethecode (Thu, 21 Oct 2021 13:21:28 GMT): outsidethecode (Thu, 21 Oct 2021 13:21:28 GMT): klenik (Fri, 22 Oct 2021 12:53:38 GMT): KarinelaureToga (Mon, 01 Nov 2021 09:16:17 GMT): KarinelaureToga (Mon, 01 Nov 2021 09:19:36 GMT): KarinelaureToga (Mon, 01 Nov 2021 09:20:02 GMT): KarinelaureToga (Mon, 01 Nov 2021 09:20:23 GMT): KarinelaureToga (Mon, 01 Nov 2021 09:22:28 GMT): KarinelaureToga (Mon, 01 Nov 2021 09:25:32 GMT): davidkel (Mon, 01 Nov 2021 10:32:53 GMT): davidkel (Mon, 01 Nov 2021 10:48:03 GMT): KarinelaureToga (Mon, 01 Nov 2021 12:16:00 GMT): KarinelaureToga (Mon, 01 Nov 2021 12:17:04 GMT): davidkel (Mon, 01 Nov 2021 12:26:59 GMT): Haniff (Thu, 25 Nov 2021 09:34:01 GMT): SeanBohan (Fri, 17 Dec 2021 19:59:00 GMT): barcellosrod (Fri, 17 Dec 2021 21:29:49 GMT): barcellosrod (Fri, 17 Dec 2021 21:29:49 GMT): barcellosrod (Fri, 17 Dec 2021 21:32:01 GMT): barcellosrod (Fri, 17 Dec 2021 21:32:41 GMT): barcellosrod (Fri, 17 Dec 2021 21:33:24 GMT): klenik (Sat, 18 Dec 2021 22:54:36 GMT): yangzifeng1995 (Mon, 03 Jan 2022 19:47:12 GMT): yangzifeng1995 (Mon, 03 Jan 2022 19:47:12 GMT): yangzifeng1995 (Tue, 04 Jan 2022 19:38:49 GMT): yangzifeng1995 (Tue, 04 Jan 2022 19:38:49 GMT): klenik (Wed, 05 Jan 2022 08:18:28 GMT): neetusharma (Sat, 08 Jan 2022 11:27:42 GMT): neetusharma (Sat, 08 Jan 2022 11:27:43 GMT): neetusharma (Sat, 08 Jan 2022 11:30:50 GMT): neetusharma (Sat, 08 Jan 2022 11:31:14 GMT): neetusharma (Sat, 08 Jan 2022 11:32:11 GMT): klenik (Sat, 08 Jan 2022 11:33:35 GMT): neetusharma (Sat, 08 Jan 2022 11:36:29 GMT): neetusharma (Sat, 08 Jan 2022 11:37:28 GMT): klenik (Sat, 08 Jan 2022 11:46:24 GMT): neetusharma (Sat, 08 Jan 2022 13:31:18 GMT): klenik (Sat, 08 Jan 2022 13:39:24 GMT): klenik (Sat, 08 Jan 2022 13:47:22 GMT): neetusharma (Sun, 09 Jan 2022 05:13:00 GMT): davidkel (Mon, 10 Jan 2022 09:28:41 GMT): neetusharma (Mon, 10 Jan 2022 11:14:13 GMT): neetusharma (Mon, 10 Jan 2022 11:14:39 GMT): klenik (Mon, 10 Jan 2022 11:18:41 GMT): neetusharma (Mon, 10 Jan 2022 11:20:19 GMT): neetusharma (Mon, 10 Jan 2022 11:21:09 GMT): neetusharma (Mon, 10 Jan 2022 11:52:30 GMT): klenik (Mon, 10 Jan 2022 12:55:36 GMT): klenik (Mon, 10 Jan 2022 12:55:36 GMT): klenik (Mon, 10 Jan 2022 12:56:04 GMT): davidkel (Mon, 10 Jan 2022 13:13:34 GMT): klenik (Mon, 10 Jan 2022 13:46:07 GMT): neetusharma (Mon, 10 Jan 2022 15:41:18 GMT): neetusharma (Mon, 10 Jan 2022 15:41:48 GMT): neetusharma (Mon, 10 Jan 2022 15:43:45 GMT): davidkel (Mon, 10 Jan 2022 15:47:28 GMT): davidkel (Mon, 10 Jan 2022 18:20:59 GMT): klenik (Mon, 10 Jan 2022 18:21:58 GMT): davidkel (Mon, 10 Jan 2022 18:38:11 GMT): davidkel (Mon, 10 Jan 2022 18:38:11 GMT): yangzifeng1995 (Mon, 10 Jan 2022 20:08:08 GMT): klenik (Mon, 10 Jan 2022 22:00:49 GMT): neetusharma (Thu, 13 Jan 2022 14:36:13 GMT): neetusharma (Thu, 13 Jan 2022 14:36:36 GMT): klenik (Thu, 13 Jan 2022 15:39:50 GMT): neetusharma (Fri, 14 Jan 2022 13:18:04 GMT): neetusharma (Fri, 14 Jan 2022 13:19:07 GMT): neetusharma (Fri, 14 Jan 2022 13:24:18 GMT): neetusharma (Fri, 14 Jan 2022 13:26:00 GMT): neetusharma (Fri, 14 Jan 2022 13:44:11 GMT): neetusharma (Fri, 14 Jan 2022 13:56:10 GMT): klenik (Fri, 14 Jan 2022 18:36:30 GMT): klenik (Fri, 14 Jan 2022 18:36:30 GMT): neetusharma (Sat, 15 Jan 2022 08:38:44 GMT): neetusharma (Sat, 15 Jan 2022 08:41:49 GMT): klenik (Sat, 15 Jan 2022 15:28:47 GMT): neetusharma (Sun, 16 Jan 2022 09:01:52 GMT): neetusharma (Sun, 16 Jan 2022 12:57:44 GMT): neetusharma (Mon, 17 Jan 2022 07:08:42 GMT): davidkel (Mon, 17 Jan 2022 08:08:56 GMT): davidkel (Mon, 17 Jan 2022 08:12:29 GMT): davidkel (Mon, 17 Jan 2022 08:12:29 GMT): davidkel (Mon, 17 Jan 2022 08:12:29 GMT): neetusharma (Mon, 17 Jan 2022 09:52:06 GMT): AAlzaabi (Tue, 18 Jan 2022 09:57:58 GMT): AAlzaabi (Tue, 18 Jan 2022 09:57:59 GMT): davidkel (Tue, 18 Jan 2022 17:42:14 GMT): davidkel (Tue, 18 Jan 2022 17:43:42 GMT): davidkel (Tue, 18 Jan 2022 17:43:42 GMT): davidkel (Tue, 18 Jan 2022 17:45:07 GMT): davidkel (Tue, 18 Jan 2022 17:45:07 GMT): AAlzaabi (Tue, 18 Jan 2022 17:56:59 GMT): davidkel (Tue, 18 Jan 2022 18:59:24 GMT): davidkel (Tue, 18 Jan 2022 18:59:24 GMT): AAlzaabi (Wed, 19 Jan 2022 10:32:24 GMT): neetusharma (Sun, 23 Jan 2022 11:37:38 GMT): neetusharma (Sun, 23 Jan 2022 11:38:39 GMT): neetusharma (Tue, 25 Jan 2022 12:17:44 GMT): neetusharma (Tue, 25 Jan 2022 12:18:15 GMT): klenik (Tue, 25 Jan 2022 12:33:50 GMT): davidkel (Tue, 25 Jan 2022 12:56:08 GMT): neetusharma (Tue, 25 Jan 2022 13:42:56 GMT): sbohanlf (Tue, 25 Jan 2022 15:17:08 GMT): neetusharma (Wed, 26 Jan 2022 12:07:15 GMT): neetusharma (Wed, 26 Jan 2022 12:07:41 GMT): neetusharma (Wed, 26 Jan 2022 12:08:51 GMT): davidkel (Wed, 26 Jan 2022 12:52:24 GMT): neetusharma (Wed, 26 Jan 2022 13:57:26 GMT): neetusharma (Wed, 26 Jan 2022 13:57:35 GMT): davidkel (Wed, 26 Jan 2022 14:14:52 GMT): davidkel (Wed, 26 Jan 2022 14:14:52 GMT): klenik (Wed, 26 Jan 2022 14:23:37 GMT): davidkel (Wed, 26 Jan 2022 15:38:14 GMT): neetusharma (Thu, 27 Jan 2022 05:46:17 GMT): rejnol93 (Thu, 27 Jan 2022 10:01:26 GMT): rejnol93 (Thu, 27 Jan 2022 10:03:32 GMT): rejnol93 (Thu, 27 Jan 2022 10:06:36 GMT): davidkel (Thu, 27 Jan 2022 10:22:19 GMT): rejnol93 (Thu, 27 Jan 2022 10:22:57 GMT): rejnol93 (Thu, 27 Jan 2022 10:23:23 GMT): davidkel (Thu, 27 Jan 2022 10:42:47 GMT): davidkel (Thu, 27 Jan 2022 10:42:47 GMT): rejnol93 (Thu, 27 Jan 2022 10:46:47 GMT): klenik (Thu, 27 Jan 2022 10:50:00 GMT): neetusharma (Thu, 27 Jan 2022 13:10:23 GMT): klenik (Thu, 27 Jan 2022 13:47:31 GMT): klenik (Thu, 27 Jan 2022 13:47:31 GMT): rejnol93 (Thu, 27 Jan 2022 14:12:24 GMT): neetusharma (Thu, 27 Jan 2022 15:04:21 GMT): klenik (Thu, 27 Jan 2022 16:10:08 GMT): klenik (Thu, 27 Jan 2022 16:10:36 GMT): klenik (Thu, 27 Jan 2022 16:12:38 GMT): rejnol93 (Thu, 27 Jan 2022 17:12:37 GMT): alamin25 1 (Thu, 27 Jan 2022 20:53:21 GMT): alamin25 1 (Thu, 27 Jan 2022 20:53:22 GMT): alamin25 1 (Thu, 27 Jan 2022 20:54:03 GMT): klenik (Fri, 28 Jan 2022 08:26:51 GMT): rejnol93 (Fri, 28 Jan 2022 09:01:36 GMT): rejnol93 (Fri, 28 Jan 2022 09:01:36 GMT): rejnol93 (Fri, 28 Jan 2022 09:01:36 GMT): rejnol93 (Fri, 28 Jan 2022 09:01:36 GMT): rejnol93 (Fri, 28 Jan 2022 09:01:36 GMT): rejnol93 (Fri, 28 Jan 2022 09:01:36 GMT): rejnol93 (Fri, 28 Jan 2022 10:32:26 GMT): rejnol93 (Fri, 28 Jan 2022 10:32:26 GMT): rejnol93 (Fri, 28 Jan 2022 10:33:24 GMT): Quasso (Fri, 28 Jan 2022 12:16:45 GMT): Quasso (Fri, 28 Jan 2022 12:16:46 GMT): Quasso (Fri, 28 Jan 2022 12:16:46 GMT): Quasso (Fri, 28 Jan 2022 12:20:44 GMT): Quasso (Fri, 28 Jan 2022 12:25:10 GMT): Quasso (Fri, 28 Jan 2022 12:25:10 GMT): davidkel (Fri, 28 Jan 2022 13:33:01 GMT): davidkel (Fri, 28 Jan 2022 13:33:01 GMT): Quasso (Fri, 28 Jan 2022 13:38:02 GMT): Quasso (Fri, 28 Jan 2022 13:38:53 GMT): davidkel (Fri, 28 Jan 2022 13:42:40 GMT): davidkel (Fri, 28 Jan 2022 13:42:40 GMT): davidkel (Fri, 28 Jan 2022 13:44:25 GMT): Quasso (Fri, 28 Jan 2022 13:45:57 GMT): Quasso (Fri, 28 Jan 2022 13:46:40 GMT): Quasso (Fri, 28 Jan 2022 13:46:40 GMT): Quasso (Fri, 28 Jan 2022 13:46:40 GMT): Quasso (Fri, 28 Jan 2022 13:46:40 GMT): Quasso (Fri, 28 Jan 2022 13:46:40 GMT): Quasso (Fri, 28 Jan 2022 13:46:40 GMT): Quasso (Fri, 28 Jan 2022 13:47:06 GMT): Quasso (Fri, 28 Jan 2022 13:48:01 GMT): davidkel (Fri, 28 Jan 2022 13:53:05 GMT): Quasso (Fri, 28 Jan 2022 13:54:21 GMT): Quasso (Fri, 28 Jan 2022 13:54:21 GMT): Quasso (Fri, 28 Jan 2022 14:34:17 GMT): Quasso (Fri, 28 Jan 2022 14:34:17 GMT): Quasso (Fri, 28 Jan 2022 14:34:17 GMT): Quasso (Fri, 28 Jan 2022 14:37:28 GMT): Quasso (Fri, 28 Jan 2022 14:37:28 GMT): Quasso (Fri, 28 Jan 2022 14:37:28 GMT): Quasso (Fri, 28 Jan 2022 14:37:28 GMT): Quasso (Fri, 28 Jan 2022 14:56:42 GMT): Quasso (Fri, 28 Jan 2022 14:56:42 GMT): Quasso (Fri, 28 Jan 2022 14:56:42 GMT): Quasso (Fri, 28 Jan 2022 14:57:34 GMT): Quasso (Fri, 28 Jan 2022 14:57:54 GMT): davidkel (Fri, 28 Jan 2022 15:31:16 GMT): davidkel (Fri, 28 Jan 2022 15:31:16 GMT): davidkel (Fri, 28 Jan 2022 15:31:16 GMT): Quasso (Fri, 28 Jan 2022 15:39:39 GMT): Quasso (Fri, 28 Jan 2022 15:39:46 GMT): Quasso (Fri, 28 Jan 2022 15:41:33 GMT): Quasso (Fri, 28 Jan 2022 15:41:33 GMT): Quasso (Fri, 28 Jan 2022 15:42:47 GMT): Quasso (Fri, 28 Jan 2022 15:42:47 GMT): Quasso (Fri, 28 Jan 2022 15:49:58 GMT): Quasso (Fri, 28 Jan 2022 15:50:13 GMT): Quasso (Fri, 28 Jan 2022 15:59:05 GMT): davidkel (Fri, 28 Jan 2022 16:07:15 GMT): Quasso (Fri, 28 Jan 2022 16:25:13 GMT): Quasso (Fri, 28 Jan 2022 16:25:13 GMT): Quasso (Fri, 28 Jan 2022 16:25:13 GMT): Quasso (Fri, 28 Jan 2022 16:27:34 GMT): Quasso (Fri, 28 Jan 2022 16:27:34 GMT): Quasso (Fri, 28 Jan 2022 16:28:18 GMT): Quasso (Fri, 28 Jan 2022 16:28:45 GMT): davidkel (Fri, 28 Jan 2022 16:43:29 GMT): Quasso (Fri, 28 Jan 2022 17:21:48 GMT): Quasso (Fri, 28 Jan 2022 17:22:06 GMT): Quasso (Fri, 28 Jan 2022 17:22:31 GMT): Quasso (Fri, 28 Jan 2022 17:30:26 GMT): Quasso (Fri, 28 Jan 2022 17:31:16 GMT): Quasso (Fri, 28 Jan 2022 17:31:16 GMT): davidkel (Fri, 28 Jan 2022 17:33:16 GMT): Quasso (Fri, 28 Jan 2022 17:49:23 GMT): Quasso (Fri, 28 Jan 2022 19:30:09 GMT): Quasso (Fri, 28 Jan 2022 19:32:55 GMT): davidkel (Fri, 28 Jan 2022 19:53:15 GMT): Quasso (Mon, 31 Jan 2022 09:27:56 GMT): salikzquidz (Mon, 07 Feb 2022 16:54:59 GMT): salikzquidz (Mon, 07 Feb 2022 18:01:22 GMT): salikzquidz (Mon, 07 Feb 2022 18:01:22 GMT): Param-S (Tue, 08 Feb 2022 08:02:46 GMT): klenik (Tue, 08 Feb 2022 09:22:28 GMT): salikzquidz (Thu, 10 Feb 2022 01:20:51 GMT): Cai 238 (Mon, 14 Feb 2022 11:43:03 GMT): Cai 238 (Mon, 14 Feb 2022 11:43:03 GMT): Cai 238 (Mon, 14 Feb 2022 11:53:16 GMT): davidkel (Mon, 14 Feb 2022 13:22:56 GMT): davidkel (Mon, 14 Feb 2022 13:22:56 GMT): Cai 238 (Mon, 14 Feb 2022 13:43:18 GMT): davidkel (Mon, 14 Feb 2022 13:48:50 GMT): Cai 238 (Tue, 15 Feb 2022 00:02:33 GMT): Cai 238 (Tue, 15 Feb 2022 05:51:45 GMT): Cai 238 (Tue, 15 Feb 2022 05:52:39 GMT): davidkel (Tue, 15 Feb 2022 09:32:39 GMT): Cai 238 (Wed, 16 Feb 2022 00:00:25 GMT): rjones (Wed, 16 Feb 2022 18:09:03 GMT): rjones (Wed, 16 Feb 2022 18:09:03 GMT): eeeeegik (Thu, 17 Feb 2022 09:21:04 GMT): jamilmoatasimbillah (Thu, 24 Feb 2022 08:22:01 GMT): rjones (Wed, 23 Mar 2022 17:24:12 GMT): rjones (Wed, 23 Mar 2022 17:24:12 GMT): rjones (Wed, 23 Mar 2022 17:24:12 GMT):
[ ](https://chat.hyperledger.org/channel/caliper?msg=BY9iBfuSPXgrfpdbk) @nkl199 But I have clients
I got an error when deploy caliper-fabric to multi-machines, like the gRPC's problem
grpc_err.PNG
grpc_err.PNG
order_log.PNG
the order can't get the request does anyone
the order cannot get the request did anyone encounter this problem?
[ ](https://chat.hyperledger.org/channel/caliper?msg=c6riZdRPffRgZYx47) @Surabhi1777 so the first client connects to the first peer, the second client to the second peer etc
Hi! I have a simple node.js app which uses fabcar network. My intention is to test it with Caliper but having problems with lack of resources/documentations/tutorials on this. Can anyone help me out with some directions or suggestions? Thank you in advance.
[ ](https://chat.hyperledger.org/channel/caliper?msg=3g9j2rrRqbKH864og) @LHS_ETR Since you're trying to run a Sawtooth sample, I think you need to specify the blockchain config file (the -n option). From what I can tell, by looking at main.js inside benchmark/simple/, if you fail to specify the -n option it defaults to a Fabric network setup (not Sawtooth!). Try adding "-n ../../network/sawtooth/simplenetwork/sawtooth.json" to your command and see if that works.
Quick question pretty please: the documentation specifies the -c config option to be a .json file, and the example on the architecture page looks like a .json file... but from everything I can tell and given the pre-made config files, they look like .yaml files?? I know these file types are highly related but can anyone just clarify for me which one it should be and if it matters?? i.e. can we use either type?
@amiec after '-c' use benchmarks config.yaml. see if it works!
[ ](https://chat.hyperledger.org/channel/caliper?msg=F7ejsJ2XujFAG5hSt) @Bayeed It does, I've had success with a few config-xxx.yaml test runs - mostly just clarifying if that JSON information is outdated and if so, making a note that the docs should probably be updated (I got confused and hung up learning looking for a config.json that doesn't seem to exist). I suppose I should just try it with a .json file...
@amiec Glad it works for you. Yes i think updating it with a .yaml extension would be better for beginners to grasp
Has joined the channel.
Greetings Caliper gurus! I recently learned that there was a fork of Caliper called Gauge by a company called Persistent Systems (https://github.com/persistentsystems/gauge/blob/master/docs/caliper-changes.md) which resolves some issues with the Caliper engine. Have those changed been pushed or resolved in the main Caliper tool?
Seems like a rather big issue that "Caliper client was missing out certain block events at higher transaction rates resulting in failed transactions."
@nkl199 @panyu2 caliper to support fabric 1.3 and 1.4 releases caliper needs to be updated with Event hub changes..
@amiec thax!! :) it works
[ ](https://chat.hyperledger.org/channel/caliper?msg=Y83kxggC2byCzLu5u) @nkl199 Right.. So I will have to change that configuration in e2e_utils.sh , so that my 1st client connects to the second peer . Right?
Has joined the channel.
Has joined the channel.
Hello, I am trying to setup Caliper with my custom Composer network. Could someone point me to a good tutorial or learning resource please? The webpage i am seeing seems to be referring to files i dont have such as config-composer.json where there are .yaml instead. If there is any additional resources i someone could point me to that would be great, i am a beginner and trying to figure things out. Thanks.
@ajbill me too I have not been able to find any learning resources. Would you happen to know the difference between network/fabric-v1.2/config files and network/fabric-v1.2/dev files?
@rkrish82 Thanks for reminding. I think Nick has submitted a PR about this, but there are some conflicts to be resolved before merging. @nkl199
@unlimited @ajbill , this documentation described the flow of the Caliper. https://hyperledger.github.io/caliper/docs/2_Architecture.html.
The network configuration files are stored in the directory `network/` @ajbill
@unlimited the configuration files in the directory `network/fabric-v1.2/**` contains configuration files for fabric 1.2 and the files in the directory `network/fabric-v1.2/dev/` contains the dev test case's network files of fabric 1.2 for dev benchamark test.
[ ](https://chat.hyperledger.org/channel/caliper?msg=8cTPHsgYpekooZku6) @panyu2 @unlimited @rkrish82 Thanks. However i am also having issues with my application connecting to the REST API reporting that updates are successful when the transactions are not being committed so it seems i still have issues with the initial setup.
@ajbill do you use caliper to test your backend network? can you describe your application?
@panyu2 thanks for the tips! in the benchmark configuration file, is txNumber number of transactions submitted PER client? or TOTAL from all clients? if latter, I suppose the transactions are divided evenly among clients?
@unlimited yes you are right, the txNumber is the total number of transactiosns. In the benchmark flow, the transactioins will be divided evenly to every client.
@houqinghui thank you!
@houqinghui btw, is the number of clients benchmark config TOTAL # of clients? or linked PER peer node as specified in blockchain configuration?
@unlimited total of clients.
cool
Hi, I tested sawtooth multi-node network, and saw a lot of instability in the tool itself based on some reports it gave especially after a certain send rate. What is the issue which is causing it, is it some limitation of the clients or technologies used?
Hi, I tested sawtooth multi-node network, and saw a lot of instability in the tool itself based on some reports it gave especially after a certain send rate. What is the issue which is causing it, is it some limitation of the client's implementation or technologies used?
@CodeReaper I'm not sure if this is related, but a company forked Caliper and developed their own benchmarking tool called Gauge due to the original Caliper (before it joined Hyperledger) having issues with high send rates. Check it out: https://github.com/persistentsystems/gauge. I thought this was fixed - let me know if it's the same problem you're experiencing?
Also, anyone know if it's possible or how to modify/configure test modules to test crash fault tolerance? like 1. node stopping 2. network bandwidth throttling/messaging delay 3. corruption of messages?
@klenik @nkl199 do you have some suggestions about @unlimited 's question?
hi , i try to test sawtooth in network but dosen't work. is caliper work only in local ?
[ ](https://chat.hyperledger.org/channel/caliper?msg=NgH38qqa6HPXZe3rH) @unlimited Caliper already has implemented forking of client processes or creating multiple remote clients with zookeeper. But for sawtooth, and especially after a certain send rate it starts giving bizarre reports.
@CodeReaper would you please give more details ?
@CodeReaper would you please give more details ? When supporting the long time test, there are some issues and we are now trying to resolving this.
;)
it dosen't work.. did i miss something?
@LHS_ETR do you start the zookeeper service? the result shows that you only launch the reomote client, but cannot connect to the zookeeper service.
hello everyone, can you please tell me what does this mean? "policy": { "2-of": [{"signed-by": 0}, {"signed-by": 1}]}
[ ](https://chat.hyperledger.org/channel/caliper?msg=DKhS7mtLumw6B4y45) @houqinghui Thanks, I have a Java application calling the REST API. I have not managed to set Caliper up yet as i have realised all my transactions are not getting committed. Things work until multiple transactions are sent to the REST server in short succession and then only the last transaction gets through. I guess its a question for the Composer section but I am not sure where to look for the problem. I guess its a problem on the back-end but the network seems to be working ok otherwise.
Has joined the channel.
Does caliper support hyperledger fabric 1.4 network deployed in a multi-host setting using docker swarm?
https://hyperledger.github.io/caliper/docs/Fabric_Configuration.html says latest supported fabric version is 1.2
@sherbetlemon yes, supporting hyperledger fabric v1.4 is in progress, but we use docker composer rather than docker swarm.
@Nabilel 1 this is the endorsement plolicy, meaning that the transaction must be endorsed by org1 and org2.
@Nabilel 1 This is the endorsement plolicy, meaning that the transaction must be endorsed by org1 and org2 together.
@Nabilel 1 This is the endorsement plolicy, meaning that the transaction must be endorsed by org1 and org2 together. @Nabilel 1
would that mean that caliper can only be used for locally deployed nodes?
@Nabilel 1 This is the endorsement plolicy, meaning that the transaction must be endorsed by org1 and org2 together.
@Nabilel 1
@sherbetlemon Does the "deployed nodes" mean the node of backend blockchain network? if so, you can deploy the node anywhere you want.
So the only difference between docker composer and docker swarm deployment would be that the IP addresses need to be specifically mentioned in the docker composer?
@sherbetlemon In the caliper use case, the backend blockchain network is deployed by the docker composer, then the caliper can test it . You can deploy your own blockchain network by docker swarm, modify the network configuration file such as fabric-node.json, and use caliper to test it.
okay, thanks :)
Has joined the channel.
im struggling a bit with the documentation on how to deploy benchmarks
im working with Composer
do I need to write a configuration file?
or just the main.js code to run
[ ](https://chat.hyperledger.org/channel/caliper?msg=xKWuQ3euw7ZhiJPEH) @panyu2 I setup 2 Nodes(8 vcpus, 32 GB memory) on cloud and setup Zookeeper based caliper setup. I played around with various send rates, some cases it gave weird reports even at low send rates, and sometimes even in single node setups. But after a send rate of 500 tx per second. Sometimes it didn't generate reports because of some errors.
[ ](https://chat.hyperledger.org/channel/caliper?msg=xKWuQ3euw7ZhiJPEH) @panyu2 I did a setup of 2 Nodes(8 vcpus, 32 GB memory) on cloud and setup Zookeeper based caliper setup. I played around with various send rates, some cases it gave weird reports even at low send rates, and sometimes even in single node setups. But after a send rate of 500 tx per second. Sometimes it didn't generate reports because of some errors.
@houqinghui Thank you for your answer, can you please direct me to any documentation regarding this syntax.
@CodeReaper , what do weird reports mean? And what kind of errors did it report? Time-out errors? when these errors appear, Caliper did not quit normally? BTW, would you please submit a issue and give some more details like what errors and how Caliper acted?
@Nabilel 1 please refer to the documentation page https://hyperledger-fabric.readthedocs.io/en/release-1.4/endorsement-policies.html
Hi all, I'm trying to create a custom transaction processor for use with a Sawtooth network. The TP is very simple - it literally does nothing. I've created corresponding BatchBuilder and callback, as well as benchmark and network config files. Where I'm currently hung up is trying to build a docker image for my transaction processor. So far, I've modeled everything on the simple-tp-python infrastructure that is already present. When I try to spin up my network that includes my custom do-nothing transaction processor image, I get "ERROR: for sawtooth-do-nothing-tp-python-default Cannot start service do-nothing-tp-python: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"do-nothing-tp-python\": executable file not found in $PATH".
I noticed that there seems to be an executable called "simple-tp-python " already sitting in the simple_python folder (caliper/src/contract/sawtooth/simple/simple_python)... as well as some magic going on with a "packaging" directory and "setup.py" script.
How did these get there and how would I do the same assuming I have almost a perfect clone of the simple-tp situation? I'm not sure what's going on with docker in this case or why the compose file can't seem to find and launch my image even though the image appears to have been build just fine.
Please and thank you!!
error in zoo2
result
i got an error in zookeeper.
i got an error in zookeeper, can't connect. did anyone encounter this problem??
Has joined the channel.
Has joined the channel.
@amiec you need to check if the contract files (https://github.com/hyperledger/caliper/tree/master/src/contract/sawtooth/simple/simple_python)'are in the dir `../../../../caliper/src/contract/sawtooth/simple/simple_python`. The above dir information can be got from the following lines (https://github.com/hyperledger/caliper/blob/master/network/sawtooth/simplenetwork/sawtooth-simple.yaml#L43) (https://github.com/hyperledger/caliper/blob/master/network/sawtooth/simplenetwork/Dockerfile#L57)
@amiec If you want to run your own contract, you could do the same as the simple_python, put your own contract files to a dir, then mount the dir on the docker to run.
@LHS_ETR The query test failed might be caused by your open test. The figure shows all of the transactions are unfinished. Are there any errors appearing during the open test?
Hello everyone, I have managed to excute my first simple benchmark with Caliper. I have read in the documentation that I can get the Read Latency and the Transaction Latency, but in the report table I only see Max Latency Min Latency Avg Latency, but it does not specify whether it referse to Read or Transaction latency. Can anyone give some direction please?
Has left the channel.
Clipboard - January 28, 2019 3:43 PM
Hi guys, can caliper test a network setup like the above where a peer is linked with two channels?
[ ](https://chat.hyperledger.org/channel/caliper?msg=zrYFzNgLHBxttCC3o) @FlyingTiger Thanks! I made a bit more progress - I had failed to provide the appropriate executable to call from the entrypoint specified in the compose file for the container. I do have one more question though: In the contract directory structure for the simple tp python, there is a dir called "packaging", and inside that a dir called "systemd", in which there are two files: sawtooth-simple-tp-python and also sawtooth-simple-tp-python.service. Do you know why these files are there and what they are used for? Why isn't it enough to just have the executable as a starting point and the relevant python files for the TP? I'm having trouble getting my new TP be recognized appropriately by my validator and I'm wondering if it has to do with these magic files.
[ ](https://chat.hyperledger.org/channel/caliper?msg=zrYFzNgLHBxttCC3o) @FlyingTiger Thanks! I made a bit more progress - I had failed to provide the appropriate executable to call from the entrypoint specified in the compose file for the container. I do have one more question though: In the contract directory structure for the simple tp python, there is a dir called "packaging", and inside that a dir called "systemd", in which there are two files: sawtooth-simple-tp-python and also sawtooth-simple-tp-python.service. Do you know why these files are there and what they are used for? Why isn't it enough to just have the executable as a starting point and the relevant python files for the TP? I'm having trouble getting my new TP be recognized appropriately by my validator and I'm wondering if it has to do with these magic files. (Edit: it didn't, it was my own bug- my new TP is now working fine. But I'd still love to know the purpose of these files!!)
@Nabilel 1 When the test label is 'open', it refers to transaction latency, when the test is 'query', it refers to Read latency.
@unlimited Yes, you need modify the network configuration file such as the fabric-node.json according to your network topoloy.
open
@FlyingTiger thx for reply! i checked it but still not working...
@panyu2 in openig has same error T
@panyu2 in openig has same error T.T
Hello everyone, I am trying to run caliper with a different configuration using 2orgs with 3 peers each. When I run the main.js I get the follwing error [Orderer.js]: sendBroadcast - on error: "Error: 14 UNAVAILABLE: Connect Failed\n
Hello everyone, I am trying to run caliper with a different configuration using 3 orgs with 3 peers each. When I run the main.js I get the follwing error [Orderer.js]: sendBroadcast - on error: "Error: 14 UNAVAILABLE: Connect Failed\n
here are the configuration files I am using
config.txt
fabric.txt
Has joined the channel.
Does current caliper release work with Fabric v1.4?
@nordnes This work is on the process.
@nordnes This work is on the way.
@houqinghui alright, thanks for info (y)
@Nabilel 1 Your configuration files are so old, can you tell me how you get the org3's msp?
Has joined the channel.
Has joined the channel.
Hi.. I am trying to test Caliper for a Hyperledger fabric based network with 4 Orgs and 2 peers SOLO Orderer. My usescase is that caliper should not start my network using "start" command instead it should just communicate with the network that I have spin up. Can anyone give me some information on how to modify caliper for this working ?
@RamyaLaxmi The caliper is independent with the backend blockchain network. You can use the default user case to test the fabric network. of course you can use caliper to test your own fabric network that has been deployed by you. If you want to test your own fabric network, please follow the below steps:
a. you should modify the fabric configuration file such as fabric-node.json according to your own network topology;
b. remove the property command, which can start the docker containers of the blockchain nodes.
c. if you has installed the chaincode, you should modify the property deployed to true in the channel property.
@RamyaLaxmi The caliper is independent with the backend blockchain network. You can use the default user case to test the fabric network. of course you can use caliper to test your own fabric network that you spin up. If you want to test your own fabric network, please follow the below steps:
a. you should modify the fabric configuration file such as fabric-node.json according to your own network topology;
b. remove the property command, which can start the docker containers of the blockchain nodes.
c. if you has installed the chaincode, you should modify the property deployed to true in the channel property.
benchmark-caliper1.png
benchmark-caliper1.png
benchmark-caliper2.png
benchmark-caliper3.png
benchmark-caliper4.png
benchmark-caliper5.png
@mamtabhardwaj12 sorry, we have modified the config.json to config.yaml, just change the config.json to config.yaml in the command.
Hi @houqinghui,
Instead of config.json, we can use config .yaml and instead of fabric.json?
@mamtabhardwaj12 No, you can find the fabric.json in the directory caliper/network
@houqinghui there is no such file
@mamtabhardwaj12 Such as caliper/network/fabric-v1.2/2org2peergoleveldb/
benchmark-caliper6.png
@mamtabhardwaj12 You should choose the specific fabric version and network topolopy
Clipboard - January 30, 2019 3:43 PM
@mamtabhardwaj12
Hi @houqinghui,
Which fabric file i need to use
fabric-go.json,fabric-node.json,fabric-go-tls.json,fabric-node-tls.json
@houqinghui Let me try it.
@mamtabhardwaj12 You can use anyone, just try it.
@houqinghui ok.
@houqinghui I used the information from docker-compose.yaml file attached bellow
docker-composer.txt
@houqinghui you said that may files are so old, please point me to more up to date files. Thank you very much for your help
@Nabilel 1 You can clone the caliper from github.com. We modify the config.json to config.yaml, and move the command that can spin up the backend network from config.yaml to network configuration file such as fabric-node.json.
benchmark-updated-error.png
benchmark-updated-error.png
benchmark-updated-error.png
@mamtabhardwaj12 You could change 120000 to 240000 here `https://github.com/hyperledger/caliper/blob/master/src/adapters/fabric/e2eUtils.js#L261`, and have a try.
Hey, @FlyingTiger I am not able to see /adapters/fabric folder.....
try to find e2eUtils.js in your caliper project, and change 120000 to 240000 in the instantiateChaincode function
benchmark-caliper7.png
benchmark-caliper7.png
benchmark-caliper7.png
Could you please try 'npm test -- simple -c ./benchmark/simple/config.yaml -n ./network/fabric-v1.1/2org2peergoleveldb/fabric-go.json'
ok
Just have a try
Hi @FlyingTiger
Thank you for all your support.
I am getting the same error after using the fabric-go.json.Suppose I want to configure caliper in my blockchain network where chaincode is already Instantiated on fabric 1.3 then what I need to do?
Any document for that?
Hi @FlyingTiger
Thank you for all your support.
I am getting the same error after using the fabric-go.json.Suppose I want to configure caliper in my blockchain network where chaincode balance transfer is already Instantiated on fabric 1.3 then what I need to do?
Any document for that?
Hi @FlyingTiger
Thank you for all your support.
I am getting the same error after using the fabric-go.json.Suppose I want to configure caliper in my blockchain network where chaincode balance transfer is already Instantiated on fabric 1.3 then what I need to do?
Any document for that?
Screenshot from 2019-01-31 01-35-38.png
Quick question, what should be the endorsement policy of a single org fabric network for its configuration file?
The default i have found few places is- under policy of endorsement policy of config file,
"policy": { "2-of": [{"signed-by": 0}, {"signed-by": 1}]}
but those networks have 2 orgs. i am working with 1 org network. so thinking of if i should edit this block of code. if so, which way?
@mamtabhardwaj12 This is the caliper documentation web https://hyperledger.github.io/caliper/docs/Fabric_Configuration.html. Do you deploy the fabric v1.3 network? if so, you should install the fabric v1.2 or v1.1 and try it.
@Bayeed Maybe you can modify the value from 120000 to 600000 at the function `instatiateChainCode`'s first line "setConfigSetting" in the /src/fabric/e2eutils.js. Try it.
@Bayeed You can refer to the endorsement policy of the fabric documentation https://hyperledger-fabric.readthedocs.io/en/release-1.4/endorsement-policies.html. if you just have one org, why do you use the fabric network? Fabric is a Consortium blockchain, and need have two or more orgs which can form a consortium.
@mamtabhardwaj12 to the error 'Failed to send instantiate Proposal or receive valid response. Response null or status is not 200' Could you please open the info that is annotated at `https://github.com/hyperledger/caliper/blob/a0f638fe55b4aa44b3b3bab12d60e47e2898d8b8/src/adapters/fabric/e2eUtils.js#L338`. Then run and post information, thanks!
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/caliper?msg=N5bWmzKhR3jChKJct) @houqinghui I'm using the sample fabcar network. it has 1 org. trying to test it.
[ ](https://chat.hyperledger.org/channel/caliper?msg=mbwmLBnDqidB6xW2R) @houqinghui It doesn't work. getting the same errors.
@Bayeed can you tell me where the sample fabcar is ?
https://hyperledger-fabric.readthedocs.io/en/release-1.2/install.html
under fabric-samples
Screenshot from 2019-02-01 06-59-13.png
@Bayeed Ok, i find it.
@Bayeed I check the sample fabcar, when the network is spined up, the chaincode will be installed and instatiated, so you should set the `channel.deployed` true.
i ran the ./startFabric.sh file which brings up the network, creates necessary images, creates channel, joins channel. then i run the benchmark test which seems to install my chaincode on the peer. but fails to instantiate it. i had set channel.deployed to true from before
Has joined the channel.
Hi all, I have a question. Can Caliper be used to test the latest Sawtooth 1.1.2 ?
[ ](https://chat.hyperledger.org/channel/caliper?msg=m8F7DAYjfo8ZCc7L8) @FlyingTiger hey @FlyingTiger I saw that file at this location /src/adapters/fabric/e2eUtils.js . There is a throw statement. Still I am getting same error. Can you please help me out?
[ ](https://chat.hyperledger.org/channel/caliper?msg=m8F7DAYjfo8ZCc7L8) @FlyingTiger I saw that file at this location /src/adapters/fabric/e2eUtils.js . There is a throw statement. Still I am getting same error. Can you please help me out?
Has joined the channel.
Has joined the channel.
Has joined the channel.
hey guys! I'm troubling with monitor-docker error....
Can anyone can give advice of this problem? Thx.
I'm troubling with docker monitoring. Does anyone can give advice of this problem? Thx.
Hi. I'm troubling with docker monitoring. Does anyone can give advice of this problem? Thx.
Hi. I'm troubling with docker monitoring. Does anyone can give advice to this problem? Thx.
Hi. I'm troubling with docker monitoring. Does anyone can give advice for this problem? Thx.
Clipboard - February 7, 2019 5:00 PM
I'm using docker quick start terminal in Win7...
@FlyingTiger Is there any updates?
Has joined the channel.
Hi @KimYong 1 Can you please help me how you completed chaincode instantiated?
Has joined the channel.
Hello Team, I am currently exploring Hyperledger Indy and wanted to check if Caliper can be used to measure the performance of Indy platform ?
Has joined the channel.
Hi, anybody has any idea about why one might get endorsement error? I am using "simple" benchmark to test a custom fabric network.
endorse.png
I have edited open.js this way to pass in multiple arguments to the createCar function. multiple args are required by my fabcar chaincode
openjs.png
@mamtabhardwaj12 caliper github is updated with increased timeout duration. You should try it with updated version.
@mamtabhardwaj12 Caliper github is updated with increased timeout duration. You should try it with updated version.
Has joined the channel.
Hello. Is there a problem with the fabric-v1.2-deps dependency script? I have a clean caliper download, and get this error: "npm ERR! missing script: fabric-v1.2-deps".
caliper-testresult3.png
[ ](https://chat.hyperledger.org/channel/caliper?msg=TroE2dyACo5XZMQjR) @KimYong 1 Thanks @KimYong 1 Finally executed successfully.
@KimYong 1 Do you install the docker for windows? Maybe caliper only run on linux.
@Zeshun You can try it. https://hyperledger.github.io/caliper/docs/Sawtooth_Configuration.html
@HLFPOC Sorry, there is not a default use case about Indy, but you can try it following the below step.If you want to test the blockchain system that Caliper does not support now, you should write your own blockchain adapter. Firstly let’s look inside and learn about how the whole framework interacts with the backend blockchain system. When the benchmark engine is running, the master process of benchmark engine will call the user defined blockchain class to complete blockchain’s chaincode’s installion. Then, after the master process launches the corresponding clients, each client will do the test. During the test, the client will get current blockchain’s context, run the test scripts, release the blockchain’s context in the end, and return the performance statistics. Hence, if users intend to test the blockchain system which Caliper does not support, the bellows are what the users would concern about.
a. Realize the blockchain NBI according to your own blockchain system, for example, you should implement the funcitons ‘init’, ‘prepareClients’, ‘installSmartContract’, ‘getContext’, ‘releaseContext’, ‘invokeSmartContract’, ‘queryState’. Then you should add the blockchain type in the class blockchain’s constructor.
b. Add your own blockchain type into the blockchain’s constructor function.
c. Add predefined network files into the network folder.
d. Add your own network configuration file into the corresponding network folder.
e. Add your command which will be executed before or after test, if you want.
f. Define your own smart contracts.
g. Define your test module.
h. Define the installation script.
@HLFPOC Sorry, there is not a default use case about Indy, but you can try it following the below step.
If you want to test the blockchain system that Caliper does not support now, you should write your own blockchain adapter. Firstly let’s look inside and learn about how the whole framework interacts with the backend blockchain system. When the benchmark engine is running, the master process of benchmark engine will call the user defined blockchain class to complete blockchain’s chaincode’s installion. Then, after the master process launches the corresponding clients, each client will do the test. During the test, the client will get current blockchain’s context, run the test scripts, release the blockchain’s context in the end, and return the performance statistics. Hence, if users intend to test the blockchain system which Caliper does not support, the bellows are what the users would concern about.
a. Realize the blockchain NBI according to your own blockchain system, for example, you should implement the funcitons ‘init’, ‘prepareClients’, ‘installSmartContract’, ‘getContext’, ‘releaseContext’, ‘invokeSmartContract’, ‘queryState’. Then you should add the blockchain type in the class blockchain’s constructor.
b. Add your own blockchain type into the blockchain’s constructor function.
c. Add predefined network files into the network folder.
d. Add your own network configuration file into the corresponding network folder.
e. Add your command which will be executed before or after test, if you want.
f. Define your own smart contracts.
g. Define your test module.
h. Define the installation script.
@fridtjon Hi, yes, the command `npm install --no-save grpc@1.10.1 fabric-ca-client@1.2.0 fabric-client@1.2.0` is removed now , i will check it.
fabric-client
Hi.. Can anyone explain me if Caliper can help understand the following concepts in Caliper?
1. How is the throughput TPS calculated?
2. Scenario: Send Rate is 50tps and Throughput is 48tps. Is there a way to understand what affected delay in transaction which resulted in 48tps?
3. Can Caliper be configured to check performance of Fabric in following activities individually ?
a. Endorsement
b. Ordering
c. Committing
Hi.. Can anyone explain me understand the following concepts of Caliper?
1. How is the throughput TPS calculated?
2. Scenario: Send Rate is 50tps and Throughput is 48tps. Is there a way to understand what affected delay in transaction which resulted in 48tps?
3. Can Caliper be configured to check performance of Fabric in following activities individually ?
a. Endorsement
b. Ordering
c. Committing
Clipboard - February 14, 2019 9:10 AM
@houqinghui
I am experiencing this problem when testing multiple machines. I don't know how to solve it. I hope someone can help me, thank you.
Just run `npm install -g node-gyp node-pre-gyp` before you use command `node benchmark/simple/main.js` to run the simple test.
If you still have doubt on it, feel free to open it again.
@wangqq Run `npm install -g node-gyp node-pre-gyp` before you use command `node benchmark/simple/main.js` to run the simple test. You can try it.
ok
thank you
I will try it
NO
He did not solve the problem
@RamyaLaxmi 1. Caliper will record the submitting time and committing time (the time when the tx is committed on the ledger or when the failure occurred) for each tx.
So the send rate is calculated by (Succ+Fail) / (last submitting time - first submitting time).
The throughput is calculated by Succ/(last committing time - first submitting time), here only successful committed txs will be calculated. 2. Because the last committing time is greater than the last submitting time, and the (Succ + Fail) is greater than Succ, so the send rate is greater than the throughput. 3. Maybe not , but you can use the method "variable-controlling approach", for example you can fix the endorsement policy and modify the ordering.
@wangqq can you tell us the topoloy of your bachend fabric network?
ok
one orderer,two organizations and four peer
@wangqq 1. Are you sure that your fabric network is running successfully? 2. If successfully, please show me your benchmark config file and fabric network config file.
成功了
ok
please wait me
{
"caliper": {
"blockchain": "fabric",
"command" : {
}
},
"fabric": {
"cryptodir": "network/test/config/crypto-config",
"network": {
"orderer": {
"url": "grpcs://192.168.11.1:7050",
"mspid": "OrdererMSP",
"msp": "network/test/config/crypto-config/ordererOrganizations/test.com/msp/",
"user": {
"key": "network/test/config/crypto-config/ordererOrganizations/test.com/users/Admin@test.com/msp/keystore/f4417b39f283a135816b7b18e5fb6d01e2a699e74ee1b36766c17f3cd2cf5e8f_sk",
"cert": "network/test/config/crypto-config/ordererOrganizations/test.com/users/Admin@test.com/msp/signcerts/Admin@test.com-cert.pem"
},
"server-hostname": "orderer.test.com",
"tls_cacerts": "network/test/config/crypto-config/ordererOrganizations/test.com/orderers/orderer.test.com/tls/ca.crt"
},
"org1": {
"name": "Org1MSP",
"mspid": "Org1MSP",
"msp": "network/test/config/crypto-config/peerOrganizations/org1.test.com/msp/",
"user": {
"key": "network/test/config/crypto-config/peerOrganizations/org1.test.com/users/Admin@org1.test.com/msp/keystore/165d32ba9f6bdc84fb06ae074dababe83f3bf1689f005e33e7a46cba69b283da_sk",
"cert": "network/test/config/crypto-config/peerOrganizations/org1.test.com/users/Admin@org1.test.com/msp/signcerts/Admin@org1.test.com-cert.pem"
},
"peer1": {
"requests": "grpcs://192.168.11.2:7051",
"events": "grpcs://192.168.11.2:7053",
"server-hostname": "peer0.org1.test.com",
"tls_cacerts": "network/test/config/crypto-config/peerOrganizations/org1.test.com/peers/peer0.org1.test.com/tls/ca.crt"
},
"peer2": {
"requests": "grpcs://192.168.11.3:7051",
"events": "grpcs://192.168.11.3:7053",
"server-hostname": "peer1.org1.test.com",
"tls_cacerts": "network/test/config/crypto-config/peerOrganizations/org1.test.com/peers/peer1.org1.test.com/tls/ca.crt"
}
},
"org2": {
"name": "Org2MSP",
"mspid": "Org2MSP",
"msp": "network/test/config/crypto-config/peerOrganizations/org2.test.com/msp/",
"user": {
"key": "network/test/config/crypto-config/peerOrganizations/org2.test.com/users/Admin@org2.test.com/msp/keystore/5f139e317eeedfdfc409c651263d8db00eed97de5eba6343834434b66170c872_sk",
"cert": "network/test/config/crypto-config/peerOrganizations/org2.test.com/users/Admin@org2.test.com/msp/signcerts/Admin@org2.test.com-cert.pem"
},
"peer1": {
"requests": "grpcs://192.168.11.4:7051",
"events": "grpcs://192.168.11.4:7053",
"server-hostname": "peer0.org2.test.com",
"tls_cacerts": "network/test/config/crypto-config/peerOrganizations/org2.test.com/peers/peer0.org2.test.com/tls/ca.crt"
},
"peer2": {
"requests": "grpcs://192.168.11.5:7051",
"events": "grpcs://192.168.11.5:7053",
"server-hostname": "peer1.org2.test.com",
"tls_cacerts": "network/test/config/crypto-config/peerOrganizations/org2.test.com/peers/peer1.org2.test.com/tls/ca.crt"
}
}
},
"channel": [
{
"name": "mych",
"deployed": false,
"config": "network/test/config/mychannel_channel.tx",
"organizations": ["org1", "org2"]
}
],
"chaincodes": [
{"id": "simple", "path": "contract/fabric/simple/go", "language":"golang", "version": "v0", "channel": "mych","deployed": false}
],
"endorsement-policy": {
"identities": [
{
"role": {
"name": "member",
"mspId": "Org1MSP"
}
},
{
"role": {
"name": "member",
"mspId": "Org2MSP"
}
},
{
"role": {
"name": "admin",
"mspId": "Org1MSP"
}
}
],
"policy": { "2-of": [{"signed-by": 0}, {"signed-by": 1}]}
},
"context": {
"smallOperations": "mych",
"init": "mych",
"open": "mych",
"publish": "mych",
"query": "mych"
}
},
"info" : {
"Version": "1.2.0",
"Size": "2 Orgs with 2 Peers",
"Orderer": "Solo",
"Distribution": "Single Host"
}
}
Clipboard - February 14, 2019 10:26 AM
I suspect that the channel was not created, so I changed the name and recreated, but there was a problem.
@wangqq Do you modify the config.yaml ? i want to know which version of the fabric network you use.
@wangqq If this is the second run , you should modify the `channel.deployed` to `true`.
Hi, the bootcamp will hold at Mar 7~8,2019. Welcome everyone interested with Caliper to join Caliper's session and tutorial.
I try to make my own network and I modified fabric-go-tls.json to run caliper.
I can easily install chaincode, but however, when instantiating starts, there are some issues comes out.
Here is what I did.
1. I start caliper below this command.
`node benchmark/simple/main.js -c config.yaml -n fabric-go-tls.json`
```
info: [bench-flow.js]: ####### Caliper Test #######
info: [create-channel.js]: Sleeping 5s...
info: [join-channel.js]: Joining channels...
info: [install-chaincode.js]: installing all chaincodes......
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installed chaincode lotcc successfully in all peers
```
I saw chaincode is installed in my all peers, but there is a long time to wait to instantiate, the error comes out like below,
```
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345]
...
error: [instantiate-chaincode.js]: Failed to instantiate chaincodes: Error: All proposals were not good
at instantiate (/opt/gopath/src/github.com/hyperledger/caliper/src/adapters/fabric/e2eUtils.js:394:15)
at
I try to make my own network and I modified fabric-go-tls.json to run caliper.
I can easily install chaincode, but however, when instantiating starts, there are some issues comes out.
Here is what I did.
1. I start caliper below this command.
`node benchmark/simple/main.js -c config.yaml -n fabric-go-tls.json`
```
info: [bench-flow.js]: ####### Caliper Test #######
info: [create-channel.js]: Sleeping 5s...
info: [join-channel.js]: Joining channels...
info: [install-chaincode.js]: installing all chaincodes......
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installed chaincode lotcc successfully in all peers
```
I saw chaincode is installed in my all peers, but there is a long time to wait to instantiate, the error comes out like below,
```
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345]
...
error: [instantiate-chaincode.js]: Failed to instantiate chaincodes: Error: All proposals were not good
at instantiate (/opt/gopath/src/github.com/hyperledger/caliper/src/adapters/fabric/e2eUtils.js:394:15)
at
I try to make my own network and I modified fabric-go-tls.json to run caliper.
I can easily install chaincode, but however, when instantiating starts, there are some issues comes out.
Here is what I did.
1. I start caliper below this command.
`node benchmark/simple/main.js -c config.yaml -n fabric-go-tls.json`
```
info: [bench-flow.js]: ####### Caliper Test #######
info: [create-channel.js]: Sleeping 5s...
info: [join-channel.js]: Joining channels...
info: [install-chaincode.js]: installing all chaincodes......
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installed chaincode lotcc successfully in all peers
```
I saw chaincode is installed in my all peers, but there is a long time to wait to instantiate, the error comes out like below,
```
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345]
...
error: [instantiate-chaincode.js]: Failed to instantiate chaincodes: Error: All proposals were not good
at instantiate (/opt/gopath/src/github.com/hyperledger/caliper/src/adapters/fabric/e2eUtils.js:394:15)
at
I try to make my own network and I modified fabric-go-tls.json to run caliper.
I can easily install chaincode, but however, when instantiating starts, there are some issues comes out.
Here is what I did.
1. I start caliper below this command.
`node benchmark/simple/main.js -c config.yaml -n fabric-go-tls.json`
```
info: [bench-flow.js]: ####### Caliper Test #######
info: [create-channel.js]: Sleeping 5s...
info: [join-channel.js]: Joining channels...
info: [install-chaincode.js]: installing all chaincodes......
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installing chaincode lotcc...
info: [install-chaincode.js]: Installed chaincode lotcc successfully in all peers
```
I saw chaincode is installed in my all peers, but there is a long time to wait to instantiate, the error comes out like below,
```
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
warn: [e2eUtils.js]: instantiate proposal was bad: Error: failed to execute transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345]
...
error: [instantiate-chaincode.js]: Failed to instantiate chaincodes: Error: All proposals were not good
at instantiate (/opt/gopath/src/github.com/hyperledger/caliper/src/adapters/fabric/e2eUtils.js:394:15)
at
2. And here is my peer0.org4.lotty.com logs
```
2019-02-14 08:31:49.447 UTC [chaincode] Launch -> ERRO 2ad start failed: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
2019-02-14 08:31:49.454 UTC [endorser] SimulateProposal -> ERRO 2ae [lottychannel][07892249] failed to invoke chaincode name:"lscc" , error: timeout expired while starting chaincode lotcc:v0.01 for transaction 0789224956f34792da82407e5ea866b9690d2d9bea62fe156daa28764687d345
```
Does anyone know about solving this issue?
if you know, please let me know how to solve it.
@lotty02cho Maybe the chaincode lotcc has the error, please post fabric-ccenv docker logs, so we can locate the reason for the error.
Hi,the hyperledger bootcamp will hold at Mar 7~8,2019 HongKong. Welcome everyone interested with Caliper to join Caliper's session and tutorial.
Hi, can anyone confirm if Caliper is working with Fabric version 1.3 _
Hi, can anyone confirm if Caliper is working with Fabric version 1.3 _?
Has joined the channel.
@nordnes Yes, but there are two kinds of network topologies, later i will update it.
@FlyingTiger I try to use simple/go and instantiating chaincodes is now good. but when it start invoke and query, it shows like this.
```
error: [e2eUtils.js]: Failed to complete transaction [f0546...]:Error: Endorsement denied: Error: make sure the chaincode simple has been successfully instantiated and try again: getccdata lottychannel/simple responded with error: could not find chaincode with name 'simple'
at Object.invokebycontext (/opt/gopath/src/github.com/hyperledger/caliper/src/adapters/fabric/e2eUtils.js:1070:27)
```
ll
@Bayeed Do you have solved your error "endorsement denied " ? why does not `acc` have the property `money` in the fucntion `generateworkload()`?
@Bayeed Do you have solved your error "endorsement denied " ? why does not the variable`acc` have the property `money` in the fucntion `generateworkload()`?
@Bayeed Do you have solved your error "endorsement denied " ? why does not the variable `acc` have the property `money` in the fucntion `generateworkload()`?
@lotty02cho check simple was instantiated on lottychannel or mychannel? Maybe it was instantiated on mychannel.
TypeError: Cannot read property 'url' of undefined
@houqinghui
Clipboard - February 15, 2019 4:33 PM
I really don't know how to do it. Has anyone successfully tested multiple machines?
@wangqq Could you please post your network config file? The error means the network config file has not the line https://github.com/hyperledger/caliper/blob/master/network/fabric-v1.1/2org1peergoleveldb/fabric-go-tls.json#L24 or #L39
Has joined the channel.
@wangqq currently you have to provide CA endpoints, even if you don't use them. See [this issue](https://github.com/hyperledger/caliper/issues/311)
@houqinghui I have never used Caliper before, will use it for getting data regarding my dissertation project. Do you know of any good tutorials, etc .. to get me started?
@nordnes the official Caliper [documentation site](https://hyperledger.github.io/caliper/) is a good starting point for understanding the basic concepts. Additionally, you can find example benchmarks and network configurations for the supported platforms in the repository. If you have any questions, feel free to reach out to us!
@klenik thank you! :)
Has joined the channel.
Hey, I used caliper during Jan 2018 and at that time fabric v1.1.0 gave me 250 tps. And now I've pulled it recently (2-3 days before) the same simple chaincode gave me 60 tps with fabric v1.3.0
Im using the same machine
@FlyingTiger @klenik Thank you,,I have solved this problem
@Luxii can you share some more details? How is your network deployed?
[ ](https://chat.hyperledger.org/channel/caliper?msg=nzkGFtSNCi59SdcnD) @klenik @klenik my network is deployed in local.
Is it some change in core code that is causing this ?
Also can anyone tell me the average tps on 8 core 8 gb machine ?
for fabric v1.3
@Luxii
1) Measurements on local docker networks are not really trustworthy, who knows what else runs on your machine beside the Fabric network, plus how they compete for resources. Can you run the same test with an 1.1 Fabric backend?
2) A Fabric network is distributed among multiple machines, so it doesn't really depends on the stats of a single machine. Running Caliper on locally deployed networks is only for testing your user callback and chaincode implementations. The real deal begins when you start testing remotely deployed and distributed networks.
Hi all, I'm experimenting with some Sawtooth networks and workloads, and wondering if there is any way to control more aspects of the generated report? For example, I want to have more automated control over the name of the report and where it is saved. It would also be nice to have the report formatted as a CSV or something more data-friendly. This is because I plan to run many simulations with a variety of different network sizes under a variety of workloads, so a lot of data may be generated that needs to be organized. Does anyone have any suggestions for how to do this?? Please and thank you.
@nordnes You can refer to the Caliper documentation web https://hyperledger.github.io/caliper/docs/1_Getting_Started.html, it will guide you to use Caliper.
@amiec That is a good idea. I opened a issue about your problem. You can refer to https://github.com/hyperledger/caliper/blob/7502380504ca7ba832974839e18e118af1909a14/src/comm/bench-flow.js#L158, and `resultTable` contains the datas. You can export it to the json file, then prsent it in your visualization method.
I tried running a test for the simple fabric benchmark on caliper. Im getting the error "could not find module fabric-network" or "could not find module fabric-ca-client/lib/FabricCAClientImpl.js'. I tried doing an npm install for these but they keep failing. Ive also tried changing the fabric versions and changing the config.json file accordingly. Please advise
@GeorgePaulose
You need the fabric-client version to be installed above 1.3.0
@GeorgePaulose Please refer to Caliper documentation website[https://hyperledger.github.io/caliper/docs/1_Getting_Started.html]
@GeorgePaulose Please refer to Caliper documentation website[https://hyperledger.github.io/caliper/docs/1_Getting_Started.html] to find what you want.
@wangqq when i try and do an npm install, i get these errors:
Screenshot from 2019-02-18 10-05-54.png
Screenshot from 2019-02-18 10-05-14.png
npm grpc@1.10.1 -unsafe-perm
you try it
Clipboard - February 18, 2019 12:40 PM
@houqinghui
This problem is when the chain code is instantiated, but it has been shown to be successfully completed. Why is there an error? What is the problem?
Thank you
@klenik
[ ](https://chat.hyperledger.org/channel/caliper?msg=9iWCRf3wXxmeGRaiQ) @klenik thanks, for the response. Could you please tell me some average tps achieved in fabric v1.3 or any lower version ?
I have solved the problem and successfully run the test, thank you all.
@wangqq That is great, can you tell us how you solve the error "TypeError: cannot read property 'stack' of undefined"?
@houqinghui This problem is not a problem with caliper itself. It is a network problem. I checked the network log and found that the orderer connection failed. After solving the orderer, it succeeded.
@GeorgePaulose
1) Looks like your user doesn't have write access to so directories (beginning warning of your first screenshot; although it's under your user profile), and probably that's why the install fails in the end.
2) The missing files are available starting from the 1.1 SDK, so you need to install those. The full install for testing a Fabric 1.1 backend is the following (don't use `sudo` for the commands, work in some directory where your user has full access):
```
git clone https://github.com/hyperledger/caliper.git
cd caliper
npm install
npm run fabric-v1.1-deps
```
@GeorgePaulose
1) Looks like your user doesn't have write access to some directories (beginning warning of your first screenshot; although it's under your user profile), and probably that's why the install fails in the end.
2) The missing files are available starting from the 1.1 SDK, so you need to install those. The full install for testing a Fabric 1.1 backend is the following (don't use `sudo` for the commands, work in some directory where your user has full access):
```
git clone https://github.com/hyperledger/caliper.git
cd caliper
npm install
npm run fabric-v1.1-deps
```
@amiec @houqinghui I added some remarks on the report [generation issue](https://github.com/hyperledger/caliper/issues/320), feel free to leave additional remarks or request
@amiec @houqinghui I added some remarks on the report [generation issue](https://github.com/hyperledger/caliper/issues/320), feel free to leave additional remarks or requests
@Luxii The question of perfomance is not that simple. In the case of Fabric (and usually other middleware solutions) you need 3 things to talk about perfomance:
1. The middleware settings (like the Fabric network topology, policies, etc)
2. The applications deployed on top of the middleware (chaincodes in this case)
3. The workload of the system.
If one of the components is missing from a report, be suspicious about its validity :)
THE Fabric paper contains some measurements if you're interested: __Hyperledger fabric: a distributed operating system for permissioned blockchains__
Thanks @wangqq @klenik. There was a mismatch between the client versions, fabric versions and the docker-compose yaml file. Also i modified some user settings in linux
I had another doubt. In the caliper html report, there is a column called send rate and another called throughput. Whats the difference between these two?
@GeorgePaulose The send rate indicates how fast Caliper submits transactions, the throughput indicates how fast Fabric processes them.
[ ](https://chat.hyperledger.org/channel/caliper?msg=EenrevTSWqQcFP2Pi) @klenik @houqinghui thank you both for the quick response and open issue. It sounds like this is a work in progress and I'm not missing out on any existing functionality? I suppose a temporary hack could include a script that moves and renames each generated report file after it is created, and another script could parse the HTML to extract relevant data as the experimental runs are performed.
Has joined the channel.
Clipboard - February 19, 2019 3:02 PM
@houqinghui
@Luxii
Can someone help me solve the problem,please tell me,thank you.
@wangqq there is some problem with your fabric.json network file
check if you have specified url of orderer and peers there.
Thank you,I am too careless, my URL I wrote in uppercase, Thank you.
Why do i get instantiate failed error : `Benchmark return code: 1`
Im getting this with only v1.1.0 setup
v.1.3.0 is working fine
(node:86927) PromiseRejectionHandledWarning: Promise rejection was handled asynchronously (rejection id: 6138);I encountered this problem while testing the query.
@houqinghui
I feel that the value obtained is a bit low.,Thinking about whether something went wrong
Will it be the performance of the client and the performance of the entire network?
@wangqq Please show me your report, and are the clients and fabric network doployed in the same machine?
NO
a separate machine per node
{
"endorsement-policy": {
"identities": [
{
"role": {
"name": "member",
"mspId": "Org1MSP"
}
},
{
"role": {
"name": "member",
"mspId": "Org2MSP"
}
}
],
"policy": { "2-of": [{"signed-by": 0}, {"signed-by": 1}]}
}
}
{
"endorsement-policy": {
"identities": [
{
"role": {
"name": "member",
"mspId": "Org1MSP"
}
},
{
"role": {
"name": "member",
"mspId": "Org2MSP"
}
}
],
"policy": { "2-of": [{"signed-by": 0}, {"signed-by": 1}]}
}
}
{
"endorsement-policy": {
"identities": [
{
"role": {
"name": "member",
"mspId": "Org1MSP"
}
},
{
"role": {
"name": "member",
"mspId": "Org2MSP"
}
}
],
"policy": { "2-of": [{"signed-by": 0}, {"signed-by": 1}]}
}
}
Above is the configuration for the endorsment policy.
1. What does "signed-by": 0, "signed-by": 1 mean? Does it imply that the first 2 peers in the identities array or is it something else?
2. If i wanted the endorsement policy to be "any 2 peers" (or-condition), how will i rewrite the config?
3. If i wanted to nest the conditions, how would i write the config? ( Assume 3 peers, condition := 0 or (1 and 2) )
Thanks in advance :)
[ ](https://chat.hyperledger.org/channel/caliper?msg=mzMT2DRreL4jeFD96) Im getting this in the logs ```10 silly lifecycle caliper@0.1.0~e2e: Args: [ '-c', 'node ./scripts/test.js "marbles"' ]
11 silly lifecycle caliper@0.1.0~e2e: Returned: code: 1 signal: null
12 info lifecycle caliper@0.1.0~e2e: Failed to exec e2e script
13 verbose stack Error: caliper@0.1.0 e2e: `node ./scripts/test.js "marbles"`
```
what dependencies is it missing ??
@wangqq Do you modify the send rate or use the defaut send rate?
@GeorgePaulose 1. It implies the first 2 peer in the identities array
2. `"policy" : {"2-of": [{signed-by: 0}, {sign-by : 1},....]}` can address your requirement.
3. @klenik
I modified the sending rate myself.
@GeorgePaulose
2) correction: `policy" : {"1-of": [{signed-by: 0}, {sign-by : 1},....]}`
3) I think the value of a `signed-by` attribute can also be an `2-of` object
```
"policy": {
"1-of": [
{ "signed-by": 0 },
{ "signed-by": "2-of": [{ "signed-by": 1}, {"signed-by" : 2}] }
]}
```
3) I think the value of a `signed-by` attribute can also be an `2-of` object
```
"policy": {
"1-of": [
{ "signed-by": 0 },
{ "signed-by": { "2-of": [{ "signed-by": 1}, {"signed-by" : 2}] } }
]}
```
Thanks guys:thumbsup:
hey, i found this commit `Refactored Promise chains in core/client/blockchain/Fabric parts ` after which tps went down with some numbers for fabric network.
@Luxii hmm, that's strange. Client/Caliper side performance should only affect the sending rate, and not the processing rate of Fabric. I'm going to perform some measurements with the current state of Caliper (actually, with a new Fabric adapter), and I'll get back to you on this
@klenik sure.
When will caliper be compatible with fabric 1.4? Also do you guys know when the support came for 1.3 or what was the time period between the fabric release and the caliper integration?
Hi all, as suggested by Attila, we found the current rotating Caliper call schedule is kind confusing and not easy for people to keep track with.
So we're going to simplify the schedule to a fixed one, as every Wednesday, 9am UTC time.
@GeorgePaulose Based on the commit history, Fabric 1.4 is supported as of today. Generally about the time needed to support a new Fabric version: Caliper relies on the Fabric SDK, so first the SDK needs to provide support for new versions and features (the SDK is usually up2date with Fabric), only then can Caliper use/expose the new features/versions. We try to shorten this time as much as possible.
@klenik @houqinghui I modified the configtx. yaml file in the local caliper and rebuilt the network certificate and channel configuration file, but it showed a mistake. The orderer automatically quit. I found that it was a CA certificate problem. I wanted to use the certificate issued by ca, but I could use it before.
I don't have a certificate to use CA
Could you detail the exact steps? Are you sure the orderer fails because of the certs and not the genesis block?
@wangqq Could you detail the exact steps? Are you sure the orderer fails because of the certs and not the genesis block?
Clipboard - February 21, 2019 2:21 PM
@hurf What would be the agenda ?
[ ](https://chat.hyperledger.org/channel/caliper?msg=752fhQvmWK9TYiQXz) @hurf What would be the agenda ?
[ ](https://chat.hyperledger.org/channel/caliper?msg=E9vs8j9kWWjTrcXxb) @hurf What would be the agenda?
@houqinghui
Has joined the channel.
@wangqq The error shows that the supplied identity is not valid: x509. I think that the conflicting configuration information cause this error. Please check the confitx.yaml and the orderer configuration information.
@Luxii A fixed agenda, every Wednesday, 9am UTC time.
ok
thank you
Can somone explain to me what local and zookeeper clients are.? It says in the docs that local processes are forked to become blockchain clients but what exactly does that mean. Also as follow up, what exactly is happening in the update() function in src/gui/src/demo.js file. A startWatch is called before every test and sends the client object as argument to this demo.js file, which recursively calls the update() function.
Hey, I wanted to know what does `sendTransaction()` method do. I have seen its call in `invokByContext()` and was wondering why are we calling it twice.
Has joined the channel.
@GeorgePaulose The local clients mean that the clients run in the same machine, and zookeeper clients means the clients run in the different machines. `demo.js` is expected to visualize the performance of the backend system, but is not completed, you can ignore it.
@Luxii Can you give the location of the functioin you want to know?
Has joined the channel.
@houqinghui @klenik I have a question, the same machine, the same hardware configuration, the same network configuration, but the test results are completely different, I will check later, once is the result of the caliper update, once is the result of the caliper update, the updated The value is about 500 lower than the value before the update. I want to know what is the problem?
@wangqq Would you please list the last commit of the code version before you updated
I won't use that code to submit, I don't know if you can tell me where to submit.
I mean on your old version what is the last commit? you can use the command `git log` to get this information.
I mean on your old version what is the last commit? you can use the command `git log` to get this information. We need to know which commit resulted in this phenomena.
@wangqq If you are using Caliper to do long time or large txNumber test, it would be better to deploy Caliper on one machine and start the blockchain network on another machine.
ok
[ ](https://chat.hyperledger.org/channel/caliper?msg=rB67GdD7x7AYWeFMA) @houqinghui https://github.com/hyperledger/caliper/blob/027528a5f5e142f17c694e6648baec51cb4c2139/src/adapters/fabric/e2eUtils.js#L987
[ ](https://chat.hyperledger.org/channel/caliper?msg=rB67GdD7x7AYWeFMA) @houqinghui https://github.com/hyperledger/caliper/blob/027528a5f5e142f17c694e6648baec51cb4c2139/src/adapters/fabric/e2eUtils.js#L853
@GeorgePaulose Checkout my [comment](https://github.com/hyperledger/caliper/issues/299#issuecomment-465802329) on a similar question for some insights.
@Luxii As I see from the code, the `sendTransaction` function sends already endorsed transaction proposals to the orderer. So it's just the second part of the whole transaction life-cycle. (Although that file changed a bit since I last used it, so maybe @houqinghui could clarify it better.)
[ ](https://chat.hyperledger.org/channel/caliper?msg=8iJ322kQAj7Wt4MwG) @Luxii It depends, usually fixed issue is to review health metrics, next week we'll discuss hongkong bootcamp preparation and roadmap for this year.
Has joined the channel.
I want to benchmark my smart contract I developed in truffle/solidity. Is Caliper the right tool for me?
(The smart contract I'm making is a prototype of a decentralized DRM system if that helps)
@cadaroya Caliper has a limited support for Hyperledger Burrow, which supports solidity smart contacts. Do you deploy your smart contact in a closed/private network?
Has joined the channel.
@klenik I preferably would like to deploy it in a public network and check the benchmarks there (like ropsten, rinkeby). Is that possible?
@cadaroya Well, the support of additional platforms requires the implementation of an adapter for them, so techniqually it's possible and you're welcome to contribute that adapter :)
Check out the readme at this page: https://github.com/hyperledger/caliper/tree/master/src/adapters
@klenik :) Not sure at the moment if I could dive into that, but I'll look into it. :D If I choose to deploy it on a closed/private network however, can I then use burrow + caliper?
@cadaroya The Burrow adapter is still in its early stages, but yes, you can use it, and any feedback is welcome
If i wanted to test a multi-node network, with each node running on different machines, would i have to install caliper on each machine or should i run caliper on a separate instance and somehow pass a suitable a config file. How would I begin to approach this?
@GeorgePaulose No, Caliper needs to be run only on one machine. The network configuration file you use will contain the endpoints for the different nodes in your blockchain network. Whether these are deployed locally (with docker-compose) or remotely (on your favorite IaaS provider), Caliper doesn't care, it just needs an endpoint address for the nodes (`
@GeorgePaulose No, Caliper needs to be run only on one machine. The network configuration file you use will contain the endpoints for the different nodes in your blockchain network. Whether these are deployed locally (with docker-compose) or remotely (on your favorite IaaS provider), Caliper doesn't care, it just needs an endpoint address for the nodes ( `
Hi, I want to measure the performance of hyperledger fabric 1.1.0 deployed on 10 remote hosts. I want caliper to test network without starting and restarting it. Is there a way to do this? Could someone share links to setting caliper to work with remote hosts.
@RonaldReagan
1) Take any example network config file (under the network dir, staring with fabric-*).
2) Remove the command attribute from the beginning (contains the start and end script)
3) Modify the node entries according to your topology (how many peers, orgs, channels).
4) Make sure that the URL attributes of the nodes point to the appropriate remote address.
@RonaldReagan You also can refer to the Caliper documentation website https://hyperledger.github.io/caliper/docs/1_Getting_Started.html
Has joined the channel.
hey guys can anyone help me
@klenik hey bud do you know how i would generally benchmark any hyperledger network
i am creating a university project to benchmark hyperledger tps against iota
@RobiHarid The [Caliper doc site](https://hyperledger.github.io/caliper/docs/1_Getting_Started.html) is a good starting point for putting together benchmarks for the different Hyperledger platforms.
[ANNUAL CALIPER NEWSLETTER]
A new Fabric adapter has been added to Caliper with some long-awaited features.
Check out it's documentation page and try it: https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html
Any feedback is welcome!
Hi,to whom concerns the regular meeting, since the team will on the way to attend the bootcamp event on 3.7~3.8 at HongKong, tomorrow's meeting will be canceled. Welcome everyone who will attend the bootcamp event to join Caliper's activities at Table 3.
Has joined the channel.
Hi, I am new to caliper. While executing caliper i got like this "Benchmark return code: 1", but i did n't get any result........... can anyone explain what is that issue?
Hi, while executing simple benchmark using this comment -----> node ./scripts/test.js "simple" , i am facing issue like error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "go build contract/fabric/drm: /opt/go/pkg/tool/linux_amd64/link: signal: killed
"
at new createStatusError (/home/ubuntu/caliper/node_modules/grpc/src/client.js:64:15)
at /home/ubuntu/caliper/node_modules/grpc/src/client.js:583:15
error: [instantiate-chaincode.js]: Failed to instantiate chaincodes: Error: Failed to send instantiate Proposal or receive valid response. Response null or status is not 200.
at instantiateLegacy (/home/ubuntu/caliper/src/adapters/fabric/e2eUtils.js:575:19)
at
Hi, while executing simple benchmark using this comment -----> node ./scripts/test.js "simple" , i am facing issue like ```
``` error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 2 UNKNOWN: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "go build contract/fabric/drm: /opt/go/pkg/tool/linux_amd64/link: signal: killed
"
at new createStatusError (/home/ubuntu/caliper/node_modules/grpc/src/client.js:64:15)
at /home/ubuntu/caliper/node_modules/grpc/src/client.js:583:15
error: [instantiate-chaincode.js]: Failed to instantiate chaincodes: Error: Failed to send instantiate Proposal or receive valid response. Response null or status is not 200.
at instantiateLegacy (/home/ubuntu/caliper/src/adapters/fabric/e2eUtils.js:575:19)
at
@capriya Can you show the detailed log? if you want to use Caliper, the Caliper doc site[https://hyperledger.github.io/caliper/docs/1_Getting_Started.html] is a good place.
@capriya Can you show the detailed log? if you want to use Caliper, the ~Caliper doc site~https://hyperledger.github.io/caliper/docs/1_Getting_Started.html is a good place.
@capriya Can you show the detailed log? if you want to use Caliper, the Caliper doc sitehttps://hyperledger.github.io/caliper/docs/1_Getting_Started.html is a good place.
@capriya Can you show the detailed log? if you want to use Caliper, the Caliper doc site https://hyperledger.github.io/caliper/docs/1_Getting_Started.html is a good place.
@capriya How did you run Caliper? Through `npm test`? What benchmark did you execute?
@klenik i am running simple benchmark using ----- node ./scripts/test.js "simple"
@capriya Did you see some error messages during the execution? The report would be generated in your Caliper directory if the run was successful
@klenik
[ ](https://chat.hyperledger.org/channel/caliper?msg=sfox98JHvSHzSwdG9) i did n't get any error on on terminal it just print "Benchmark return code: 1", and also did n't get any report on caliper directory ubuntu@ubuntu:~/caliper$ node ./scripts/test.js "simple"
Benchmark return code: 1
ubuntu@ubuntu:~/caliper$
Has joined the channel.
Hi, i am trying to use Hyperledger caliper on a fabric-network i am running with composer. I am getting this error after running the benchmark/composer/main.js file error: [composer.js]: composer.init() failed at initialiseFabric(), code=1, stdout=, stderr=Error: No such container: peer0.org1.example.com
any idea what it is caused by?
Screenshot from 2019-03-05 13-40-43.png
Hi all, I am confused by the behavior of the benchmark specified in the benchmark configuration file. I am testing on a small, experimental Sawtooth network (Docker-deployed nodes, running on Ubuntu 18.04), and when I use the example config file and corresponding network (`node ./benchmark/simple/main.js -c ~/caliper/benchmark/simple/config-sawtooth.yaml -n ~/caliper/network/sawtooth/simplenetwork/sawtooth.json`) I get the following info reported to the screen:
Screenshot from 2019-03-05 13-40-43.png
which seems to be sending 10 transactions (instead of the 5 indicated in the config file), and seems to be sending them repeatedly!
In the second round, I see the following info:
next.png
which involves submitting 10, 11, 12, 13, 14 transactions? Which seems to have nothing to do with the 5 tx that are specified for this round... What is this behavior? Is there some sort of averaging happening? Where are these numbers coming from? In experimenting with my own configuration files, I've attempted to specify larger numbers of transactions and rates (for example, i want to be able to send about 1100 TPS because that is an empirical ceiling that's been seen for a single sawtooth node), and what I see is "Submitted: 0". I can't seem to find details about this behavior in the documentation and I'm very confused about what's actually happening, what's possible, and why. Your enlightenment would be greatly appreciated!! thank you
screenshot-newtab-2019.03.06-11-36-02.png
screenshot-newtab-2019.03.06-11-37-15.png
@amiec - the submitted count is a global total and not a "per round" basis
@capriya those are all docker errors, I'd recommend trying to start the containers manually (the command is listed in your upper image) and then inspecting the logs to look for a root cause
[ ](https://chat.hyperledger.org/channel/caliper?msg=KT9eCHEysHrPmFSW8) thanks
screenshot-www.google.com-2019.03.06-15-25-51.png
@capriya do the peer logs have any more information?
[ ](https://chat.hyperledger.org/channel/caliper?msg=JH2ypNxx5JKMBabTf) DEBUG [e2eUtils.js]: instantiateChaincode responses: i=0 {"code":2,"metadata":{"_internal_repr":{}},"details":"timeout expired while starting chaincode drm:v0(networkid:dev,peerid:peer0.org1.example.com,tx:f3325ebcd5e8c6cd5d9485277485d177ba1bcb4342f1818182b4cbe3a35deb4b)"}
2019-03-06T10:25:09+00:00 - DEBUG [e2eUtils.js]: instantiateChaincode responses: i=1 {"code":2,"metadata":{"_internal_repr":{}},"details":"timeout expired while starting chaincode drm:v0(networkid:dev,peerid:peer0.org2.example.com,tx:f3325ebcd5e8c6cd5d9485277485d177ba1bcb4342f1818182b4cbe3a35deb4b)"}
2019-03-06T10:25:09+00:00 - ERROR [instantiate-chaincode.js]: Failed to instantiate chaincodes: Error: Failed to send instantiate Proposal or receive valid response. Response null or status is not 200.
at instantiateLegacy (/home/ubuntu/caliper/src/adapters/fabric/e2eUtils.js:575:19)
at
@capriya Increase the chaincode start-up timeout for the peer containers by setting the following env. variable (to 600s for example):
`- CORE_CHAINCODE_STARTUPTIMEOUT=600s`
@amiec Are you using the up-2-date version of Caliper? The 1000 TPS throughput is also shady a bit.
Hey guys, a quick question: If the throughput TPS is calculated as Successful Transactions / Time used, then it's heavily affected by transaction timeouts. How does transaction timeouts affect the Throughput TPS stat in caliper, and does it count the time until transaction timeout?
@fridtjon I think they don't interfere on Caliper side, since only the successful transactions are taken into account when calculating the test duration (but I'd need to check the code to confirm this). However, transactions that time out still consume resources on the network side, so they can interfere with (~increase) the execution time of successful transactions. You can't negate this effect, and you shouldn't, since it's part of the system load (unsuccessful request hogging resources is common).
[ ](https://chat.hyperledger.org/channel/caliper?msg=4Ti42Ei7L2k3zddK3) @klenik Thank you very much! :smile:
[ ](https://chat.hyperledger.org/channel/caliper?msg=Xg7tTWXPnwDBrRQdR) CORE_CHAINCODE_STARTUPTIMEOUT=800s then also it not working..... and i tried another one in that e2eUtils.js file increase the timeout like this, this also give same issue.........async function instantiate(chaincode, endorsement_policy, upgrade){
Client.setConfigSetting('request-timeout', 600000);
[ ](https://chat.hyperledger.org/channel/caliper?msg=4MFsniL4sFsc95cLC) @nkl199 Thanks nkl199 - do you mind elaborating a little bit on what a given round does? For example, if I specify a benchmark that consists of a single round and has 10 tx specified, maybe at a fixed rate of 1 tps... what is going to actually happen in the delivery of the benchmark? Is there a built-in warmup phase? Why do I see the repeated reporting of Submitted: __ Success: __ Failure: __ ? What's going on there? I would really appreciate it.
[ ](https://chat.hyperledger.org/channel/caliper?msg=2txpTjzGRTjt6P8JR) @klenik Thanks, I might be on a slightly outdated fork of Caliper... I'll integrate the latest changes and see if that helps. Is there anything specifically that has been changed in the last two months that should affect the behavior with Sawtooth? Regarding the maximum TPS that Caliper can deliver... is there any idea what a current upper bound is? Any ideas for creating a situation that can handle higher TPS? Maybe multiple clients? Multiple instances of Caliper examining the same backend system? Though it seems like the functionality of delivering the workload and then assessing the metrics are tightly coupled in Caliper such that you can't expect Caliper to get accurate metrics if the workload is delivered by an external client?
@klenik @panyu2 can we create multiple channels in caliper for fabric and submit workloads to different channels?
The new adapter written by @klenik is able to support multiple channels. https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html#channels
Hi all, I try to run "simple" by using this comment --> node ./scripts/test.js "simple"
Screenshot from 2019-03-07 16:35:17.png
@capriya Check the peer logs to see why the chaincode instantiation failed. Unfortunately, the peers don't provide a detailed error message to the client apps (Caliper in this case), so you have to dig deeper by hand
[Caliper update news] The default way of running a benchmark changed. Instead of the traditional (and multiple) `main.js` files, an `npm run` script is provided. Check out the [docs](https://hyperledger.github.io/caliper/docs/1_Getting_Started.html#run-benchmark). Thanks to @gregdhill for the refactor!
Has joined the channel.
Has joined the channel.
https://docs.google.com/presentation/d/1MtPSBgDXf3v7DicxTNr9srB0jGmdWew2tqvItJHculo/edit
this is caliper tutorial slides.
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/caliper?msg=9qRGYyCtyHtjS7SmH) @panyu2 Is new adapter feature available in caliper master now? With multiple channels, can we submit transactions to multiple channels from caliper workload(benchmark tests)?
I think yes. The adapter PR is already merged. The latter one, @klenik would you please give some more details?
Has joined the channel.
Has joined the channel.
@rkrish82 Now, Caliper can support multiple channels and multiple orders, and you can refer to the doc https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html
Has joined the channel.
@rkrish82 Yes, multiple channels are supported in the same tests. Each chaincode has a unique ID, `contractId`, that defaults to the traditional chaincode `id` if not set. To create multiple channels:
```yaml
channels:
mychannel:
# ... other properties
chaincodes:
- id: marbles
version: v0
contractID: mymarbles
yourchannel:
# ... other properties
chaincodes:
- id: marbles
version: v0
contractID: yourmarbles
```
With the `contractID`, you can instantiate the same chaincode in different channels, and use the `mymarbles` or `yourmarbles` name to identify your chaincode in your client test module
@rkrish82 Yes, multiple channels are supported in the same tests. Each chaincode has a unique ID, `contractID`, that defaults to the traditional chaincode `id` if not set. To create multiple channels:
```yaml
channels:
mychannel:
# ... other properties
chaincodes:
- id: marbles
version: v0
contractID: mymarbles
yourchannel:
# ... other properties
chaincodes:
- id: marbles
version: v0
contractID: yourmarbles
```
With the `contractID`, you can instantiate the same chaincode in different channels, and use the `mymarbles` or `yourmarbles` name to identify your chaincode in your client test module
Has joined the channel.
@amiec Regarding your previous question about sending 10 txs instead of 5: I just noticed that you used sawtooth. Is it possible that your user test module submit 2 txs (as a batch) for every callback? This is a supported behavior, and the txs are counted accordingly, that's why your actual load differs from the config file.
[ ](https://chat.hyperledger.org/channel/caliper?msg=kg5F6h2Ychyvq7FQa) @amiec The benchmarks consider TPS to be that "witnessed" by the underlying target platform, so if driven at 2TPS with 2 clients, each client would drive at 1TPS. The flow is to stand the network up, deploy chaincode, create clients, and once all clients are created, to start issuing transactions. Each client reports back the number of successful/failed transactions and there is a user notification report that is presented to the user (success/fail count) and you can configure how frequent that is shown. You can add a warm-up/cool-down phase to the benchmarks by using the correct flag in the benchmark description- it will either ignore a number of start/end transactions, or a duration of start/end transactions...depending if you are running a "X transactions" or "Y seconds of transactions" style of test
Ah, thanks @klenik and @nkl199 ! I will dig into these possibilities. I appreciate your responses.
Has joined the channel.
composer-caliper.png
@HappyThoughts The error shows that the backend backchain network node `peer0.org1.example.com` is not started, you can check the `commamd` in the network configuration file, which can start the backchain network, then try it again.
website [hhh0](https://hyperledger.github.io/caliper/docs/Fabric_Configuration.html)
[ ](https://chat.hyperledger.org/channel/caliper?msg=2MwAYcS3PYNvv5QJh) @klenik Hi, klenik, I tried all the step you indicated, but I keep getting return code 1. Other than config.yaml and fabric*.json (under netwok) is there any other files I am supposed to edit?
I also tried the sample networks but they have almost same issue.
caliper_error.png
@RonaldReagan I think you're using an outdated version of Caliper. Some bugs have been addressed recently. Clone the repo again, and take a look at [this Fabric adapter configuration](https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html), for example. Nothing else should be changed (but you can remove the chaincodes from the config you don't need, so they don't take up time and storage in your nodes).
Hey all, a question about using the *Sawtooth* adapter... The network configuration file specifies the URLs for the REST-api containers, and from what I can see in the code, it is important to provide a complete array of the REST-api URLs for all validators, otherwise the workload won't be delivered proportionally across the number of nodes in the network. (right?) The other URL specified in the network config file is the validator's URL. From what I can see in the code, this is used to create an event subscription stream that is used to inform many of the other functionalities of Caliper - like the metrics and any errors coming from the validator (right?) My final question is: What if I have a larger network of dozens of validator nodes? Is there a risk of having biased information by only taking event subscriptions from a single one of them?? For example, if it is used to get transaction commit times, but for some reason this particular validator is less-well connected to the network than other peers and is therefore receiving blocks a little later than others... or is on a machine that is squeezing it out in terms of resource availability. What are people's thoughts on this matter?
@amiec 1. Yes, you are right. The REST-api is used for submitting batches and querying (Fetches a particular leaf from the current state) . 2. In caliper, the validator URL is used for subscribe event with block commit, then get batch commit event message to update the batch commit status. 3. Yes, the Sawtooth adapter only taking event subscriptions from a single one of them. The following URL is the white paper from the Hyperledger Performance and Scale WorkingGroup. https://www.hyperledger.org/wp-content/uploads/2018/10/HL_Whitepaper_Metrics_PDFVersion.pdf
Appendix A: Latency Calculation Examples in the paper, @amiec could have a look
Has joined the channel.
Hello, I'm new to the caliper development community so please forgive my asking to some simple questions: Now I'm in the getting started page, and I already use Fabric v1.1.0 to started a network with three organizations. But the *Run Benchmark* give me the code `npm run bench -- -c yourconfig.json -n yournetwork.json`, where I couldn't find any configuration file in my Hyperledger with .json type, and all of them are .yaml files. I also checked the Fabric Configuration and ran `npm run fabric-v1.1-deps`, but it outputs error like the one in the screen shot. My operating system is *18.2.0 Darwin Kernel Version 18.2.0*. Link: https://hyperledger.github.io/caliper/docs/1_Getting_Started.html. Thanks a lot for the help!
caliper-error-fabric-v1.1.png
@Jasonyou -- -c benchmark/simple/yourconfig.yaml, caliper now uses yaml config. Sorry for not updating help doc. To your second question, maybe this is mismatch for the versions of node11.10.1 and grpc1.10.1. node8.X is ok for grpc 1.10.1. Of course, you could find a version of grpc for node11.10.1, and have a try. And if you find, run calilper test OK, please contribute to caliper. Thanks!
Thanks for the explanation! I will check if that works!
Has joined the channel.
I want to configure calliper to my existing running network have chain code installed and instantiated on it .
what changes do I need to made so that the below steps won't be executing while running the bench -
1. no channel installation
2.no chaincode installation and instantiation
@Kazekagegara 1. you could edit "deployed": true, https://github.com/hyperledger/caliper/blob/master/network/fabric-v1.1/2org1peergoleveldb/fabric-go.json#L53 on network config
If you use fabric adapter not fabric-ccp adapter, caliper query whether chaincode is installed and instantiated, if it is , caliper has no chaincode installation and instantiation
@FlyingTiger I am using fabric-ccp adapter ,
made deployed:true . channel creation step is skipping .
@FlyingTiger
trying for fabric 1.4 . but using fabric adapter . will it be working . ?
@FlyingTiger I am using fabric adapter ,
made deployed:true . channel creation step is skipping .
trying for fabric 1.4 . but using fabric adapter . will it be working . ?
@FlyingTiger I am using fabric adapter ,
made deployed:true . channel creation step is skipping .
trying for fabric 1.4 . but using fabric adapter . will it be working . ?
or do I need to downgrade to fabric 1.2 ?
@FlyingTiger @klenik
command : npm run bench -- benchmark/simple/config.yaml -n network/fabric1.4/2orgs2peercouchdb/fabric-go.json
@Kazekagegara 1. Caliper supports fabric v1.0~1.4, you can choose the right version adaptor according to your fabric network.
@Kazekagegara 1. Caliper supports fabric v1.0~1.4, you can choose the right version adaptor according to your fabric network.
2. the command : `npm run bench -- -c benchmark/simple/config.yaml -n network/fabric-v1.4/2org2peercouchdb/fabric-go.josn`
@Kazekagegara 1. Caliper supports fabric v1.0~1.4, you can choose the right version adaptor according to your fabric network.
2. the command : `npm run bench -- -c benchmark/simple/config.yaml -n network/fabric-v1.4/2org2peercouchdb/fabric-go.josn`
3. You should delete the command property https://github.com/hyperledger/caliper/blob/f8b2755532421a42a5bb777b68045ad92fff2933/network/fabric-v1.1/2org1peergoleveldb/fabric-go.json#L4
camphoto_959030623.JPG
@Kazekagegara The screenshot is not blurring, please upload the clear picture
Screenshot (134).png
Screenshot (133).png
@Kazekagegara I donot know why you come accross this error, please checkout the version of nodejs. If you want to test your own fabric network, you can follwo the below steps:
The caliper is independent with the backend blockchain network. You can use the default use case to test the fabric network. Of course you can use caliper to test your own fabric network that has been deployed by you. If you want to test your own fabric network, please follow the below steps:
a. You should modify the fabric configuration file such as fabric-node.json according to your own network topology;
b. Remove the property `command`, which can start the docker containers of the blockchain nodes.
c. If you has installed the chaincode, you should modify the property `deployed` to `true` in the channel property.
@Kazekagegara I donot know why you come accross this error, please checkout the version of nodejs. You can refer to [the doc website](https://hyperledger.github.io/caliper/docs/1_Getting_Started.html)
The caliper is independent with the backend blockchain network. You can use caliper to test your own fabric network that has been deployed by you. If you want to test your own fabric network, please follow the below steps:
a. You should modify the fabric configuration file such as fabric-node.json according to your own network topology;
b. Remove the property `command`, which can start the docker containers of the blockchain nodes.
c. If you has installed the chaincode, you should modify the property `deployed` to `true` in the channel property.
@Kazekagegara @FlyingTiger The Fabric CCP adapter also supports skipping creating channels and deploying chaincodes. See the channel's `created` attribute. Installed and instantiated chaincodes are also checked without any additional configuration needed.
[ ](https://chat.hyperledger.org/channel/caliper?msg=jydgAPXwejA2iyMjY) @houqinghui @klenik @houqinghui @FlyingTiger node version : 8.15
[ ](https://chat.hyperledger.org/channel/caliper?msg=NKdyymootDRCv67k2) removed command and made deployed true . but still facing the error
@Kazekagegara You seem to miss an argument when invoking the query function of the adapter from your user callback
Are you running the `simple` example without modifications?
@klenik yes . not modified anything in terms of chaincode
@Kazekagegara It's a bug in the query user module implementation. Try using the new Fabric adapter for the example:
```
npm run bench -- -c benchmark/simple/config.yaml -n network/fabric-v1.1/2org2peercouchdb/fabric-ccp-go.yaml
```
(Note, this config is for v1.1, we'll add example configs for 1.4 soon)
@klenik should I use fabric 1.1 version or can I go with fabric 1.2 or 1.4 ?
I think account_array is [] https://github.com/hyperledger/caliper/blob/master/benchmark/simple/query.js#L20
@Kazekagegara When "deployed": false, the test has the error?
@Kazekagegara I tested on my host, it is *OK* for configure calliper to existing running network, Did you modify some existing file, such as benchmark/simple/open.js or benchmark/simple/query.js?
@FlyingTiger for simple chaincode , haven't modified anything .
Has joined the channel.
Has joined the channel.
Hi Any idea if query works in caliper
its failing for me everytime
Clipboard - March 15, 2019 6:23 PM
My transactions are failing while testing with Caliper / Composer with "the current identitiy with the name 'admin'... must be activated". I'm using hlfv1.2 with couchdb. I can successfully run the basic-simple-network benchmark and my chaincode works locally. Any help is appreciated.
Here are the logs:
2019-03-15T16:55:28.793Z ERROR :HLFConnectionManager :fabric-client() [client-utils.js]: sendPeersProposal - Promise is rejected: Error: transaction returned with failure: Error: The current identity, with the name 'admin' and the identifier '01899e04161a3a6d64670504fa122e55818295352929b6a616333a3739fde3f2', must be activated (ACTIVATION_REQUIRED)
at /home/pfm/HyperledgerComposer/node_modules/fabric-client/lib/Peer.js:114:16
at /home/pfm/HyperledgerComposer/node_modules/grpc/src/client.js:586:7 {}$
2019-03-15T16:55:28.794Z WARN :HLFQueryHandler :queryChaincode() query payload returned an error: Error: transaction returned with failure: Error: The current identity, with the name 'admin' and the identifier '01899e04161a3a6d64670504fa122e55818295352929b6a616333a3739fde3f2', must be activated (ACTIVATION_REQUIRED) {}$
2019-03-15T16:55:28.795Z ERROR :HLFConnection :ping() {"message":"Error trying to ping. Error: transaction returned with failure: Error: The current identity, with the name 'admin' and the identifier '01899e04161a3a6d64670504fa122e55818295352929b6a616333a3739fde3f2', must be activated (ACTIVATION_REQUIRED)","stack":"Error: Error trying to ping. Error: transaction returned with failure: Error: The current identity, with the name 'admin' and the identifier '01899e04161a3a6d64670504fa122e55818295352929b6a616333a3739fde3f2', must be activated (ACTIVATION_REQUIRED)\n at _checkRuntimeVersions.then.catch (/home/pfm/HyperledgerComposer/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:863:34)\n at
Has joined the channel.
@PranavBhardwaja67 This error is is `Endorsement denied`, do you run the sample successfully? if so , you should use `docker ps -a` to check whether the old containers is live, then you can use `docker rm $(docker ps -aq);docker rmi $(docker images dev* -q)` to remove them, next you can run it again.
@pfm do you run the caliper sample or use caliepr to test your own network? It sounds like your CA server does not know of that id and it is not bound to the Network Admin in the business network. You have to run `composer identity bind `as an existing participant in the business network. This is the act of the existing business network participants agreeing (via blockchain transaction) that the new business network participant /admin can join and use their identity.
[ ](https://chat.hyperledger.org/channel/caliper?msg=Kz4xhbyqJDDNjy8NC) @houqinghui Hi, Thanks for the response. But 1st question Why is endorsement required while hitting the query method ? For Reading the state, we dont need endorsement .
@PranavBhardwaja67 Do you mean that you got the error in the query process, while you donot get the error in the init process?
@klenik Do you have any suggestions about @PranavBhardwaja67 's question?
@PranavBhardwaja67 One of the sample benchmarks use the normal transaction workflow for queries, since the query API is limited. Try the new Fabric adapter, its query API is more flexible and doesn't perform the entire transaction flow.
https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html
Has joined the channel.
can anyone help me to integrate H/L fabric with caliper?
@sanket1211 Start at the first page of the Caliper docs: https://hyperledger.github.io/caliper/docs/1_Getting_Started.html
Then you can start experimenting with the samples. The Fabric adapter docs page should be the next step: https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html
If you have any specific question, feel free to ask
[ ](https://chat.hyperledger.org/channel/caliper?msg=dn6nvkeza866khXAH) @klenik Thanks for the response . I will test it out and get back ..
@houqinghui Thank you for your response. I am only getting the error when I am testing my own network. The samples run successfully. I will try your suggestion and respond back.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
test.png
.
g
[ ](https://chat.hyperledger.org/channel/caliper?msg=R3QFLgAjKyhr8vvfc) @houqinghui Sorry for being naive, new to caliper. Do, I need to have a backend fabric network running before I run that command or the command will do it itself?
@swmdwn There are two approaches:
1) The network configuration file (specified by `-n`) contains a `caliper.command.start/end` attribute, that can run artbitrary scripts, e.g., start a Fabric network. In this case you just run the `npm run bench ...` command.
2) Caliper can also connect to an already running Fabric network. In this case you don't need the `caliper.command.start/end` attribute in the config file.
The sample `-n` network config files all contain the `caliper.command.start/end` attribute, so you can just simply run the `npm run bench ...` command and a local Docker-based Fabric network will be started for you.
@HappyThoughts When the send rate is beyond the capability of the backend blockchain network, the transactioins may fail. However, the screenshot shows that your transactions all failed. do you modify the config file?
@HappyThoughts - it looks like you are running a benchmark on your own Business Network too, I'd recommend putting some heavy debug lines into the benchmark code you are running to assist diagnose
Has joined the channel.
Has joined the channel.
Has joined the channel.
error: [Orderer.js]: sendBroadcast - on error: "Error: 2 UNKNOWN: Stream removed\n at Object.exports.createStatusError (/opt/gopath/src/github.com/hyperledger/caliper/caliper/node_modules/fabric-client/node_modules/grpc/src/common.js:87:15)\n at ClientDuplexStream._emitStatusIfDone (/opt/gopath/src/github.com/hyperledger/caliper/caliper/node_modules/fabric-client/node_modules/grpc/src/client.js:235:26)\n
when execute command npm run bench -- -c benchmark/simple/config.yaml -n network/fabric-v1.4/2org2peergoleveldbtest/fabric-go.json
i try to test already exists fabric network
i Modified the file fabric-go.json
@whoneedi It looks like a connection issue with the orderer node. What did you modify in the config?
Has joined the channel.
Hi I am following the step by step caliper test on my composer. I found that there is no main.js in root "/caliper/benchmark/composer" when I try to run the command "node main.js -c my-config.json" Does any one have any idea of solving this issue?
Caliper is updated, you should use `npm run bench -- -c your config file -n your network config file` in the caliper directory. @fengbuzhi
[ ](https://chat.hyperledger.org/channel/caliper?msg=LQYNPNtNkrH37pbjJ) @klenik {
"caliper": {
"blockchain": "fabric",
"command" : {
}
},
"fabric": {
"cryptodir": "network/fabric-v1.4/config/crypto-config",
"network": {
"orderer": {
"url": "grpc://localhost:7050",
"mspid": "OrdererMSP",
"msp": "/opt/gopath/src/github.com/hyperledger/fabric-samples/first-network/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp",
"server-hostname": "orderer.example.com",
"tls_cacerts": "network/fabric-v1.4/config/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt"
},
yes,i try to use fabric-samples/first-network to test with caliper
i edit msp
i edit msp and port
and port
fabric-go.txt
[ ](https://chat.hyperledger.org/channel/caliper?msg=LQYNPNtNkrH37pbjJ) @klenik thank you, i have fixed it, because config was not properly set.
tls
Hi does anyone have experience of testing composer network in caliper? I found the official page lots of mismatch with the file downloaded from github.
"Creating couchdb.peer0.org2.example.com ... error " occurs when running composer in caliper.
Does anybody know why I see the warning: "warn: [sawtooth.js]: Warn: Received message of unknown type: 700" while running benchmarks with a Sawtooth backend? What is the client delivering that's leading to this? Thank you!
oh and one more for you: I always see: "error: [monitor-docker.js]: TypeError: Cannot read property 'id' of undefined" directly after I see "client exited" while running a benchmark. Where is this coming from and is it a problem for anything? Thank you again.
@fengbuzhi can you show me the detailed logs?
@amiec https://github.com/hyperledger/sawtooth-core/blob/master/protos/validator.proto#L155 this maybe give you a clue. Now Caliper only support sawtooth 1.0.5, which version of sawtooth you use? The TypeError is not ref to sawtooth, so avoid it.
Hi, I want to work on caliper for my customized network, i did changes in the config.yaml and network file, but i am getting an error like this
error@caliper.png
My network does not have any suffix like "example.com",
Has joined the channel.
Has joined the channel.
Do we need have a network set up endorsers
is there any dependency of caliper that it works only with endorsement peers.
Has joined the channel.
@lucky114407 - the errors show above are relating to not finding the specified crypto material files. Are you using crypto material that you have generated yourself? If so you will have to modify the fabric network file that you are specifying as the -n flag to match your config structure
@nkl199 thanks that got solved, but getting new error, but i did not mention have any endorsement policy
@nkl199 thanks that got solved, but getting new error, but i did not have any endorsement policy
error2@caliper.png
got solved this error:slight_smile:
Has joined the channel.
thank you @nkl199
Hi.. I am getting this error, how can I fix this?
caliper error.PNG
will need any errors shown above that to assist, or actual logs from the docker containers
@ishanvi.anavkar Did you run the test succefully, or can you show the detailed logs?
Has joined the channel.
Hi, is there any way to get the time stamps of when a transaction was submitted and when it was committed ? Can I write a chaincode that can fetch these details for a particular transaction ? How can I do this ?
hey guys can anyone help me use caliper distributed test
when i try it just pauses
Clipboard - March 31, 2019 8:11 PM
Clipboard - March 31, 2019 8:11 PM
@RobiHarid Do you have any errors or more detaild information?
[ ](https://chat.hyperledger.org/channel/caliper?msg=HzRRr5CxHojBiBSvR) @houqinghui No I want to run it for fabric network . I am running it for the first time. Can you please tell the steps to run the test.
@ishanvi.anavkar You can refer to [the caliper docs](https://hyperledger.github.io/caliper/docs/1_Getting_Started.html). If you want to run caliper to test the default fabric network, you can run `npm run bench -- -c benchmark/simple/config.yaml -n network/fabric-v1.4/2org2peergoleveldb/fabric-go.json` before you install fabric-client and fabric-ca-client.
I ran this command but I m getting the error whose screen shot I shared.
I ran this command but I m getting below is the log
Hi...When I run the command* npm run list* I don't get any Available Benchmarks
What do i refer to learn how to create config files for testing my fabric project ?
Can I use caliper to test my chaincode throughput in development enviornment of fabric also(with 1 organisation and one peer)
How to use caliper to test your own blockchain fabric network
@ishanvi.anavkar You need to create a network configuration file that matches your Fabric network topology and participants.
For the old Fabric adapter: https://hyperledger.github.io/caliper/docs/Fabric_Configuration.html
For the new Fabric-CCP adapter: https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html
Then pass this file's path to the `-n` parameter of the `npm run bench --` command
@ishanvi.anavkar @VinayakBhat You need to create a network configuration file that matches your Fabric network topology and participants.
For the old Fabric adapter: https://hyperledger.github.io/caliper/docs/Fabric_Configuration.html
For the new Fabric-CCP adapter: https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html
Then pass this file's path to the `-n` parameter of the `npm run bench --` command
thank you sir
Thanks..I will try this.
when I run the tests on my chaincode, with all the default configurations, caliper is giving me READ_CONFLICT error, how do I solve this ?
this is for fabric
How do I solve this issue ? I am only trying read and write something on the ledger in every transaction. Caliper is saying that an invalid transaction has been submitted because there is a MVCC_READ_CONFLICT
That's a Fabric error, meaning your parallelly executed transactions read and updated the same key.
Doc: https://hyperledger-fabric.readthedocs.io/en/latest/readwrite.html
:point_up_tone1: beat me to it :joy:
Has joined the channel.
Has joined the channel.
Has joined the channel.
https://www.ibm.com/blogs/blockchain/2019/04/does-hyperledger-fabric-perform-at-scale/
I am running the caliper on VM. How can I run two containers?
.. can you explain a little more please?
I've read about the fabric CCP and the network config file works fine with HLF 1.4 even if the file was located in the 1.2 directory
Is it intended that there are no default CCP network configuration in the network/fabric-v1.4 directory?
FYI, I was trying to do benchmarks on Kafka based network with multiple orderers and it worked like a charm
searching for answers, PR no.401 says a refactoring of the project will happen, but when will it be merged?
@narsimplyme There aren't any 1.4 CCP example configs yet. But you're right, the only difference between a 1.1 and 1.4 config file is that they start different docker-compose files. But if you remove the commands, then the config files are identical.
And that was the main reason behind this adapter: support every Fabric version transparently. The only difference between versions is, that for Fabric v1.0 you need to provide event URLs for the peers, and there are some version-specific features (private collection, CouchDB index deploy, java chaincodes). Other than these, the user experience with the CCP adapter is version agnostic :) (I hope :D )
@klenik Thank you for the answer.
[ ](https://chat.hyperledger.org/channel/caliper?msg=ucsCm7MLmkq643HKT) @nkl199 Me and my team are running caliper test on the VM on same server. But we cannot run the test simultaneously we get the error container already in use, rename the container. As per my knowledge there is one container per port.So how can we run the test simultaneously on the same server ?
@ishanvi.anavkar If I understand correctly, you want to run two Caliper measurements simultaneously on two separate local Fabric network. In this case you have to ensure that the node/container names in the two network don't conflict. By appending some postfix to the container names, for example, network1, network2, etc. And you need to separate network configuration files that point to the appropriate container names/addresses and ports.
[ ](https://chat.hyperledger.org/channel/caliper?msg=GtQre7BHkWs3uRG2x) @klenik We are running it on same fabric network. We are running it to test the sample caliper network npm run bench -- -c benchmark/simple/config.yaml -n network/fabric-v1.2/2org2peercouchdb/fabric-go.json
[ ](https://chat.hyperledger.org/channel/caliper?msg=Ht9JXtnotejw8tsGT) We are running it simultaneously on the same server from different systems.
[ ](https://chat.hyperledger.org/channel/caliper?msg=Ht9JXtnotejw8tsGT) @ishanvi.anavkar did you change "deployed": false, to true on the second VM's fabric-go.json? It might be the problem
using my CCP settings to run multiple test together runs just fine
created: true
the .json and .yaml words are bit different but has similar structure, so I think that's it if what I have understood is right
using my CCP settings to run multiple test together runs just fine
created: true . is what I set in my yaml file
the .json and .yaml words are bit different but has similar structure, so I think that's it if what I have understood is right
@narsimplyme The old Fabric adapter uses json for the config, the CCP adapter uses yaml. Their structure is quite different, but their content has some similarities of course
Hi all, I'm struggling with some Sawtooth and Caliper experiments that are reporting measurements that I don't understand and that conflict with what I believe to be actually happening. I would like to examine my network's behavior as the workload is being delivered, perhaps by examining container logs in real-time, or perhaps I should figure out how to use Grafana to view real-time metrics in a more user friendly way. What are your tips/suggestions/wisdom for debugging approaches for me? How do I watch my logs in real time? Any votes for Grafana? thank you!! help!
@amiec 1. Can you show me the Caliper logs and explain the conflicts detailedly? 2. Maybe you should examine the container logs in real-time currently. Grafana will be integrated as soon as possible.
Has joined the channel.
how to write a CCP adapter uses yaml to measure a fabric network with the Topology configuration below
2 orderers, 4 peers, 1 CLI, 4 Kafkas, 3 Zookeepers from https://github.com/keenkit/fabric-sample-with-kafka
Has joined the channel.
when I execute this command for Hyperledger Caliper - npm run bench -- -c benchmark/simple/config.yaml -n network/fabric-v1.4/2org2peergoleveldb/fabric-go.json
got an error attached in png
Screenshot 2019-04-08 at 11.42.59 AM.png
could anyone help how to test performance in Hyperledger Composer using caliper
Screenshot 2019-04-08 at 11.45.44 AM.png
@karanp0987 - that is a missing module error, have you performed the `npm run composer-deps` command?
@nkl199 already issues this command but encountering errors, could you please give steps for Hyperledger Caliper for composer Please it would be very helpful I already tried steps on websites but in that not really helpful resources thanks please help
@karanp0987 - in the root caliper directory:
- remove all node modules currently there (`rm -rf ./node_modules`)
- make sure there is no package lock file (`rm -f package-lock.json)
- install base caliper items `npm install`
- install composer specific items (`npm run composdr-deps`)
- run the benchmark as you have been doing
@karanp0987 - in the root caliper directory:
- remove all node modules currently there (`rm -rf ./node_modules`)
- make sure there is no package lock file (`rm -f package-lock.json)
- install base caliper items `npm install`
- install composer specific items (`npm run composer-deps`)
- run the benchmark as you have been doing
Has joined the channel.
Has joined the channel.
rkrish82
How can I get all the latency for the benchmark, rather than the Min/Max, Avg Latency
Do I have to write my own logging codes to do that?
@nkl199 hello how to test performance of my composer business network with Hyperledger Caliper, I installed successfully caliper thanks
is it you "own" business network, or a sample?
@karanp0987 You donot write you own logging codes to do it, you can get the data from the `result` in the class `client.js`. The data is not stored in the caliper, you can store it and get it.
[ ](https://chat.hyperledger.org/channel/caliper?msg=qnQ2g5fEiQwxfk4kY) @houqinghui Have you read the sample test results on the readme of the Fabric-test/PTE ? (https://github.com/hyperledger/fabric-test/tree/master/tools/PTE)
I was wishing to create reports like orderer latency, e2e latency and so on to identify whats the bottleneck of the network
Clipboard - April 10, 2019 11:22 AM
Clipboard - April 10, 2019 11:23 AM
[ ](https://chat.hyperledger.org/channel/caliper?msg=AB4StQzXsdKKXWFNp) @Ruben-Joseph-Halder googling a bit, it says that you have to put --save at the back of the npm install
@Ruben-Joseph-Halder This is an warning, you have installed the packages. You can excute `npm prune`. Do you run the Caliper successfully?
@nkl199 yes I created business network for my learning project so that's why i need to check performance can you guide me how to change caliper basic network performance to my business network code test
Has joined the channel.
Hi team where is my sample application fit into the cliper architecture?
@nwalisundara 1. If you blockchain system is not supported, you can refer to [this doc](https://hyperledger.github.io/caliper/docs/Writing_Adapters.html) to write your blockchain's adaptor, then you can use Caliper to test your blockchain system. 2. If your want to test your own blockchain network that supported by Caliper, you can refer to [the doc](https://hyperledger.github.io/caliper/docs/1_Getting_Started.html)
[ ](https://chat.hyperledger.org/channel/caliper?msg=Yvj5FG682EjBdYuZz) @houqinghui I didnot run it successfully
[ ](https://chat.hyperledger.org/channel/caliper?msg=hvDF8Pw7sth6DBwGX) l have npm prune, so what's the next step
[ ](https://chat.hyperledger.org/channel/caliper?msg=qXaiwe4Xw9RdECdsT) @narsimplyme does it mean that l need to go the npm path to install the fabric-client & fabric-ca-client?
Well my short googling says that.
going to the caliper directory and npm install fabric-ca-client --save
and so on might help? I dunno if it'll work
[ ](https://chat.hyperledger.org/channel/caliper?msg=Yw6kLQ6vogZsgRXa8) @narsimplyme l'll try. Thanks a lot anyway.
Thanks @houqinghui ,
let me explain a bit ,in my university project im planing to do a performance analysis and i select the Hyperledger (fabric and swatooth) . to analysis im planing to use caliper. what i cant undestand hear is if i planing to develop my own application on which part this get fit . im referring https://hyperledger.github.io/caliper/docs/2_Architecture.html
@nwalisundara You donot develop your own application. You can use the default use case to test your blockchain network. However you can write your own use case if the default use case cannot satisfy you.
Clipboard - April 10, 2019 4:17 PM
because fabric client@1.1.0 has a dependancy on grpc@1.19.0, caliper does not have a dependancy on grpc at all .. did u run a `npm install x --save` command at some point? If so, you will need to revert you pacakge.json file, delete the package-lock.json file, remove all node modules and re-install
[ ](https://chat.hyperledger.org/channel/caliper?msg=nyeLj3ekwDSmHtirE) @nkl199 “ caliper does not have a dependancy on grpc at all”??? Does it depend on grpc@1.10.0???
@houqinghui if i needs to develop my own , what are the steps , how can i find such doc ? great if you can point me on such :)
[ ](https://chat.hyperledger.org/channel/caliper?msg=ShLha47X8ip3kmpho) @nwalisundara have u successfully run the caliper ?
@Ruben-Joseph-Halder nope
@Ruben-Joseph-Halder - depending on what adapter you are using, you will get a specific grpc version pulled in (different versions of fabric-sdk depend on different versions of grpc for example) but caliper itself does not have a dependancy on grpc
[ ](https://chat.hyperledger.org/channel/caliper?msg=W86cjQwR8JidvibLy) @nkl199 @nkl199 @nwalisundara the steps to run caliper i know is that "1,npm install -g grpc@1.10.1
npm install fabric-ca-client@1.1.0 fabric-client@1.1.0
2.node ./benchmark/simple/main.js -c ./config.json -n ./fabric.json
so, what's wrong with the steps
Clipboard - April 10, 2019 4:54 PM
Clipboard - April 10, 2019 4:59 PM
fabric client needs grpc
from a "fresh" clone of the caliper project, steps are:
- `npm install`
- `npm run x-deps`
where x relates to the adapter you are wanting to work with
e.g. x=fabric?
hi all how to change multiple rounds for performance in caliper plz help
by default its only results round0 output
Screenshot 2019-04-10 at 10.07.12.png
@nwalisundara You can refer to [the doc](https://hyperledger.github.io/caliper/docs/1_Getting_Started.html)
@karanp0987 Which type of blockchain do you want to test ? Can you show me the command you use?
@houqinghui I have created using composer business network so I want to test my own business network, I have already run samples in Hyperledger Caliper, plz help for how to run performance of my own composer business network,
@karanp0987 You can refer to the question ` How can I change the network topology that Caliper tests?` in the doc https://hyperledger.github.io/caliper/docs/Caliper_FAQ.html
@houqinghui thanks i got it https://hyperledger.github.io/caliper/docs/Writing_Benchmarks.html
Clipboard - April 10, 2019 9:16 PM
npm install`
npm run fabric-v1.1-deps
Has joined the channel.
@Ruben-Joseph-Halder You're creating an awful lot of containers on a single machine. Some connection between the nodes is failing probably. Can you try it with a smaller network? Like 2org1peergoleveldb? Or even the dev sample network
[ ](https://chat.hyperledger.org/channel/caliper?msg=7Xg3DikFpydu5TjKx) @klenik Thanks, l'll try.
Clipboard - April 11, 2019 9:06 AM
Clipboard - April 11, 2019 9:15 AM
I'd check the container logs and/or check to see if the containers are all up, in particular if u are using couchDB, check to see if it is repsonding
Clipboard - April 15, 2019 10:05 AM
Clipboard - April 15, 2019 10:06 AM
the caliper just stops here, without any changes.
@Ruben-Joseph-Halder Do you start the ZK service?
@Ruben-Joseph-Halder You should start the ZK service first , then follow the steps of the docs.
[ ](https://chat.hyperledger.org/channel/caliper?msg=4jQosxC3bAGxsjvoz) @houqinghui ok, l'll try. Thanks a lot.
Hello, @klenik I tried using the fabric ccp as you had suggested. My test blockchain network is deployed and running on different hosts with public ips. I don't understand why caliper cannot reach my ca servers. Any suggestions. I only corrected the ccp under fabric-v1.1 and I am using simple benchmark as is.
Hello, @klenik I tried using the fabric ccp as you had suggested. My test blockchain network is deployed and running on different hosts with public ips. I don't understand why caliper cannot reach my ca servers. Any suggestions. I only corrected the ccp under fabric-v1.1 and I am using simple benchmark as is.
Hello, @klenik I tried using the fabric ccp as you had suggested. My test blockchain network is deployed and running on different hosts with public ips. I don't understand why caliper cannot reach my ca servers. Any suggestions. I only corrected the ccp under fabric-v1.1 and I am using simple benchmark as is.
fabric-ccp-go-tls.png
@RonaldReagan The CA names in your network config file must match the name of your FabricCA (set in the docker-compose files for the example networks):
https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html#certificate-authorities
@klenik @nkl199 @panyu2 I have facing an error while using fabric-ccp for fabric 1.4
node scripts/main.js -c benchmark/smallbank/config_linear.yaml -n network/fabric-v1.4/2org2peergoleveldb/fabric-ccp-go-tls.yaml
info: [bench-flow.js]: ####### Caliper Test #######
info: [bench-flow.js]: Executing command: docker-compose -f network/fabric-v1.4/2org2peergoleveldb/docker-compose-tls.yaml up -d;sleep 3s
Creating network "2org2peergoleveldb_default" with the default driver
Creating ca.org2.example.com ... done
Creating orderer.example.com ... done
Creating ca.org1.example.com ... done
Creating peer0.org1.example.com ... done
Creating peer1.org2.example.com ... done
Creating peer0.org2.example.com ... done
Creating peer1.org1.example.com ... done
info: [adapters/fabric-ccp]: Fabric SDK version: 1.4.0; TLS: mutual
info: [adapters/fabric-ccp]: Org1's registrar enrolled successfully
info: [adapters/fabric-ccp]: Org2's registrar enrolled successfully
info: [adapters/fabric-ccp]: Org1's admin's materials are successfully loaded
info: [adapters/fabric-ccp]: Org2's admin's materials are successfully loaded
info: [adapters/fabric-ccp]: client0.org1.example.com's materials are successfully loaded
info: [adapters/fabric-ccp]: client0.org2.example.com's materials are successfully loaded
2019-04-15T16:53:46.672Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:7050
2019-04-15T16:53:46.673Z - error: [Orderer.js]: Orderer grpcs://localhost:7050 has an error Error: Failed to connect before the deadline URL:grpcs://localhost:7050
error: [bench-flow.js]: Error: Error: Couldn't create mychannel: Failed to connect before the deadline URL:grpcs://localhost:7050
at Fabric._createChannels (/home/builder/ram/caliper/src/adapters/fabric-ccp/fabric.js:313:23)
at
@rkrish82 Check the orderer logs, maybe it couldn't start for some reason. Or increase the sleep time at the end of the start script, maybe the orderer is not ready to serve requests yet.
Has joined the channel.
Clipboard - April 16, 2019 11:01 AM
[ ](https://chat.hyperledger.org/channel/caliper?msg=6f5BhHroFg8hahSag) @klenik I am using fabric-ccp-go-tls.yaml file present in fabric-1.2 and modified it for fabric-1.4
[ ](https://chat.hyperledger.org/channel/caliper?msg=6f5BhHroFg8hahSag) @klenik Orderer start failed becuase of following error - orderer.example.com | 2019-04-16 04:45:54.452 UTC [orderer.commmon.multichannel] newLedgerResources -> PANI 005 Error creating channelconfig bundle: initializing channelconfig failed: could not create channel Orderer sub-group config: setting up the MSP manager failed: the supplied identity is not valid: x509: certificate signed by unknown authority (possibly because of "x509: ECDSA verification failure" while trying to verify candidate authority certificate "ca.example.com")
orderer.example.com | panic: Error creating channelconfig bundle: initializing channelconfig failed: could not create channel Orderer sub-group config: setting up the MSP manager failed: the supplied identity is not valid: x509: certificate signed by unknown authority (possibly because of "x509: ECDSA verification failure" while trying to verify candidate authority certificate "ca.example.com")
orderer.example.com |
orderer.example.com | goroutine 1 [running]:
orderer.example.com | github.com/hyperledger/fabric/vendor/go.uber.org/zap/zapcore.(*CheckedEntry).Write(0xc000136840, 0x0, 0x0, 0x0)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/vendor/go.uber.org/zap/zapcore/entry.go:229 +0x515
orderer.example.com | github.com/hyperledger/fabric/vendor/go.uber.org/zap.(*SugaredLogger).log(0xc00000e0b8, 0x4, 0xf6f983, 0x27, 0xc00013f808, 0x1, 0x1, 0x0, 0x0, 0x0)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/vendor/go.uber.org/zap/sugar.go:234 +0xf6
orderer.example.com | github.com/hyperledger/fabric/vendor/go.uber.org/zap.(*SugaredLogger).Panicf(0xc00000e0b8, 0xf6f983, 0x27, 0xc00013f808, 0x1, 0x1)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/vendor/go.uber.org/zap/sugar.go:159 +0x79
orderer.example.com | github.com/hyperledger/fabric/common/flogging.(*FabricLogger).Panicf(0xc00000e0c0, 0xf6f983, 0x27, 0xc00013f808, 0x1, 0x1)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/common/flogging/zap.go:74 +0x60
orderer.example.com | github.com/hyperledger/fabric/orderer/common/multichannel.(*Registrar).newLedgerResources(0xc0002b4360, 0xc00011dd10, 0xc00011dd10)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/orderer/common/multichannel/registrar.go:260 +0x2d7
[ ](https://chat.hyperledger.org/channel/caliper?msg=6f5BhHroFg8hahSag) @klenik Am i missing something in fabric-ccp-go-tls.yaml?
@rkrish82 Does the network config file include the start/end scripts? If it does, make sure it starts the network you need (v1.4) and the credential paths are also set to the v1.4 network's crypto artifacts.
[ ](https://chat.hyperledger.org/channel/caliper?msg=obyafvrv6E5dEKe2J) @klenik Thanks, it worked. But it is trying to install and instantiate chaincodes on the channel. How do I prevent this. I have already all this process.
[ ](https://chat.hyperledger.org/channel/caliper?msg=obyafvrv6E5dEKe2J) @klenik Thanks, it worked. But it is trying to install and instantiate chaincodes on the channel. How do I prevent this. I have already done all this process.
@RonaldReagan set the channel's "created" attribute to true. The installed/instantiated chaincodes will be automatically detected, provided you set the correct ID and version in the config
@RonaldReagan https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html#channels
[ ](https://chat.hyperledger.org/channel/caliper?msg=QF4A2MgS3xfkqpidr) @klenik I did set it to true. but still it tries to install chaincode anyway, and hence exits with error code 500, chaincode already exists.
[ ](https://chat.hyperledger.org/channel/caliper?msg=QF4A2MgS3xfkqpidr) @klenik I did set it to true. but still it tries to install chaincode anyway, and hence exits with error code 500, chaincode already exists. Let me check the ID part again
[ ](https://chat.hyperledger.org/channel/caliper?msg=uNtMzusP9B22NskW6) @klenik Yes that i have modified to pickup fabric 1.4 credential paths and right compose files for fabric 1.4
Clipboard - April 16, 2019 3:08 PM
Clipboard - April 16, 2019 3:09 PM
Clipboard - April 16, 2019 3:11 PM
Clipboard - April 16, 2019 3:13 PM
my steps in server.1=192.168.1.121 are:1,sh zkServer.sh start 2,npm run startclient -- 192.168.1.122 (server.1) & npm run startclient -- 192.168.1.128 (server.3) 3,node scripts/main.js -c benchmark/ruben/config-zookeeper.yaml -n network/fabric-v1.1/2org1peergoleveldb/fabric-go.json
my step in server.2 is only : npm run startclient -- 192.168.1.121 (server.1)
my step in server.3 is only : npm run startclient -- 192.168.1.121 (server.1)
Clipboard - April 16, 2019 3:33 PM
@Ruben-Joseph-Halder 1. in the caliper/benchmark/simple/config-zookeeper.yam, you should set the same ip of the server. 2. npm run startclient -- ip:port, this ip should be the same ip of the server. 3. You should run the caliper in the server machine.
[ ](https://chat.hyperledger.org/channel/caliper?msg=etMpdvdH678xHN567) @houqinghui the "3" is means that l should run the caliper in the server.1 ?
or l should run the caliper in the machine which is the leader in zookeeper
Clipboard - April 16, 2019 4:09 PM
Clipboard - April 16, 2019 4:10 PM
[ ](https://chat.hyperledger.org/channel/caliper?msg=etMpdvdH678xHN567) @houqinghui .
Clipboard - April 16, 2019 4:11 PM
[ ](https://chat.hyperledger.org/channel/caliper?msg=uNtMzusP9B22NskW6) @klenik Generating credentials fixed the issues. But now while submitting transaction i am getting other errors.
error: [adapters/fabric-ccp]: Transaction[a37ab15f9c] life-cycle errors:
- "value" argument must not be a number
@rkrish82 This looks like an error returned by the chaincode you're testing. Look into the chaincode to see what generates this error. You're probably passing something non-string as parameter. Every chaincode argument must be passed as string, and the chaincode must decode it however it wants
Clipboard - April 17, 2019 10:47 AM
instantiate
looks like something in your 1confgruben.yaml is missing?
looks like something in your 1configruben.yaml is missing?
looks like something in your 1config-ruben.yaml is missing?
looks like something in your 1config-ruben.yaml is missing?
has anyone used zookeeper?
i am having trouble
Has joined the channel.
Has joined the channel.
Hi just a quick question has anyone managed to run benchmark tests with Caliper on EVMCC (ethereum virtual machine chaincode), for example running the tests on this repo https://github.com/hyperledger/fabric-chaincode-evm ?
I have only run basic benchmarks given in the Caliper download, just looking to benchmark EVM smart contracts (In Hyperledger) so I can relate the data back to Ethereum, cheers
@MattWilson8 Yes, I've actually added seamless Solidity support to the Fabric-CCP adapter using EVMCC. It's not merged into the official Caliper repo yet, because it's not "production ready" (and definitely not well documented :) )
@RobiHarid Can you explain detailedly?
@klenik would it be possible for me to get a look at this/explain this to me? Would be very much appreciated
How can we test sample caliper network for multiple orderer(orderer>1). I am running the the sample test npm run bench -- -c benchmark/simple/config.yaml -n network/fabric-v1.2/2org2peercouchdb/fabric-go.json
How can we test sample caliper network for multiple orderer(orderer>1)? I am running the the sample test npm run bench -- -c benchmark/simple/config.yaml -n network/fabric-v1.2/2org2peercouchdb/fabric-go.json
Now I want to test it for kafka(multiple orderer).
@ishanvi.anavkar Use the Fabric-CCP adapter, it supports the definition of multiple orderer endpoints
https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html
I'm wanting to use Caliper to monitor a *remote* Sawtooth network running on Docker containers... Can anyone help guide me on the necessary steps? Is it simply a matter of supplying the correct http://remote_ip:port in the network configuration file? Or am I going to run into trouble with the Docker network being closed off in some way? any wisdom would help!
hello @klenik, I was able to test caliper using fabric ccp. I think its easy and works well. I am facing mainly two issues, 1) my network uses kafka-zookeeper and is deploy in docker swarm on 10 distributed hosts. When caliper starts testing network I get a bunch of Promise is rejected- error: REQUEST_TIMEOUT. Is there something I have pay attention to for kafka deployment to work with caliper. 2) When peers that are not channel creators joins the channel, their chaincode container is not deployed, so caliper gets a "premature chaincode execution" error, how can I make sure that the all chaincode containers are up before running caliper ( I know caliper brings up the chaincode containers eventually but it takes time).
hello @klenik, I was able to test caliper using fabric ccp. I think its easy and works well. I am facing mainly two issues, 1) my network uses kafka-zookeeper and is deploy in docker swarm on 10 distributed hosts. When caliper starts testing network I get a bunch of Promise is rejected- error: REQUEST_TIMEOUT. Is there something I have to pay attention to for kafka deployment to work with caliper. 2) When peers that are not channel creators joins the channel, their chaincode container is not deployed, so caliper gets a "premature chaincode execution" error, how can I make sure that the all chaincode containers are up before running caliper ( I know caliper brings up the chaincode containers eventually but it takes time).
hello @klenik, I was able to test caliper using fabric ccp. I think its easy and works well. I am facing mainly two issues, 1) my network uses kafka-zookeeper and is deploy in docker swarm on 10 distributed hosts. When caliper starts testing network I get a bunch of Promise is rejected- error: REQUEST_TIMEOUT. Is there something I have to pay attention to for kafka deployment to work with caliper. 2) When peers that are not channel creators joins the channel, their chaincode container is not deployed, so caliper gets a "premature chaincode execution" error, how can I make sure that the all chaincode containers are up before running caliper ( I know caliper brings up the chaincode containers eventually but it takes time).
caliper-report.png
@RonaldReagan I'll try to look into the problem during the weekend
Haven't tested every possible network setup scenario, so your feedbacks are appreciated :thumbsup:
[ ](https://chat.hyperledger.org/channel/caliper?msg=wbG4gjrsQDz3qeeW9) @klenik ok, I will wait for your feedback
Hi, @amiec please add the following lines on the benchmark configuration file to monitor a a remote Docker container
monitor:
type:
- docker
docker:
name:
- http://192.168.1.100:2375/orderer.example.com
Has joined the channel.
Hello all,
I came across the 2019 intern project and one interesting project is https://wiki.hyperledger.org/display/INTERN/Hyperledger+Caliper+visualization . I have good understanding of Fabric and its usecases. Also have good knowledge in MEAN stack and worked as NodeJS developer, so skillset required for this project is matching with my skill set.
I would like to apply for this Intern project. Any lead/suggestions to understand this project, will help me. Meantime I am going through the links provided in idea description.
Thanks!
[ ](https://chat.hyperledger.org/channel/caliper?msg=wbG4gjrsQDz3qeeW9) @klenik Hi @klenik, the following is an update, after I manually made sure that all the chaincode container are up for both peer0 and peer1. I still get alot of timeouts in between the tests. My network is on a cloud hosting service and hence very fast . (fabric v1.1.0 on 10hosts -10orgs, 2peers each)
[ ](https://chat.hyperledger.org/channel/caliper?msg=wbG4gjrsQDz3qeeW9) @klenik Hi @klenik, the following is an update, after I manually made sure that all the chaincode container are up for both peer0 and peer1. I still get alot of timeouts in between the tests. My network is on a cloud hosting service and hence very fast . (fabric v1.1.0 on 10hosts -10orgs, 2peers each). The throughput just doesn't add up.
caliper-report-update.png
is it possible to run the sample caliper test for orderer : kafka. The command npm run bench -- -c benchmark/simple/config.yaml -n network/fabric-v1.2/2org2peercouchdb/fabric-go.json is for solo orderer
What files and command to use to check for kafka?
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/caliper?msg=dWpJF9dbCgRpHdZqv) @ishanvi.anavkar use the fabric-ccp-go.yaml for the network config
Hey devs, anything exciting going on? please consider submitting a blog post! http://bit.ly/HLEDSubmission
@shekharrajak please submit an application as indicated in the hyperledger wiki, if it's not too late
Yes @klenik , I have filled the form and going through the details provided in the idea description. Thanks!
[ ](https://chat.hyperledger.org/channel/caliper?msg=NKCTQ2RJLFDpC3wHQ) @narsimplyme I checked the file but here also the orderer is configured as Solo "Orderer: Solo". Don't we need to mention Orderer as Kafka.
What benchmark file I can use? Can I use config,yaml or I need to use config-zookeper.yaml?
[ ](https://chat.hyperledger.org/channel/caliper?msg=ExopWMrpSKiSn5BAA) @FlyingTiger Thanks FlyingTiger! Just to clarify: is the part "orderer.example.com" the name of the docker container? How would that look with a Sawtooth REST-api? http://ip:port/sawtooth-rest-api-0 ?? Pardon my ignorance
One quick question for all: Does Caliper run on MacOS?
[ ](https://chat.hyperledger.org/channel/caliper?msg=XWv9dX2pWY2gr4sT2) @ishanvi.anavkar Please read the Fabric-CCP document on the caliper documents. (https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html)
I was struggling also with the ccp like you and after reading the documentation precisely, got a little grasp of how caliper worked
Also, the info part saying 'Orderer: Solo' is just a information that goes at the left bottom of the HTML report generated.
What matters is the 'blockchain: fabric-ccp' which is under the caliper. the Common Connection Profile of the Fabric SDK will automatically connect to the kafka-zk based orderers when the benchmark runs.
I recommend getting a running kafka orderer network and writing your own network credential to the ccp yaml file and try it out
[ ](https://chat.hyperledger.org/channel/caliper?msg=XWv9dX2pWY2gr4sT2) @ishanvi.anavkar Please read the Fabric-CCP document on the caliper documents. (https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html)
I was struggling also with the ccp like you and after reading the documentation precisely, got a little grasp of how caliper worked
Also, the info part saying 'Orderer: Solo' is just a information that goes at the bottom left of the HTML report generated.
What matters is the 'blockchain: fabric-ccp' which is under the caliper. the Common Connection Profile of the Fabric SDK will automatically connect to the kafka-zk based orderers when the benchmark runs.
I recommend getting a running kafka orderer network and writing your own network credential to the ccp yaml file and try it out
Does anyone know how to configure caliper to get the GUI benchmarking output? I only get the console benchmarking output. Thanks a lot for your help!
Does anyone know how to configure caliper to get the GUI benchmarking output? I only get the console benchmarking output. Thanks a lot for your help!
The "Getting started" tutorial is not up-to-date with the current caliper github version. Where can I find basic commands to run benchmarks?
The "Getting started" tutorial is not up-to-date with the current caliper github version. Where can I find basic commands to run benchmarks?
The "Getting started" tutorial is not up-to-date with the current caliper github version. Where can I find basic commands to run benchmarks? ```
``` ```
when executing *node run-benchmark.js -c ../benchmark/simple/config.yaml -t fabric -n ../network/fabric-v1.4/2org1peercouchdb/fabric-node.json* in the scripts subfolder. I get the following error:
```
```
Error: Cannot find module 'caliper-core'
at Function.Module._resolveFilename (module.js:548:15)
at Function.Module._load (module.js:475:25)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object.
The "Getting started" tutorial is not up-to-date with the current caliper github version. Where can I find basic commands to run benchmarks?
when executing *node run-benchmark.js -c ../benchmark/simple/config.yaml -t fabric -n ../network/fabric-v1.4/2org1peercouchdb/fabric-node.json* in the scripts subfolder. I get the following error:
Error: Cannot find module 'caliper-core'
at Function.Module._resolveFilename (module.js:548:15)
at Function.Module._load (module.js:475:25)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object.
@julient Run this command `npm run bench -- -c benchmark/simple/config.yaml -n network/fabric-v1.4/2org1peercouchdb/fabric-node.json` in the caliper directory.
@julient Run this command `npm run bench -- -c benchmark/simple/config.yaml -n network/fabric-v1.4/2org1peercouchdb/fabric-node.json` in the caliper directory. You can refer to the dochttps://hyperledger.github.io/caliper/docs/1_Getting_Started.html
thanks for your reply @houqinghui ! I get the error: missing script: bench. I am working on the latest branch #405. This command worked in the version from last week.
thanks for your reply @houqinghui ! I get the error: missing script: bench. I am working on the latest branch #405. The command you sent worked in the version from last week.
thanks for your reply @houqinghui ! I then get the error: missing script: bench. I am working on the latest branch #405. The command you sent worked in the version from last week.
https://github.com/hyperledger/caliper/tree/master/packages/caliper-application
@julient Yes, The PR were merged two hours ago, i donot notice it. Maybe you should wait for a while, then the docs will be updated
@julient You can have a look at the PR https://github.com/hyperledger/caliper/pull/406 that explains how to use the latest version.
ok thanks! @houqinghui
ok thanks it works now! @houqinghui
[ ](https://chat.hyperledger.org/channel/caliper?msg=Npxd3Eg3pH3h2xAxx) @narsimplyme Thank you..I will go through the link . I am new in caliper and don't have coding knowledge of hyperledger. I wanted to confirm that with the available caliper network it is not possible to test for kafka, if we want to test for kafka we have to check it with our own network?
@ishanvi.anavkar From the point of view of Caliper, the ordering service is simply a collection of endpoints. Whether you use Kafka, Raft, or your custom magical BFT protocol, it doesn't matter. All Caliper (or the Fabric SDK) needs is the traditional orderer node API, doesn't matter what's behind it
When I attempt to monitor remote docker containers, and I specify http://192.168.0.xxx:2375/all, I get an "error: [monitor-docker.js]: Error(monitor-docker):Error: connect ECONNREFUSED 192.16......". Does anybody know what I should do to configure Docker to allow my incoming connection? (assuming that's the problem). thanks!
does caliper support fabric 1.4?
@jarvis26 Yes, Caliper support fabric v1.4, you can refer to this doc https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html.
@amiec Are you sure that the port is open? if not, you can use the command `sudo ufw allow 2375` to open the port .
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/caliper?msg=vGKRunXJ6GSNz9BLb) @houqinghui Thanks. How do I prevent caliper from trying to join in into a channel and installing a chaincode. I set the `deployed` property as true in the channel configuration section to prevent the client from creating a channel.
[ ](https://chat.hyperledger.org/channel/caliper?msg=vGKRunXJ6GSNz9BLb) @houqinghui Thanks. I am able to setup the tool but facing problems trying to run the tests. How do I prevent caliper from trying to join in into a channel and installing a chaincode. I set the `deployed` property as `true` in the channel configuration section to prevent the client from creating a channel.
[ ](https://chat.hyperledger.org/channel/caliper?msg=vGKRunXJ6GSNz9BLb) @houqinghui Thanks. I am able to setup the tool but facing problems trying to run the tests. How do I prevent caliper from trying to join in into a channel and installing a chaincode. I set the `deployed` property as `true` in the channel configuration section to prevent the client from creating a channel. Also, I have changed all the paths in the my network-config file to point to my network's crypto material. However, I get the older paths in the error. Is there any other file where changes are required? Attaching the stack trace below: ```error: [util.js]: Couldn't retrieve admin of org1: Error: ENOENT: no such file or directory, scandir '/home/msingh/caliper/packages/caliper-application/network/fabric-v1.4/new-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore'
at Object.fs.readdirSync (fs.js:904:18)
at readAllFiles (/home/msingh/caliper/packages/caliper-fabric/lib/util.js:124:22)
at getAdmin (/home/msingh/caliper/packages/caliper-fabric/lib/util.js:229:22)
at Object.module.exports.getSubmitter (/home/msingh/caliper/packages/caliper-fabric/lib/util.js:334:22)
at Object.installChaincode (/home/msingh/caliper/packages/caliper-fabric/lib/e2eUtils.js:180:31)
at
@jarvis26 Can you show me your command? i want to know which one of the fabric adaptors you used.
[ ](https://chat.hyperledger.org/channel/caliper?msg=yeKgmZZwe5iLgbfvt) @houqinghui yes, sure. I executed this command: `node run-benchmark.js -c ../benchmark/simple/config_linear.yaml -n ../network/fabric-v1.4/new-network/fabric-go.json`
hi @klenik any update from your end? Also How do we calculate the total tps of the network? Is it the throughput for each test round? Or do we multiply the throughput by the number of transactions submitted (eg. 100). What is the maximum tested Hyperledger fabric network speed (tps)? What aspects should one consider to improve speed (other than the internet speed)? I am trying to achieve 500 tps.
@RonaldReagan the setup and connection robustness of the fabric-ccp adapter could use some improvements. Could you open a github issue detailing the current limitations of the adapter? I'll try to improve things in the coming weeks
@jarvis26 The `deployed` means that Caliper won't create it, if you have created a channel. But if you didnot install the chaincodes in the network configuration file, Caliper will install them. Your error shows that the files don't exist, you can check them.
[ ](https://chat.hyperledger.org/channel/caliper?msg=tYRfDbg8FdreQ9Q39) @houqinghui My crypto-config directory structure is a a bit different. So, when I give the domain and not give `USER` parameter in the network config file, it tries to construct the path where it is not able to find the certificates. When I tried by giving the user parameter, its giving the following error: ```info: [install-chaincode.js]: installing all chaincodes......
info: [install-chaincode.js]: Installing chaincode simple...
network/fabric-v1.4/new-network/crypto-config/orgc/orderers/orderer1st-orgc.orgc/tls/ca.crt
network/fabric-v1.4/new-network/crypto-config/orga/peers/peer1st-orga.orga/tls/ca.crt
info: [util.js]: here here
'network/fabric-1.4/new-network/crypto-config/orga/users/Admin@orga/msp/keystore'
error: [util.js]: Couldn't retrieve admin of orga: TypeError: Path must be a string. Received undefined
at assertPath (path.js:28:11)
at Object.join (path.js:1233:7)
at Function.resolvePath (/home/msingh/caliper/packages/caliper-core/lib/utils/caliper-utils.js:75:21)
at getAdmin (/home/msingh/caliper/packages/caliper-fabric/lib/util.js:218:51)
at Object.module.exports.getSubmitter (/home/msingh/caliper/packages/caliper-fabric/lib/util.js:339:22)
at Object.installChaincode (/home/msingh/caliper/packages/caliper-fabric/lib/e2eUtils.js:180:31)
at
[ ](https://chat.hyperledger.org/channel/caliper?msg=tYRfDbg8FdreQ9Q39) @houqinghui My crypto-config directory structure is a a bit different. So, when I give the domain and not give `USER` parameter in the network config file, it tries to construct the path where it is not able to find the certificates. When I tried by giving the user parameter, its giving the following error: ```info: [install-chaincode.js]: installing all chaincodes......
info: [install-chaincode.js]: Installing chaincode simple...
network/fabric-v1.4/new-network/crypto-config/orgc/orderers/orderer1st-orgc.orgc/tls/ca.crt
network/fabric-v1.4/new-network/crypto-config/orga/peers/peer1st-orga.orga/tls/ca.crt
info: [util.js]: here here
'network/fabric-1.4/new-network/crypto-config/orga/users/Admin@orga/msp/keystore'
error: [util.js]: Couldn't retrieve admin of orga: TypeError: Path must be a string. Received undefined
at assertPath (path.js:28:11)
at Object.join (path.js:1233:7)
at Function.resolvePath (/home/msingh/caliper/packages/caliper-core/lib/utils/caliper-utils.js:75:21)
at getAdmin (/home/msingh/caliper/packages/caliper-fabric/lib/util.js:218:51)
at Object.module.exports.getSubmitter (/home/msingh/caliper/packages/caliper-fabric/lib/util.js:339:22)
at Object.installChaincode (/home/msingh/caliper/packages/caliper-fabric/lib/e2eUtils.js:180:31)
at
Has joined the channel.
Hi everyone, I wrote a month ago an adapter for ethereum web3, but I saw that code has been moved in packages and I should spend time to readapt my code. Is there a sort of roadmap of developing process, some milestone to reach to have a bit of stability ?
:point_up_tone1: answered in the caliper-contributors channel
[ ](https://chat.hyperledger.org/channel/caliper?msg=fdgpx7PXMGgyf84Sx) @klenik Hi, I don't have any issues per se. I just wanted to know the best configuration to run in order to test my blockchain network. For example how to set up test machines ( clients) and how have them test a distributed network (How to coordinate them). I know there are limitations in using a single machine for testing. Or do I have to use zookeeper client's for testing and is it better?
@RonaldReagan Well, single machine workload generation is easier to manage, so try to scale your Caliper machine vertically first (and launch lots of local client processes that can be set in the Caliper test config file). And if you hit a limit (monitor your Caliper machine to see what limit) before your desired workload rate, then use the zookeeper feature with 2 strong machines. Until the Caliper clients aren't "dockerized", try to keep your Caliper infrastructure minimal, the Fabric deployment is complex enough on its own :)
Has joined the channel.
Has joined the channel.
I am trying to setup Hyperledger Caliper with my fabric app
I am getting this error: [create-channel.js]: Failed to create channels: Error: Create status for mychannel is FORBIDDEN with information implicit policy evaluation failed - 0 sub-policies were satisfied, but this policy requires 1 of the 'Writers' sub-policies to be satisfied: permission denied
@AYUSHIAGARWAL If you use the command to create the channel, can you succeed?
Has left the channel.
Yes, channel is created, even I am able to install and instantiate the chaincode.
As done in this https://hyperledger-fabric.readthedocs.io/en/release-1.4/build_network.html
The error seems that the policy is not matched with the channel. you can refer to this https://discourse.skcript.com/t/error-got-unexpected-status-forbidden-failed-to-reach-implicit-threshold-of-1-sub-policies-required-1-remaining-permission-denied/1680, and check out the certificates and configuration files.
I am running the command node run-benchmark.js -c ../benchmark/simple/config.yaml -t fabric -n ../network/fabric-v1.4/2org1peercouchdb/fabric-node.json from the folder packages/caliper-application/scripts: and I am getting the error Error: Cannot find module 'caliper-core'
@ishanvi.anavkar You can refer to the `building Caliper` part of this doc https://hyperledger.github.io/caliper/docs/1_Getting_Started.html
Make sure you have g++ and make installed and then repeat the building process.
Has joined the channel.
just to clarify...fabric version 1.4 is supported or not?
I am facing this issue "instantiate proposal was bad: Error: transaction returned with failure: Incorrect number of arguments. Expecting 4".
You can see the complete logs here https://gist.github.com/ayushiagg/45301b6b6ce54030e4027966e7ed1012
@AYUSHIAGARWAL Fabric 1.4 is supported by both Fabric adapters. The error is returned by the chaincode implementation, so make sure that you pass the correct number of arguments in the user callback module
Thank you for response.
Actually, I am using this chaincode: https://github.com/hyperledger/caliper/blob/master/packages/caliper-application/src/contract/fabric/simple/go/simpletest.go
Thank you for response.
Actually, I am using this chaincode: https://github.com/hyperledger/caliper/blob/master/packages/caliper-application/src/contract/fabric/simple/go/simpletest.go
Thank you for response.
Actually, I am using this chaincode: https://github.com/hyperledger/caliper/blob/master/packages/caliper-application/src/contract/fabric/simple/go/simpletest.go
So, where do I have to do the changes? I'm using sample configurations and test-network as described here https://hyperledger.github.io/caliper/docs/2_Architecture.html
@AYUSHIAGARWAL Are you sure about the chaincode? The simpletest doesn't seem to produce similar error messages. What is the command you use to execute Caliper?
I use the following command : "node run-benchmark.js -c ../../../config.yaml -n ../../../sample-config.json
"
You can see my config files here : https://github.com/ayushiagg/caliper as https://github.com/ayushiagg/caliper/blob/master/sample-config.json and https://github.com/ayushiagg/caliper/blob/master/config.yaml
@AYUSHIAGARWAL I still can't find the returned error message in the chaincode source. I'll clone your repo and try to reproduce it later in the evening
Thank you so much
Thank you so much
One thing to note :
info: [install-chaincode.js]: installing all chaincodes......
info: [install-chaincode.js]: Installing chaincode simple...
info: [install-chaincode.js]: Installing chaincode simple...
info: [install-chaincode.js]: Installed chaincode simple successfully in all peers
info: [instantiate-chaincode.js]: Instantiating chaincodes...
warn: [e2eUtils.js]: instantiate proposal was bad: Error: transaction returned with failure: Incorrect number of arguments. Expecting 4
warn: [e2eUtils.js]: instantiate proposal was bad: Error: transaction returned with failure: Incorrect number of arguments. Expecting 4
these are in logs, but I run simple chaincode, whereas it shows error from js?
Hi Team,
Is Caliper is compatible with fabric 1.4.x??
yes , it supports
have you tried caliper ,,, is it stable and useful?
have you tried caliper ,,, is it stable and useful? @knagware9
I tried but sample provided in the caliper repo , not tried to integrate with my own network.. yes its good to check performance of network
cool,, thanks
I am running the caliper command node run-benchmark.js -c ../benchmark/simple/config.yaml -n ../network/fabric-v1.4/2org1peercouchdb/fabric-node.json and getting this error *Get https://registry-1.docker.io/v2/: dial tcp 34.233.151.211:443: connect: connection refused*.
Clipboard - May 16, 2019 3_09 PM.png
while accessing the url https://registry-1.docker.io/v2/ it is giving the response {"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
How do I specify multiple orderers in connection.json file for load balancing of the orderers?
Hello @klenik , I have my output as follows : invoke1 -> total throughput 105tps, invoke2 -> total throughput 115.6tps, query1 -> total throughput 386tps, query2 -> total throughput 405tps. How can I deduce the total pts for this network?(taking average or what?)
@ishanvi.anavkar Maybe the timeout is too short. Can you try this command `node run-benchmark.js -c ../benchmark/simple/config.yaml -n ../network/fabric-v1.4/2org1peergoleveldb/fabric-go.json`?
@ishanvi.anavkar The errors show that you don't pull the docker images succefully, please check your network.
@jarvis26 Where is the connection.json file used? You can add multiple orderers for load balancing in the file https://github.com/hyperledger/caliper/blob/0f4d4026cbe8f1fc06c0eddb0796ccf37d83a10b/packages/caliper-application/network/fabric-v1.4/2org1peergoleveldb/fabric-ccp-go.yaml#L110
@RonaldReagan The TPS is the average in the period from the first transaction to the last one. You can refer to the `Other Questions Related to Caliper` in the doc https://hyperledger.github.io/caliper/docs/Caliper_FAQ.html
@RonaldReagan It always depends on what you want to present, there are no single golden rule. Since you have two different workloads (jsut invokes, and just queries), I wouldn't calculate a single average on all rounds. Calculate two averages: for invoke rounds (1&2) and for query rounds (1&2)
@jarvis26 The [Fabric CCP adapter](https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html#orderers) can be easily configured to use multiple orderer nodes, and it even performs [automatic load balancing](https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html#configuring-the-adapter) between them (`loadBalancing` attribute)
is there any way to run caliper tests on the network where the network is already running. Actually, I setup the network manually where channel creation and instantiation of chaincode are done...So is there any way to skip the network up, channel creation, install and instantiate chaincode and directly jump to running the test for benchmarking?
@AYUSHIAGARWAL You can use Caliper to test your own blockchain network. You can set the property to `true`` to skip the network up https://github.com/hyperledger/caliper/blob/0f4d4026cbe8f1fc06c0eddb0796ccf37d83a10b/packages/caliper-core/lib/config/default.yaml#L5, set this property to `true` to skip the channel creation https://github.com/hyperledger/caliper/blob/0f4d4026cbe8f1fc06c0eddb0796ccf37d83a10b/packages/caliper-application/network/fabric-v1.4/2org1peergoleveldb/fabric-go.json#L53
@AYUSHIAGARWAL Caliper can perform automatic chaincode checking, skip the chaincode installing and instantiating, and directly jump to running the test for benchmarking.
Hello, Does anyone know what does number 10 represent in the fabric-CCP query?
return bc.bcObj.querySmartContract(contx, 'simple', 'v0', args, 10);
@nimaafraz The last number is the timeout in seconds
@nimaafraz The related docs: https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html#using-the-adapter-interface
Thanks @klenik
Hello guys. I am using fabric-ccp adapter. It is now allowing me to use the same chaincode id for different channels( I have 5 channels with same chaincode instantiated). Is there a way around this?
hi, a little confused here - that is an aspect of Fabric .. channels are completely isolated and so it is possible to do exactly that. It will only prevent the same ID/version of chaincode being instantiated in the same channel. Are you wanting to install/instantiate different chaincode (or same chaincode on diff ID) on different channels?
The channels are already created, chaincode installed on all peers, and instantiated in all channels- the same chaincode. While defining multichannel in caliper network ccp , it doesn't allow same chaincode id. for different channels.
ah, righto - understand the question now
So is the desire to interact with (the same) chaincode on different channels during a single benchmark run?
yes
@RonaldReagan What does the error say? Here's the thing: The CC ids must be unique only inside a channel, true. But there's a `contractID` attribute for each CC, that must be unique on a network level, and you use this contract ID to reference your (channel,CC) target from the user callback. Now, if you don't set this contractID, then it will inherit the CC ID, and at this point it won't be unique.
Look at the chaincodes subsection in the doc: https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html#channels
But you're right, the docs and the error message should clarify this when the contract ID is "inherited"
Hi guys, some time ago I created a tool to create a Kubernetes cluster containing a caliper deployment and hyperledger fabric.
The resulting kubernetes deployments may be of interest to the Caliper developers.
I also forked Caliper so that I was able to run it through a HTTP server.
Code can be found here: https://github.com/blockchain-partitioning
Hi @RobertDiebels - thanks for the above, this is absolutely of interest as it is the direction we are moving towards ... we will look at the above with great interest :thumbsup:
Happy to help. I tried to find my Master Thesis in my Uni's library but it's not up yet.
As soon as it's up I'll link it for some extra context
Great - thanks!!
Thanks
@RobertDiebels Awesome, thanks :thumbsup:
Can we leverage caliper to simultaneously deploy and transact on multiple channels?
@jarvis26 Do you mean that wether Caliper support multiple channels?
@jarvis26 Do you mean that wether Caliper can support multiple channels?
yes..I wanted to check the impact of having multiple channels on network performance
@jarvis26 Yes you can use Caliper to deploy and transact on multiple channels. But you cannot use the same chaincode IDs in the different channels.
@jarvis26 You just have to define multiple channels in the network configuration file, and Caliper will create them:
https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html#channels
Hi,
getting below error while running benchmark.js
error: [scripts/run.js]: file /home/james/Desktop/Knightwatch/caliper/packages/caliper-application/scripts/home/james/Desktop/Knightwatch/caliper/packages/caliper-application/benchmark/marbles/config.yaml does not exist
command I used is - node run-benchmark.js -c home/james/Desktop/Knightwatch/caliper/packages/caliper-application/benchmark/marbles/config.yaml -n /home/james/Desktop/Knightwatch/caliper/packages/caliper-application/network/fabric-v1.4/2org1peercouchdb/fabric-ccp-go.yaml
anybody has seen it before ??
@raj_shekhar check the paths you set when starting the benchmark script, you provide absolute paths, which is concatenated with the working directory (aka workspace), resulting in:
```
/home/james/Desktop/Knightwatch/caliper/packages/caliper-application/scripts/home/james/Desktop/Knightwatch/caliper/packages/caliper-application/benchmark/marbles/config.yaml
```
Hi, I am facing problems when creating a new test-case in javascript (to test another chaincode). I basically tried to copy-paste the simple test case and just changed the names from "open" to "create" and rename the parameters by carefully changing all the name of the files needed to benchmark it It is running good, but when the transactions start I get this repeating error: ```
UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'toString' of undefined
at Fabric.queryState
```
@julient Can you share a more complete log? Can you provide the line from your user test where you call `queryState` ?
Thanks for your reply. I think it may be due to the states being empty?
That's my code : ```
module.exports.run = function() {
const acc = grid_array[Math.floor(Math.random()*(grid_array.length))];
if (bc.bcType === 'fabric-ccp') {
let args = {
chaincodeFunction: 'query',
chaincodeArguments: [acc],
};
return bc.bcObj.querySmartContract(contx, 'grid', 'v0', args, 10);
} else {
// NOTE: the query API is not consistent with the invoke API
return bc.queryState(contx, 'grid', 'v0', acc);
}
};
```
That's the error I receive after each query: ```
(node:5386) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'toString' of undefined
at Fabric.queryState (/home/julien/caliper/packages/caliper-fabric/lib/fabric.js:215:82)
at Blockchain.queryState (/home/julien/caliper/packages/caliper-core/lib/blockchain.js:120:33)
at Object.module.exports.run (/home/julien/caliper/packages/caliper-application/benchmark/grid/query.js:37:19)
at CaliperLocalClient.runFixedNumber (/home/julien/caliper/packages/caliper-core/lib/client/caliper-local-client.js:149:30)
at
@julient yep, the `acc` argument you pass is undefined. Also, if `random` returns 1 (could happen), then you over-index your array. AlsoAlso, try using the Fabric CCP adapter, it's query API is much better
thanks, I will try it
You can refer to the `run benchmark` aspect of [the doc](https://hyperledger.github.io/caliper/docs/1_Getting_Started.html). You should run the command in the `packages/caliper-application/scripts` folder.
yup, thanks for pointing out,,, running smooth now .. :)
Hi,
I need help in below points for testing the performance of hyperledger fabric network deployed on Kubernetes (Single cluster) -
1. which way is better - running from local by configuring the endpoints of peers and orderers OR installing caliper in same cluster and then run ?
2. how caliper test the resources monitor in case of K8s , do the below config works there , in my opinion it will not in either case (running from local or from K8s).
monitor:
type:
- docker
- process
docker:
name:
- all
process:
- command: node
arguments: local-client.js
multiOutput: avg
interval: 1
@raj_shekhar I think Caliper can't access nodes deployed in a K8s cluster. @RobertDiebels has done some work in this area, maybe he can provide some tips about the Caliper + K8s combo
thanks @klenik for redirecting , I will wait for @RobertDiebels 's inputs
@raj_shekhar I forked caliper https://github.com/blockchain-partitioning/x-caliper to achieve running it in Kubernetes.
It runs as an ExpressJS server and takes commands via HTTP. I haven't documented most of the changes I made because I didn't have the time when I was making the changes.
It requires a DaemonSet to run on all the nodes that run peers/orderers. The DaemonSet runs a container that exposes the docker unix-socket via HTTP.
I have a complete set of kubernetes-objects here https://github.com/blockchain-partitioning/experimentation/tree/master/src/resources/comparison/4-peers/2-partitions/configurations/orchestration/singular
It's a set of objects that runs Fabric 1.2 + my caliper fork in a single k82 cluster. Note: Fabric 1.2 doesn't properly function in a K8s cluster. Chaincodes aren't registered in k8s and there are some DNS issues as well.
It's a set of objects that runs Fabric 1.2 + my caliper fork in a single k8s cluster. Note: Fabric 1.2 doesn't properly function in a K8s cluster. Chaincodes aren't registered in k8s and there are some DNS issues as well.
To resolve that I add the k8s-dns IP in the Fabric environment variables. This means that if you're going to try and runs this you will have to change the IP to your k8s cluster dns IP. Furthermore, I ran this in GCE only. I don't know if it will function properly somewhere else.
Hope that helps. If you have any questions feel free to contact me.
Also, I created a tool called Kubechain. It's in the NPM registry and you can use it to deploy Fabric and Caliper to a k8s cluster. https://www.npmjs.com/package/kubechain
You can also call Kubechain programmatically which I do here: https://github.com/blockchain-partitioning/experimentation/blob/master/src/main/orchestration/create-k8s-objects.js
I would have preferred to use Helm at some point though I had to work around Fabrics limitations and doing so programmatically saved me a bunch of time.
We want to test our own platform that is similar to Fabric. We only change cryptography algorithms. Which tool can we use to test? Is caliper ok?
@JeffreyDing What do you mean your platform is similar to Fabric? If the different part is just cryptography algorithms, but the tracsaction flow is same, you can try Caliper to test your platrorm.
Has joined the channel.
Thanks a lot @RobertDiebels , it is of great help, I will surely go through it.
Although I have below queries --you have done changes in caliper code for K8s resource metrics, performance metrics(txn etc) works fine for cluster deployed in K8s right ?
Thanks a lot @RobertDiebels , it is of great help, I will surely go through your resources
Although I have below queries --
1. you have done changes in caliper code for K8s resource metrics, performance metrics(txn etc) works fine for cluster deployed in K8s right ?
2. If I configure peer/orderer load balancer service endpoints of already set up network in network config file in caliper, it will be enough or anything else needed to be figure out, (I am planning to run caliper from local)
Thanks a lot @RobertDiebels , it is of great help, I will surely go through your resources
Although I have below queries --
1. Changes needed to be done in caliper code for K8s resource metrics, performance metrics(txn etc) works fine with existing code for cluster deployed in K8s right ?
2. If I configure peer/orderer load balancer service endpoints of already set up network in network config file in caliper, it will be enough or anything else needed to be figure out, (I am planning to run caliper from local)
Thanks a lot @RobertDiebels , it is of great help, I will surely go through your resources
Although I have below queries --
1. Changes needed to be done in caliper code for K8s resource metrics, performance metrics(txn etc) works fine with existing code for cluster deployed in K8s right ?
2. If I configure peer/orderer load balancer service endpoints of already set up fabric network(k8s) in network config file in caliper, it will be enough or anything else needed to be figure out, (I am planning to run caliper from local)
@JeffreyDing If by similarity you mean that the Fabric SDK is able to communicate with it, then you can use Caliper. Otherwise you have to write your own adapter for your platform
1. The fork I created has some extra features that I used to get it up and running in k8s properly. For one it has a filter on image-names. K8s creates a bunch of similarly named containers for each peer-deployment. Since my configuration uses dockers-unix socket on each node Caliper needs to filter the image names. Otherwise it will catch a lot of bloat from other containers.
2. I'm not sure whether or not you need to make any adjustments to caliper in order for this to work. I only ran Caliper from inside the same cluster as Fabric and using brand new clusters. Hypothetically it should work since it's just a url change. So long as each node exposes the docker unix-socket threw HTTP you should be good to go. Note: That exposing your docker unix-socket is generally considered a big no-no. The reason I did it anyway was exactly because I ran on brand-new throw-away clusters.
Thanks @RobertDiebels I will share my experiences after trying it . (Y)
Has joined the channel.
Hi all, I have a question concerning network configuration for sawtooth benchmark. I have seen that we can provide different urls for REST-api (one for each validator), but what I don't know is which api's url is going to be used to submit transaction in the benchmark if we provide multiple ones?
Thanks for your help
Has joined the channel.
Hello all. Regarding the caliper tool, does it support HLFabric v1.4.1? I've read contradictory information about this (https://github.com/hyperledger/caliper vs https://wiki.hyperledger.org/display/HYP/2019+Q1+Hyperledger+Caliper and https://hyperledger.github.io/caliper/docs/Fabric_Configuration.html).
@JustAnotherNewbieInFabric yes, it is supported, and since half an hour ago, examples are also available with the fabric ccp adapter
https://github.com/hyperledger/caliper/tree/master/packages/caliper-application/network/fabric-v1.4.1
https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html
@emugnier I'll have to look at the sawtooth adapter code to answer your question. I'll get back to you in a few hours
Happy to help. I'm interested in knowing if you got things up and running. So please do tell :D ! @raj_shekhar
Clipboard - May 30, 2019 6:41 PM
@nimaafraz Yes, you only need to change the endpoint addresses (and make sure that those endpoints are accessible from outside of course).
Regarding the timeout: it looks like that the endorsement part of the instantiation run successfully, and the timeout occurred while waiting for committing the instantiate transaction.
1) You can increase this Caliper-side timeout through the [chaincodeinstantiateevent](https://github.com/hyperledger/caliper/blob/master/packages/caliper-core/lib/config/default.yaml#L60) runtime setting. You can change it in [multiple ways](https://hyperledger.github.io/caliper/docs/Runtime_Configuration.html).
2) Just in case, check the peer logs. If you don't see any errors then the chaincode was instantiated, and 1) should be enough to continue the benchmark.
Hello @klenik . How powerful(spec) should the caliper client machine be in order to get 2000tps? Asuming that the peer nodes have good specs already.
Thank you for your reply. I am gonna get another machine. Although my current machine has same spec as the one above. With 30clients @50tps I usually get 37tps throughput for 37tps send rate for a query. Doesn't look bad. Just that the send rate and through put cant go beyond 700tps. Looks like some setting I need to tweak, just don't what yet. I tried increasing the number of transactions, but nothing.
@RonaldReagan this is my query too..
Has joined the channel.
@RonaldReagan @raj_shekhar With an `m5.4xlarge` EC2 instance I could easily generate 1500TPS when using 30 clients (50 TPS per client)
@RonaldReagan Caliper currently uses nodeJS based clients ... which means that they are CPU bound until we are able to dockerize the clients (we intend to do this). Your current options are:
- use the fastest clock speed possible (number of cores will not help you here)
- use zookeeper clients on multiple machines that are on the same network
We have not put together a sizing table that enables the attainment of a specific TPS for all the provided samples (yet)
Note: spawning more clients is intended to overcome the single-threaded nature of NodeJs. My experience is that a single client should be able to handle 50 TPS easily (and with good scheduling precision). So scale out with the number of clients spawned to reach 2k TPS
@klenik that is helpful, thanks
[ ](https://chat.hyperledger.org/channel/caliper?msg=FyDLaz52MpoLnXPnD)
caliper_report.png
@RonaldReagan Please use the up2date version of Caliper, a few things have happened since `bench-flow.js` was renamed :)
Cool, Thanks. I was able run transactions on multiple channels.
Hi @
@houqinghui @klenik .. The hyperlink to definitions of performance indicators from caliper's getting started page (https://hyperledger.github.io/caliper/docs/1_Getting_Started.html) is dysfunctional - https://wiki.hyperledger.org/groups/pswg/performance-and-scale-wg Could you please help me with an understanding of how the performance indicators - success rate, Transaction/Read throughput, Transaction/Read latency(minimum, maximum, average, percentile), Resource consumption (CPU, Memory, Network IO,…) are calculated?
Hi @houqinghui @klenik .. The hyperlink to definitions of performance indicators from caliper's getting started page (https://hyperledger.github.io/caliper/docs/1_Getting_Started.html) is dysfunctional - https://wiki.hyperledger.org/groups/pswg/performance-and-scale-wg Could you please help me with an understanding of how the performance indicators - success rate, Transaction/Read throughput, Transaction/Read latency(minimum, maximum, average, percentile), Resource consumption (CPU, Memory, Network IO,…) are calculated?
@jarvis26 Thanks for reporting it, I've opened an issue to fix the link. In the meantime:
https://www.hyperledger.org/resources/publications/blockchain-performance-metrics#
thank you!
Has joined the channel.
does anyone have an example of a working network configuration file, i cant get it to work, mine doesnt recognize the paths to all the needed files
@icarrascol The repo has a bunch of examples. What is the exact error message you get?
@icarrascol The repo has a bunch of examples (packages/caliper-application/network). What is the exact error message you get?
Hi, @klenik , I upgraded my caliper client machine( 32vCore@2.7GHz, 128GB RAM, 1T HDD ). Upgraded to latest caliper version. Run the test again and can only get 50tps throughput for 30clients @50tps send rate. I tried other options, but I am getting the same. My goal is to get 1500tps for a query workload. Does it mean I have to multiply number of clients by the throughput?
cali.png
@RonaldReagan what does your test config file looks like? I'm interested mainly in the clients and rate controller sections
You have to specify the 1500tps for the rate controller, and it'll be distributed among the clients (assuming you're using the fixed rate controller)
It looks like so:
clients:
type : local
number: 30
rounds:
caliper_rate_control.png
@RonaldReagan Try to increase the txNumber, or use duration-based testing (30s for example). Right now your test is too short to be representative (or accurate)
My home setup: single VM with 4 vCPU and 8GB memory, SSD; running Caliper AND the 1.4.1 Raft example network (lot of containers for one VM...).
My test config for the `simple` benchmark:
```
rounds:
- label: open
description: Test description for the opening of an account through the deployed chaincode
txNumber:
- 1000
rateControl:
- type: fixed-rate
opts:
tps: 100
arguments:
money: 10000
callback: benchmark/simple/open.js
- label: query
description: Test description for the query performance of the deployed chaincode
txNumber:
- 10000
rateControl:
- type: fixed-rate
opts:
tps: 1000
callback: benchmark/simple/query.js
```
My report table (single VM => bad throughput of course), expected send rates should be 100, 1000 and 50 TPS:
result.png
The query round (or even before) overloaded my VM, so that's why there's a lot of failure. But even with such a "weak" single VM setup, I could reach a ~500TPS send rate for queries.
I'm in the middle of an experiment, I'll try to turn up the send rate above a 1k TPS
The query round (or even before) overloaded my VM, so that's why there's a lot of failure. But even with such a "weak" single VM setup, I could reach a ~500TPS send rate for queries.
I'm in the middle of a distributed experiment, I'll try to turn up the send rate above a 1k TPS
ok. Thanks
[Caliper annual newsletter] Caliper got a command line interface that showcases how you can start Caliper when it'll be published to npm. Make sure you read the getting started doc page carefully.
Just a few more steps until Caliper is actually published to npm :ok_hand:
Has joined the channel.
Hello everyone, while installing caliper the command *npm run bootstrap* is taking a lot of time, is it normal or something is wrong?
@patelkishan it's normal, it wires a few project dependencies together
@klenik with latest caliper npm run bootstrap taking more time any idea to reduce it?
Is there any workaround or alternate to that?
Thanks.
[ ](https://chat.hyperledger.org/channel/caliper?msg=a80ad53d-189b-46d0-8cc2-33fd26a3f923) It is stuck not progressing
@rkrish82 try it again after a repoclean. Once caliper is published to npm, you won't need to interact with the repo. For now, this is the only way to build caliper.
[ ](https://chat.hyperledger.org/channel/caliper?msg=N6ef9yz5ELT8WrSY4) @klenik Tried multiple times repo clean and bootstrap build same issue.
is there a package lock file lingering around and causing issues?
hello i have a fabric network in multiple machines, i can got caliper to work and its executing the transactions correctly but i cant get the monitor to check for the remote containers and it isnt throwing any errors, can anyone give me any advice?
@icarrascol Does your network run in the docker containers? . Currently, Caliper can monitor the remote containers, but cann't monitor the remote process.
Hi everyone, I have two machines running in a cluster (16.04 LTS). I would like to deploy containers on them and benchmark the nodes. My steps would be: 1) install caliper on each node, 2) configure the yaml files and 3) run them. Can someone help me with 2), 3) what are the exact steps to achieve this goal with caliper? Thank you in advance! Julien
@houqinghui yes it is running in docker containers, i set up the config with the machines ip:port/containername but it isnt detecting anything
@icarrascol If you need to access the Docker daemon remotely, you need to explicitly enable remote access. Beware that the default setup provides unencrypted and unauthenticated direct access to the Docker daemon. For details, refer to the official [Docker documentation](https://success.docker.com/article/how-do-i-enable-the-remote-api-for-dockerd).
@icarrascol Have you configured your remote docker daemons to allow remote connections/operations?
the command "caliper benchmark run -w ./packages/caliper-samples -c benchmark/simple/config.yaml -n network/fabric-v1.4/2org1peercouchdb/fabric-ccp-node.yaml
" is not working on the last released version. It says "caliper: command not found"
@julient Have you performed (successfully) the steps in the [Getting Started docs](https://hyperledger.github.io/caliper/docs/1_Getting_Started.html)? Specifically the `Install the Caliper CLI` part
Has joined the channel.
would like to send transactions with time intervals, for example I want to send 500 transactions but send one by one with a 30 seconds interval period. How can I do this using RateControllers in Hyperledger Caliper?
Hello, I would like to send transactions with time intervals, for example I want to send 500 transactions but send one by one with a 30 seconds interval period. How can I do this using RateControllers in Hyperledger Caliper?
When I set up my test with txNumber = 5000, localClients = 5 and tps = 5, then the 5 local clients send 5 transactions per second in parallel and concurrently?
Thanks in advance :)
Hi, the TPS is always measured at the "blockchain implementation" side - so if you specify localClients=5 and tps=5, then the clients will issue transactions at 1tps ... which is cumulatively 5TPS at the target side .... does that answer your question?
and each client will send one transaction??
if you specify X transactions, then assuming Y clients, each client will send X/Y transactions
(i really should use the thread feature of Rocket chat :joy: )
I understand it but the transactions will be sent in parallel? Suppose we have 500 transactions, and 5 clients and 50tps, so in the first second each client will send 10 transaction in order to complete 50 transaction per second?
Or does clients send transactions in disorder? In the first second one client could send 50 transactions and the other 4 clients 0 transactions?
ah, right ... I'm with you ... the clients will send the transactions in parallel
Thankssss....What about my first question *"I would like to send transactions with time intervals, for example I want to send 500 transactions but send one by one with a 30 seconds interval period. How can I do this using RateControllers in Hyperledger Caliper?"*
I would use the fixed rate controller, with the tx number and tps set accordingly. With that slow rate, a single client would be suitable
@JulianSolarte I'm curious how precisely Caliper handles 1/30 TPS, so we await your feedback :)
I fails when running the script to install caliper-cli (it attempts the 10 tries)
Here are the logs:
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node',
1 verbose cli '/usr/local/bin/npm',
1 verbose cli 'run',
1 verbose cli 'setup_verdaccio' ]
2 info using npm@6.9.0
3 info using node@v8.10.0
4 verbose run-script [ 'presetup_verdaccio',
4 verbose run-script 'setup_verdaccio',
4 verbose run-script 'postsetup_verdaccio' ]
5 info lifecycle caliper-tests-integration@0.1.0~presetup_verdaccio: caliper-tests-integration@0.1.0
6 info lifecycle caliper-tests-integration@0.1.0~setup_verdaccio: caliper-tests-integration@0.1.0
7 verbose lifecycle caliper-tests-integration@0.1.0~setup_verdaccio: unsafe-perm in lifecycle true
8 verbose lifecycle caliper-tests-integration@0.1.0~setup_verdaccio: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/julien/caliper/packages/caliper-tests-integration/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
9 verbose lifecycle caliper-tests-integration@0.1.0~setup_verdaccio: CWD: /home/julien/caliper/packages/caliper-tests-integration
10 silly lifecycle caliper-tests-integration@0.1.0~setup_verdaccio: Args: [ '-c', 'npm run start_verdaccio && node ./scripts/npm_serve' ]
11 silly lifecycle caliper-tests-integration@0.1.0~setup_verdaccio: Returned: code: 1 signal: null
12 info lifecycle caliper-tests-integration@0.1.0~setup_verdaccio: Failed to exec setup_verdaccio script
13 verbose stack Error: caliper-tests-integration@0.1.0 setup_verdaccio: `npm run start_verdaccio && node ./scripts/npm_serve`
13 verbose stack Exit status 1
13 verbose stack at EventEmitter.
@klenik What version of nodejs, npm, node-gyp and docker are you using?
@julient Try the suggestions in this thread: https://github.com/hyperledger/caliper/issues/478
Every additional info would be great to debug this mystic error, since we couldn't reproduce it
```
$ node -v
v8.11.4
$ npm -v
6.4.1
$ docker -v
Docker version 18.09.5, build e8ff056
$ docker-compose -v
docker-compose version 1.22.0, build f46880fe
```
As I could not resolve the problem on my machine, I deploy a VW on Azure:
18.04 lts
node -v 8.10.0
npm -v 6.9.0
node-gyp -v 5.0.0
Docker version 18.09.5, build e8ff056
the bootstrap was ok. I got those mistake when running the script: integration-test.sh
If you give me your public key I could give you access to it!
Hmm, it's strange, that the local publishing fails after a successful bootstrap... Could you open a Github issue about this, so the problem (and hopefully solution) will be easily accessible to others as well?
Please include any related error log (in a formatted way), and environment info
So I run everything in user mode. Is that right?
Yes, using root or sudo can complicate things, whereas your user has complete access to everything under your home dir (and every change is contained there)
@klenik the issue already exists as #478
While installing the Calipe CLI, it's given that run *export BENCHMARK=fabric-ccp* and then *./packages/caliper-tests-integration/scripts/run-integration-tests.sh*. What should be the replacement for fabric-ccp in the above script if I am benchmarking sawtooth?
While installing the Caliper CLI, it's given that run *export BENCHMARK=fabric-ccp* and then *./packages/caliper-tests-integration/scripts/run-integration-tests.sh*. What should be the replacement for fabric-ccp in the above script if I am benchmarking sawtooth?
Will it be just sawtooth?
the above is only to get the caliper CLI installed onto you machine as a temporary measure, until we are able to publish npm modules - once the above is run, you can use the CLI command and just point to your configuration files
@klenik I found the solutin. Verdaccio was not installed. I had to 'npm install -g verdaccio' after the bootstrap and then it worked :relieved:
@klenik I found the problem. Verdaccio was not installed by 'npm install'. I had to 'npm install -g verdaccio' after the bootstrap and then it worked :relieved:
Hello all, I was benchmarking sawtooth using caliper and got this error: https://imgur.com/fSS0sAW https://imgur.com/5qw4JIZ
Command used for benchmarking
caliper benchmark run -w ./packages/caliper-samples -c benchmark/simple/config-sawtooth.yaml -n network/sawtooth/simplenetwork/sawtooth.json
It's not able to start simple-tp-python, what can I do?
Hi, guys, what's the updated way of running zookeeper client? The equivalent of "npm run startclient -- zookeeper address" in the order documentation.
Hi, guys, what's the updated way of running zookeeper client?
Hi, guys, what's the updated way of running zookeeper client? The equivalent of "npm run startclient zookeeper_address" in older docs?
zooker_error.png
caliper_error.png.png
caliper_error.png
caliper_error.png
I am Kind of stuck there, any ideas.
Has anyone a good understanding of running caliper with zookeeper? I have 3 machines connected in a Swarm each having a copy of caliper. What configurations should I perform to run the simplest benchmark in that network using the given examples?
hello, is there a way to activate discovery service using caliper?
@icarrascol - we are working on adding that into Caliper right now :thumbup:
ah nice
Hello everyone, I am interested in benchmarking sawtooth-pbft using caliper so can someone guide me through the process?Thank you!
@patelkishan You can refer to [this doc](https://hyperledger.github.io/caliper/docs/1_Getting_Started.html). If you come accross some errors or have some questions, you can leave some infos here.
I did. But the problem is that the network topology as well as the consensus algorithm are different than the sample test given.I need to make changes and I am not able to figure out what to change.
I have the same issue. The documentation is not clear
Hello, I'm confused about Zookeeper, where is Master part? In server?
How can I configure the server in Zookeper? I'm confused about server IP
"clients": {
"type": "zookeeper",
"zoo" : {
"server": "10.229.42.159:2181",
"clientsPerHost": 5
}
}
@patelkishan Do you want to test your own blockchain network? You can refer to [the FAQ doc](https://hyperledger.github.io/caliper/docs/Caliper_FAQ.html),
@patelkishan Do you want to test your own blockchain network? You can refer to [the FAQ doc](https://hyperledger.github.io/caliper/docs/Caliper_FAQ.html), This doc will tell you to modify which configuration file.
@JulianSolarte Yeap, the documentation doesnot describe how to deploy Zookeeper clearly and just write down how to configure Caliper where Zookeeper is running well.
@JulianSolarte Yeap, the documentation doesnot describe how to deploy Zookeeper clearly and just write down how to configure Caliper where Zookeeper is running well. You can refer to [this doc](https://zookeeper.apache.org/doc/current/zookeeperStarted.html)
But it doesn't tell the modifications for sawtooth.The simple docker compose file has only one restapi and validator but my network has 5 nodes so 5 restapis,5 validators and even 5 pbft engines.Since my consensus algorithm and number of nodes(and also containers)changed, which files should I modify?
I created docker-compose file for sawtooth-pbft and smallbank workload. Please check what's wrong with it.
smallbank docker-compose file.txt
and here is the sawtooth.json file
sawtooth.json file.txt
Help please!!
@patelkishan Ok, i will try it , then come back to you.
I'm running zookeper server and client in the same machine just for looking how zookeper works and I got the next error
(node:8755) UnhandledPromiseRejectionWarning: Could not connect to ZooKeeper
(node:8755) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 5)
(node:8755) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
When I launch a Zookeper client it supposed it will create a node in caliper/clients but there is nothing there...
Err.JPG
Err.JPG
Hello, When I use zookeper and run the benchmark in server I got this error from the client, any suggestion?
Err.JPG
Has joined the channel.
Clipboard - June 21, 2019 10:58 AM
Clipboard - June 21, 2019 11:01 AM
Why can't it query mychannel?
@here Why can't it query mychannel?
@PB4 - it would be worth looking into the docker container logs, they should give more information
@PB4 These are error messages returned by Fabric, deliberately obfuscated for security reasons. In these cases you need to dig into the docker logs to see why the connection was dropped.
Err.JPG
Has joined the channel.
Hi all, has anyone installed node-gyp in cluster environment without sudo permission?
How can I change block size,transaction timeout if I am using caliper to test sawtooth(smallbank workload)? What are the other blockchain parameters which are fixed by caliper and where can I change them?
How can I change block size,transaction timeout if I am using caliper to test sawtooth(smallbank workload)? What are the other blockchain parameters which are fixed by caliper and how can I change them?
Will throughput increase if I increase RAM and internet speed?
Depends where the bottleneck is - both will of course help, but are you increasing the listed items client or server side?
Can you please describe what do you mean by client? The attribute named "client" in the benchmark config file is unchanged.(Client=2, what does this mean)
Can you please describe what do you mean by client? The attribute named "client" in the benchmark config file is unchanged.(Client=2, what does this mean?)
client would relate to anything that communicates with the blockchain technology under test (which is server side)
Can you please answer this question- "How can I change block size,transaction timeout if I am using caliper to test sawtooth(smallbank workload)? What are the other blockchain parameters which are fixed by caliper and how can I change them?"
those are blockchain technology specific, so would be modified within the docker config files under caliper-samples/network/sawtooth. To see the items that can be modified, you will need to check out the sawtooth docs
did you manage to run it?
check out the caliper/packages/caliper-sample README.md.. I guess we need to change the ips and run both command on each machine we use
hello everyone, can i benchmark a raft network using caliper?
While testing sawtooth with smallbank workload and total transactions =200, it says "There is no block with the id specified in the blockchain." and "Block not found". Out of 200 submitted, 180 are successful and 20 remain unfinished and then failed. Why is this happening?
If I'm making some architectural changes in the fabric environment, would I be able to test it by using caliper, using the new configurations?
@icarrascol Yes, a sample raft-based network is available in the Caliper samples directory which you can customize if you want
https://github.com/hyperledger/caliper/tree/master/packages/caliper-samples/network/fabric-v1.4.1/raft
@PB4 Yes, Caliper can adapt to almost to any Fabric network, you just have to put together the corresponding Caliper-side network configuration file. If you run into any limitations, let me know
https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html
@klenik Ok, thanks. I would share the results with you, once I'm done.
Can someone explain me how transactions are sent and how performance parameters are evaluated in caliper? The PSWG link given on Getting Started page is broken.
@patelkishan A report like [this](https://hyperledger.github.io/caliper/docs/2_Architecture.html#master) is generated based on the start and finish time of every transaction/query. These transactions are initiated by the [user test module](https://hyperledger.github.io/caliper/docs/2_Architecture.html#user-defined-test-module), when the [rate controller](https://hyperledger.github.io/caliper/docs/Rate_Controllers.html) grants them execution control. These are common for all platform, so the reported metric types are platform-independent.
The PSWG whitepaper: https://www.hyperledger.org/resources/publications/blockchain-performance-metrics
As per the implementation, will there be any performance advantage if I send multiple transactions in a batch(txnPerBatch=20) as compared to single transaction per batch(txnPerBatch=1)?
@patelkishan Well, batching things usually comes with some increased performance, but I can't say for sure. That's the purpose of Caliper, to measure it objectively :)
@klenik So you mean that if my throughput is increasing by sending multiple transactions in a batch then this is a characteristic of the platform being used and not that of Caliper?
@patelkishan Yes. Sawtooth natively supports transaction batches from the client side and dependencies between them. I guess it depends on the actual use case and nature of transactions. (Fabric doesn't support sending transaction batches from a client to a peer, they'll be sent one by one, even though the Caliper-Fabric adapter provides "batches" for convenience)
is the non ccp fabric able to run raft network benchmarks or should i configure fabric-cpp files to run it?
is the non ccp fabric able to run raft network benchmarks or should i configure fabric-ccp files to run it?
hello everyone is there a way to skip chaincode installation with fabric-ccp
@icarrascol You should use the Fabric-CCP adapter, the other will be deprecated soon. If you provide the correct chaincode ID and version in the network configuration file, then the adapter will detect it if the chaincode is installed and/or instantiated
ok, ty
error.png
i am trying to test an already existing network
@icarrascol If you remove the version check part from [this line](https://github.com/hyperledger/caliper/blob/27ec5f94e70a4cb3856f2b1dfd26b3e2f95b087f/packages/caliper-fabric-ccp/lib/fabric.js#L1097), and re-run the integration test (to update the published packages), does it work?
Err (1).JPG
Did I have to change the network request adress jjson client? "peer1": {
"requests": "grpc://localhost:7051",
"events": "grpc://localhost:7053",
peer.JPG
I have made some changes to the fabric architecture (let's call it "myversion" of fabric) and now I want to check the tps of a network deployed on "myversion" with caliper. Is it possible to do so? And, if yes, how would I make caliper to use "myversion", in place of fabric?
@PB4 if the official sdk is still compatible with your custom fabric, then just point caliper to the endpoints of your deployed network. If you broke the API, then you'll have to write your own adapter for your new platform
@klenik these configurations that i changed do not require any changes in the interface of fabric, so I think it should not be a problem.
[ ](https://chat.hyperledger.org/channel/caliper?msg=LZkzuLoEpCLrjGqyZ) Someone can help me please?
@klenik i deleted that row and it works, ty
@icarrascol Cool, so the instantiate query probably doesn't return a version, just the id. I'll confirm it and fix it.
Has joined the channel.
Has joined the channel.
hi can anyone help me with connection profile for Caliper for case of mutual TLS enabled?
```clients:
user@org1.example.com:
client:
organization: Org1
affiliation: org1.department1
credentialStore:
path: ./../../../caliper-test/network/wallet/hfc-kvs/org1
cryptoStore:
path: ./../../../caliper-test/network/wallet/hfc-cvs/org1
clientPrivateKey:
path: ./../../../caliper-test/network/config/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/key.pem
clientSignedCert:
path: ./../../../caliper-test/network/config/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem
tlsCerts:
systemCertPool: true
client:
key:
path: ./../../../caliper-test/network/config/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/client.key
cert:
path: ./../../../caliper-test/network/config/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/client.crt```
I am not sure if tlsCerts is in correct format I am unable to find any sample for such config...
is there anyway I can invoke ```setTlsClientCertAndKey``` and make a workaround in Cliper?
is there anyway I can invoke ```setTlsClientCertAndKey``` and make a workaround in Caliper?
thank you in advance
Clipboard - June 28, 2019 4:18 PM
Does anyone have an explanation for this?
I can't understand whos this is happening.
We'll need more information I'm afraid as there are so many variables - what were u doing, what is unexpected? What is the system topology, what is the transaction being run, what is the technology being tested ...
3org1peergoleveldb
Local clients
Single VM hosting all the containers
The Red cells are unexpected I guess. I would expect higher max latency for higher send rate but the red cell in the center 0.18 is an exception.
A few more qs: what chaincode language and is it a sample caliper test? If not a sample test, what (in generic terms) does the test function make the chaincode do? (ie read/write to the world state etc). In general the center red cell is certainly strange, I would be curious on the repeatability of that. The RHS set looks like you have reached the limits of the VM (especially if hosting 3orgs) You would expect the TPS to reach a threshold number once the maximum throughput is reached, but with the network being flooded with requests and becoming overloaded, the behaviour is always "strange". This is even more so if you are using node chaincode that can easily become CPU bound, and having an impact on all current transactions
Benchmarking results states that Dsik Read=0 and Disk Write=0 for all containers. How to fix this?
Benchmarking results states that Disk Read=0 and Disk Write=0 for all containers. How to fix this?
Every block contains only one batch(50txns/batch), even when increasing block_publish_time. What can be the possible reason?
txns submission rate is very high.
Caliper hooks into the Docker stats APIs to obtain that information via the node `dockerode` module.
Has joined the channel.
good evening, fellas, is everything ok? I am doing some tests with hyperledger fabric, and I really would like to find something close to the "server queue" and why I transaction would fail or has success. Does anyone know something about It?
Has left the channel.
Has joined the channel.
Hi all, Can anyone tell me the exact steps to run the caliper on hyperledger fabric network.
Hi guys, I want to use Caliper for burrow? Can anyone give me instructions ?
Hello people,
Does anyone have idea if it's possible to override 'credentialStore' to use specific certificate?
Anyone has experience with mutual TLS option?
Once I enabled mutual TLS and have CORE_PEER_TLS_CLIENTCERT_FILE, Caliper fails with BAD_CERTIFICATE error...
Can't find the way to override wrong certificate it is providing...
Anyone has experience with mutual TLS option?
Once I enabled mutual TLS and have CORE_PEER_TLS_CLIENTCERT_FILE set, Caliper fails with BAD_CERTIFICATE error...
Can't find the way to override wrong certificate it is providing...
[ ](https://chat.hyperledger.org/channel/caliper?msg=a3aL3Zj7cuqngW6x6)
Clipboard - July 2, 2019 7:58 AM
Thanks for your response, I repeated the test multiple times and I still get the same results (the strange red box). I am using a node chaincode which runs an auction transaction. I do understand your point with reaching the threshold of the VM but my cloud monitoring is not showing any sign of saturation (it's using 60% of the CPU at most).
Something even more strange happening now. I run the same experiment with 200 TPS send rate in 4 different hardware setting and it seems that the CPU usage in Higher spec VM is higher Than the lower spec VMs.
Has joined the channel.
jk
Hi guys, I am confusing to find where is source code of chaincode located in calliper repository. Could someone help me please?
I think if you use marbles example and fabric...
/packages/caliper-application/src/fabric/marbles/
Yes, thanks I find it. But if you look at the latest source code of calliper... there is no caliper-application folder
Okay, I find it, now it's located at caliper-samples folder
Hi guys, I am doing some tests with hyperledger composer, and I really would like to find something close to the "server queue" and why I transaction would fail or has success after a threshold. Does anyone know something about It?
There is a term named SEND RATE in my benchmark result. What does this mean? My rate is 100tps as mentioned in benchmark config file, what's this 100 tps? How are these two rates different? An answer is required urgently, thanks!
There is a term named SEND RATE in my benchmark result. What does this mean? Rate is 100tps as mentioned in benchmark config file, what's this 100 tps? How are these two rates different? An answer is required urgently, thanks!
Configurations while benchmarking sawtooth are transactions - 4000, txn/batch-50, tps- 4000,client-1,type-smallbank. I am not able to understand why there are multiple batches in a block initially and just 1 batch per block later on. Any parameter that I need to change or any kind of help?
stack.png
If my number of clients >1 then I get an error like "There is no block with the id specified in the blockchain." but if clients=1 then no problem.Why so?
Has joined the channel.
how to install caliper-fabric
Has joined the channel.
Is there any way to debug User Defined Test Module in VSCode? I already raised an issue in the Github page (https://github.com/hyperledger/caliper/issues/498)
Start zooservice in server then: 1. in the caliper/benchmark/simple/config-zookeeper.yaml, you should set the same ip of the server. 2. npm run startclient -- ip:port, this ip should be the same ip of the server. 3. You should run the caliper test in the server machine.
Clipboard - July 5, 2019 12:12 PM
It is showing Error: connect ECONNREFUSED 127.0.0.1:4873\
I have build the caliper. And it is working till instantiating chaincode, but while running test, it fails with --Error: Invalid Smart Contract function name.
thanks for replying
Has joined the channel.
hello everyone , i need some help regarding use of hyperledger caliper
I am wondering does hyperledger caliper supports dynamic arguments to be passed while writing benchmark files.
for ex: While benchmarking transfer function of chaincode for 1000 transactions ,can i pass 1000 different arguments in function
of all my transactions can be tested with a static argument defined in configuration file.
Has joined the channel.
hello everyone,
Hello everyone,I am trying to install caliper CLI, while doing that i am getting error as "The gRPC binary module was not installed. This may be fixed by running "npm rebuild" ".
I tried all possible ways to solve this error ,but still getting the same.can someone help me please?
@RahulPatil2 can you post screenshot of the error
Error
@harsh-98 i've attached Error screenshot.
@marinkovicvlado You can use the Fabric-CCP adapter so configure mutual TLS.
1. On Caliper side, you assemble your network configuration similarly to the server-side TLS scenario, plus you set the `mutual-tls` attribute to true: https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html#mutual-tls
2. You also have to configure the Fabric side to use mutual TLS. Refer to the Fabric docs, or see this Caliper sample:
a) Fabric setup: https://github.com/hyperledger/caliper/blob/master/packages/caliper-samples/network/fabric-v1.1/2org1peergoleveldb/docker-compose-mutual-tls.yaml
b) Network config: https://github.com/hyperledger/caliper/blob/master/packages/caliper-samples/network/fabric-v1.1/2org1peergoleveldb/fabric-ccp-node-mutual-tls.yaml
@bamboo The Burrow support is still experimental, but take a look at the provided example network: https://github.com/hyperledger/caliper/tree/master/packages/caliper-samples/network/burrow/simple
@jeetabhi15 The steps to run a Caliper benchmark is platform independent: https://hyperledger.github.io/caliper/docs/1_Getting_Started.html
You need to pass a [test configuration file](https://hyperledger.github.io/caliper/docs/2_Architecture.html#configuration-file) and a network configuration file, [for Fabric](https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html), in your case
@patelkishan The send rate tells you how many TXs were sent to the SUT by Caliper per second (in average). Normally, it is the rate you specify in your config file. But the actual rate can vary (could be less if the clients can maintain that sending speed). As for the TX/batch/block question: the Smallbank workload can do multiple things, and the sample config is put together so that first it creates some accounts, then maybe moves some amount between them, etc. So take a look at the contents of the transactions, maybe this behavior is expected based on the config file.
@harsh-98 Currently, you need to clone the repo and install the Caliper packages locally. We're working on publishing npm packages, and then you won't need to go the github repo.
https://hyperledger.github.io/caliper/docs/1_Getting_Started.html
@harsh-98 What is the exact test you run?
@himanshuchawla009 The arguments in the benchmark configuration file are usually used to define behaviors/parameters for the entire test round. However, you can do anything in your `run` callback. When you make the `invokeSmartContract` call, you can assemble the call parameters in any way you like. You could even get the amount to transfer from a remote webservice :) (but don't do that, it'll hurt the send rate)
@RahulPatil2 I wouldn't recommend installing caliper as `root`, it can cause unforeseen problems. Caliper can run perfectly under a non-root user, and installing packages is less error-prone that way. The other possible source of the error is your NodeJs version. 9.x should work, but if the non-root solution doesn't solve your problem, try using NodeJs 8.x LTS
Thanks for replying
when running
export BENCHMARK=fabric-ccp
./packages/caliper-tests-integration/scripts/run-integration-tests.sh
I am getting the below error
# Delete any existing configuration.
cleanup
cleaning up from /home/abhijit/go/src/github.com/medisot2/caliper/caliper/packages/caliper-tests-integration
> caliper-tests-integration@0.1.0 stop_verdaccio /home/abhijit/go/src/github.com/medisot2/caliper/caliper/packages/caliper-tests-integration
> PM2_HOME=.pm2 pm2 stop verdaccio || true
[PM2][ERROR] Process verdaccio not found
┌──────────┬────┬──────┬─────┬────────┬─────────┬────────┬─────┬─────┬──────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
└──────────┴────┴──────┴─────┴────────┴─────────┴────────┴─────┴─────┴──────┴──────────┘
Use `pm2 show
==========
[PM2][ERROR] Process verdaccio not found ┌──────────┬────┬──────┬─────┬────────┬─────────┬────────┬─────┬─────┬──────┬──────────┐ │ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │ └──────────┴────┴──────┴─────┴────────┴─────────┴────────┴─────┴─────┴──────┴──────────┘ Use `pm2 show
at the time of running normal calipar...
stdErr: npm notice shasum: b1de30fd031c7a57d54697312647cd40437db89f
npm notice integrity: sha512-wofiMJSGODCmw[...]pz7+S1B0gIlOA==
npm notice total files: 44
npm notice
stdErr: npm
stdErr: ERR! code
stdErr: EPUBLISHCONFLICT
stdErr: npm
stdErr: ERR! publish fail Cannot publish over existing version.
npm
stdErr: ERR! publish fail Update the 'version' field in package.json and try again.
stdErr: npm
stdErr: ERR!
stdErr:
stdErr: publish fail
stdErr:
stdErr: npm ERR! publish fail To automatically increment version numbers, see:
npm ERR! publish fail npm help version
stdErr:
npm ERR! A complete log of this run can be found in:
npm ERR! /home/abhijit/.npm/_logs/2019-07-09T19_52_55_849Z-debug.log
Failed to publish package caliper-core to local npm server (attempt 10/10)
Error: Failed to execute "npm publish --registry http://localhost:4873 ../caliper-core" with return code 1
at ChildProcess.
please help me
I have successfully integrated caliper, thanks though.
@jeetabhi15 you can refer https://wiki.hyperledger.org/display/~harsh-98/Integration+caliper+in+your+project, if any issue let me know
@RahulPatil2 @klenik is right, avoid root and use 8+ node version. In your case, try npm run repoclean and then bootstrap
hello everyone, i am getting an error "failed to install package caliper-cli from local server"
plz help
i cloned caliper and run following commands:-
npm install
npm run repoclean
npm run bootstrap
export BENCHMARK=fabric-ccp
./packages/caliper-tests-integration/scripts/run-integration-tests.sh
while running last script i am getting above error
@jeetabhi15 Looks like you can't publish the same package with the same version again. Try modifying this line:
https://github.com/hyperledger/caliper/blob/27ec5f94e70a4cb3856f2b1dfd26b3e2f95b087f/packages/caliper-tests-integration/scripts/npm_serve.js#L80
Add the `--force` flag inside the command, e.g.:
```
await invokeCmd(`npm publish --registry http://localhost:4873 --force ../${p}`);
```
Let me know if this solves the problem.
@himanshuchawla009 Is there a more specific error message in the log?
stdErr: npm
stdErr:
stdErr: ERR!
stdErr: A complete log of this run can be found in:
npm ERR! /home/abhijit/.npm/_logs/2019-07-10T08_32_02_061Z-debug.log
Failed to install test package caliper-cli from local npm server (attempt 10/10)
Error: Failed to execute "npm install --registry http://localhost:4873 -g caliper-cli@0.1.0" with return code 1
at ChildProcess.
by giving --force it is not solved
Failed to install test package caliper-cli from local npm server (attempt 1/10)
Error: Failed to execute "npm install --registry http://localhost:4873 --force -g caliper-cli@0.1.0" with return code 1
at ChildProcess.
@jeetabhi15 `--force` was a suggestion for publishing, the install part shouldn't need it. What's in the `/home/abhijit/.npm/_logs/2019-07-10T08_32_02_061Z-debug.log` file (or the latest log file)?
@klenik these are error logs
20484 verbose stack Error: EACCES: permission denied, symlink '../lib/node_modules/caliper-cli/caliper.js' -> '/usr/bin/caliper'
20485 verbose cwd /home/fabric/caliper/packages/caliper-tests-integration
20486 verbose Linux 4.15.0-45-generic
20487 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "--registry" "http://localhost:4873" "-g" "caliper-cli@0.1.0"
20488 verbose node v8.16.0
20489 verbose npm v6.4.1
20490 error path ../lib/node_modules/caliper-cli/caliper.js
20491 error code EACCES
20492 error errno -13
20493 error syscall symlink
20494 error Error: EACCES: permission denied, symlink '../lib/node_modules/caliper-cli/caliper.js' -> '/usr/bin/caliper'
20494 error { Error: EACCES: permission denied, symlink '../lib/node_modules/caliper-cli/caliper.js' -> '/usr/bin/caliper'
20494 error cause:
20494 error { Error: EACCES: permission denied, symlink '../lib/node_modules/caliper-cli/caliper.js' -> '/usr/bin/caliper'
20494 error errno: -13,
20494 error code: 'EACCES',
20494 error syscall: 'symlink',
20494 error path: '../lib/node_modules/caliper-cli/caliper.js',
20494 error dest: '/usr/bin/caliper' },
20494 error stack: 'Error: EACCES: permission denied, symlink \'../lib/node_modules/caliper-cli/caliper.js\' -> \'/usr/bin/caliper\'',
20494 error errno: -13,
20494 error code: 'EACCES',
20494 error syscall: 'symlink',
20494 error path: '../lib/node_modules/caliper-cli/caliper.js',
20494 error dest: '/usr/bin/caliper' }
20495 error The operation was rejected by your operating system.
20495 error It is likely you do not have the permissions to access this file as the current user
20495 error
20495 error If you believe this might be a permissions issue, please double-check the
20495 error permissions of the file and its containing directories, or try running
20495 error the command again as root/Administrator (though this is not recommended).
20496 verbose exit [ -13, true ]
i have changed the permissions for /usr/lib/node_modules using following commnad
chown -R myUserName: /usr/lib/node_modules/
still it is giving the same error
i have changed the permissions for /usr/lib/node_modules using following commnad
chown -R myUserName: /usr/lib/node_modules/
still it is giving the same error
20484 verbose stack Error: EACCES: permission denied, symlink '../lib/node_modules/caliper-cli/caliper.js' -> '/usr/bin/caliper'
20485 verbose cwd /home/fabric/caliper/packages/caliper-tests-integration
20486 verbose Linux 4.15.0-45-generic
20487 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "--registry" "http://localhost:4873" "-g" "caliper-cli@0.1.0"
20488 verbose node v8.16.0
20489 verbose npm v6.4.1
20490 error path ../lib/node_modules/caliper-cli/caliper.js
20491 error code EACCES
20492 error errno -13
20493 error syscall symlink
20494 error Error: EACCES: permission denied, symlink '../lib/node_modules/caliper-cli/caliper.js' -> '/usr/bin/caliper'
20494 error { Error: EACCES: permission denied, symlink '../lib/node_modules/caliper-cli/caliper.js' -> '/usr/bin/caliper'
20494 error cause:
20494 error { Error: EACCES: permission denied, symlink '../lib/node_modules/caliper-cli/caliper.js' -> '/usr/bin/caliper'
20494 error errno: -13,
20494 error code: 'EACCES',
20494 error syscall: 'symlink',
20494 error path: '../lib/node_modules/caliper-cli/caliper.js',
20494 error dest: '/usr/bin/caliper' },
20494 error stack: 'Error: EACCES: permission denied, symlink \'../lib/node_modules/caliper-cli/caliper.js\' -> \'/usr/bin/caliper\'',
20494 error errno: -13,
20494 error code: 'EACCES',
20494 error syscall: 'symlink',
20494 error path: '../lib/node_modules/caliper-cli/caliper.js',
20494 error dest: '/usr/bin/caliper' }
20495 error The operation was rejected by your operating system.
20495 error It is likely you do not have the permissions to access this file as the current user
20495 error
20495 error If you believe this might be a permissions issue, please double-check the
20495 error permissions of the file and its containing directories, or try running
20495 error the command again as root/Administrator (though this is not recommended).
20496 verbose exit [ -13, true ]
@himanshuchawla009 now it fails when trying to create the symlink for the caliper binary, so try to give the same access to the `/usr/bin/` dir
when i give same access to user for /usr/bin/ dir ,it removes my sudo user privilleges
it worked by giving same permissions to /usr/bin/npm
thanks @klenik
@himanshuchawla009 Cool, I was about to suggest an other way, but glad it worked!
249 http fetch GET 200 http://localhost:4873/inflight 585ms
250 http fetch GET 200 http://localhost:4873/path-is-absolute 567ms
251 silly pacote range manifest for inflight@^1.0.4 fetched in 595ms
252 silly resolveWithNewModule inflight@1.0.6 checking installable status
253 silly pacote range manifest for path-is-absolute@^1.0.0 fetched in 590ms
254 silly resolveWithNewModule path-is-absolute@1.0.1 checking installable status
255 http fetch GET 200 http://localhost:4873/once 683ms
256 silly pacote range manifest for once@^1.3.0 fetched in 692ms
257 silly resolveWithNewModule once@1.4.0 checking installable status
258 timing npm Completed in 22563ms
259 error cb() never called!
260 error This is an error with npm itself. Please report this error at:
261 error
this is the error in my log
Hello, Is there a way to see the latency values for every single transaction in a test?
@nimaafraz Caliper only reports aggregated stats. But you can acquire the individual TX details in your callback module
https://hyperledger.github.io/caliper/docs/Fabric_Ccp_Configuration.html#transaction-data-gathered-by-the-adapter
Has joined the channel.
Hey guys, I have edit every single configtx file in caliper folder changing the batch size and timeout but I always get the same throught result, something around ~10tps, What am I doing wrong?
*throughput*
@klenik can you also suggest the other way,because it worked on my local system but i am again getting this error even after doing after above steps
@himanshuchawla009 See my comment here:
https://github.com/hyperledger/caliper/issues/478#issuecomment-510006728
thanks @klenik it worked and it results that if node is installed using nvm this error doesn,t come up .
@himanshuchawla009 yep, nvm sets this path to something under your user profile :thumbsup:
@casm3 Make sure you regenerated the artifacts (genesis block and channel config) from those modified config files.
Has joined the channel.
Thank you, Klenik. How do I regenerate those artifacts? By running integration tests once again?
i am getting error given below when increase the tps and transaction number
Error: Failed to connect before the deadline URL:grpc://localhost:8051
on low tps it works fine
@casm3 The network examples contain a `generate.sh` script, just run that after modifying the configs. It only affects the runtime artifacts, so you don't need to republish the packages.
For example, for the 1.4.0. Fabric network:
https://github.com/hyperledger/caliper/tree/master/packages/caliper-samples/network/fabric-v1.4/config
@himanshuchawla009 Your Fabric network is overloaded, thus the connection issues. I'm guessing you're running the test in a single machine. For a proper performance evaluation, you need to distribute your Fabric network on multiple machines (just like a production setup)
It works! Thank you once again.
:thumbsup:
Sry to boter you guys once again, but does anyone know where is located the local-client.js file? And why is the txUpdateTime limited to 1000? I was thinking that the obtained failures were the result of the Batch Timeout, but after updated it I still get some failures even with a send rate of 100tps.
@casm3 No problem, that's the purpose of the channel :)
`txUpdateTime` is the console update interval, so it's purely progress reporting. It's default value is 1000, which means 1s. You can override it in multiple ways, as discussed in the runtime config doc page: https://hyperledger.github.io/caliper/docs/Runtime_Configuration.html
@casm3 What kind of errors do you get? 100 TPS might be a lot, if you run the entire Fabric network on a single machine (and it's not a strong server).
actually it is not an error, but a set of transaction that fail, and I don't know why it happens.
If a transaction is marked as failed, then some kind of error message should be displayed on the console about the reason
Clipboard - July 11, 2019 12:22 PM
Which adapter are you using?
I am using the default settings for fabric v1.3 and the file basic-sample-network.js
What is the command you use to execute the benchmark? That'll reveal which platform are you testing (and also the workload you use)
caliper benchmark run -c benchmark/composer/config.yaml -n network/fabric-v1.3/2org1peercouchdb/composer.json -w ../caliper-samples/
Hmm, yes, it looks like the Composer adapter doesn't provide an error message. You can log the error at [this line](https://github.com/hyperledger/caliper/blob/fdff118805047eddf73422725420a976ec69d92f/packages/caliper-composer/lib/composer.js#L160) then reinstall/republish Caliper to see the changes
Has joined the channel.
Hello, can anybody please help me with the issue I am facing while installing caliper CLI. I am getting below error
stdErr:
stdErr: npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2019-07-12T11_04_11_176Z-debug.log
Failed to install test package caliper-cli from local npm server (attempt 9/10)
Error: Failed to execute "npm install --registry http://localhost:4873 -g caliper-cli@0.1.0" with return code 1
at ChildProcess.
I was getting the same thing, I just restarted the server and tried again and everything was ok. Dont know why.
are you using the same command given in caliper webiste?
yeah.
export BENCHMARK=fabric-ccp
./packages/caliper-tests-integration/scripts/run-integration-tests.sh
strange
But if I dont know what causes the error (Org, Peer, Latency, Timeout, ...) and the log doesnt keep it either, I think that I am going to be on the same boat, right? I'll try the fabric adapter and see what happens, but thank you once more.
@casm3 If you don't need Composer, then definitely use the Fabric-CCP adapter.
(The mentioned line can be extended with a logger.error(err) call, so you could see what's the reason for failure.)
@ashwin24aug If you're facing CLI install issues, take a look at this comment (or the messages before), might help you (or use my branch that's also referenced from the message, might make things easier)
https://github.com/hyperledger/caliper/issues/478#issuecomment-510006728
thank you
*Error: failed to execute transaction b4449af2f5fd3dc081f7191815b9a1f3040ead2467758b38a253a2c1ccbc92a9: error sending: timeout expired while executing transaction.* so there is another timeout setting besides the batchtimeout?
Has joined the channel.
can anyone tell me that what should be the perfect environment set up to produce 1000+ tps with a simple chaincode like balance transfer sample app.With 2 org each having 2 peers on 16gb 4 cpu machines its not going beyond 250~ tps.
[Annual Caliper Newsletter]
The local publishing and installation of Caliper has been improved a bit in order to help debug issues many user are facing.
See the new guideline for setting up Caliper until it's published on npm:
https://github.com/hyperledger/caliper/tree/master/packages/caliper-tests-integration
That's not a straightforward question to answer. You'll have to monitor your resources to find the bottleneck, and upgrade your machines accordingly. It depends on many things, like your chaincode complexity, your Fabric policies (like endorsement), and general configuration of your network (ordering, gossip, channels, etc)
Has joined the channel.
Greetings. I am trying to use caliper, but I am having issues building it. When I run `npm run bootstrap` I received this huge error log in the terminal: https://pastebin.com/0JqSg6Ms
Does this provide any clue to what I am doing wrong? I have all pre-requisites installed (with NodeJS 10) and I did not use `sudo`to execute the build commands.
Greetings. I am trying to use caliper, but I am having issues building it. When I run `npm run bootstrap` I received this huge error log in the terminal: https://pastebin.com/0JqSg6Ms
Does this provide any clue to what I am doing wrong? I have all pre-requisites installed (with NodeJS 10) and I did not use `sudo`to execute the build commands (with the exeption of `sudo chown -R $USER:$(id -gn $USER) /home/joao/.config`, which was what was asked during the previous 2 steps).
@snakejerusalem that's a problem with grpc not yet releasing for the latest LTS version of node ... you are (by the looks of it) on node 10.16 (the LTS version) but will need to drop down to 10.15 until the binaries are available for GRPC
Has joined the channel.
Hello, I am trying to run benchmark on remote deployed network (IBM Blockchain Platform 2.0) which deployed on Kubernetes. So I am able to get chaincode transaction throughput but monitor for docker processes does not work I have provided the remote worker node url (http://host:2375), but I didn't get any resource monitoring statistics. Is this possible to get resource statistics for docker container running into kubernetes (pods->containers)? Quick response will be really appreciated.
Has joined the channel.
@nkl199 I downgraded to nodejs 10.15.0 but the problem persists :|
I even created a clean installation of a nodejs 10.15.0 binary in another machine , still got the same issue. Should I checkout the repository at an older commit?
IBP is slightly different, we are looking into changing the Caliper base monitor, but to get yourself going faster I would strongly recommend that you connect the K8 service that you are using for IBP to Prometheus/Grafana - there are some really good samples/tutorials out there that are k8 specific
That should not be necessary - can you make the error available in pastebin again pls?
@nkl199 here it is the error I got from my latest attempt at building caliper: https://pastebin.com/js3mP0VQ
Also, I don't know if this is important, but here it is how I installed nodejs 10.15.0:
```
curl https://nodejs.org/download/release/v10.15.0/node-v10.15.0-linux-x64.tar.gz --output node-v10.15.0.tar.gz
tar -xvzf node-v10.15.0.tar.gz
cd node-v10.15.0-linux-x64/
sudo cp bin/node /usr/local/bin/
ln -s /home/joao/node-v10.15.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
ln -s /home/joao/node-v10.15.0-linux-x64/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx
```
Also, I don't know if this is important, but here it is how I installed nodejs 10.15.0:
```
$curl https://nodejs.org/download/release/v10.15.0/node-v10.15.0-linux-x64.tar.gz --output node-v10.15.0.tar.gz
$tar -xvzf node-v10.15.0.tar.gz
$cd node-v10.15.0-linux-x64/
$sudo cp bin/node /usr/local/bin/
$ln -s /home/joao/node-v10.15.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
$ln -s /home/joao/node-v10.15.0-linux-x64/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx
```
Also, I don't know if this is important, but here it is how I installed nodejs 10.15.0:
```
$ curl https://nodejs.org/download/release/v10.15.0/node-v10.15.0-linux-x64.tar.gz --output node-v10.15.0.tar.gz
$ tar -xvzf node-v10.15.0.tar.gz
$ cd node-v10.15.0-linux-x64/
$ sudo cp bin/node /usr/local/bin/
$ ln -s /home/joao/node-v10.15.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
$ ln -s /home/joao/node-v10.15.0-linux-x64/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx
```
I had to do it this way because there was no installer for version 10.15 available anymore at the repository, only for 10.16
Finally, this is my linux distro:
```
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS
Release: 16.04
Codename: xenial
```
Finally, this is the linux distro on that machine:
```
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS
Release: 16.04
Codename: xenial
```
Has joined the channel.
Hello, I'm experiencing the following: running the example test for fabric seems to work fine. Running it for sawtooth gives the following error: `error: [sawtooth.js]: invokeSmartContract failed, Error: Unable to load batch builder for simple[1.0] at src/contract/sawtooth/simple/SimpleBatchBuilder.js::Cannot find module 'caliper-sawtooth'` can someone provide a bit of guidance?
Has joined the channel.
Hello everyone, I am trying to understand how to run a performance evaluation test on a deployed Hyperledger Composer network. I tried to read the related section on the documentation(https://hyperledger.github.io/caliper/docs/Composer_Configuration.html) but I think that it's not it is not very clear for those approaching for the first time to Caliper. I cannot find a basic but complete step-by-step guide for running a simple test.
I also posted a question on StackOverflow: https://stackoverflow.com/questions/57142705/hyperledger-caliper-tutorial-for-composer-network
Any help would be appreciated
Hello everyone, I am trying to understand how to run a performance evaluation test on a deployed Hyperledger Composer network. I tried to read the related section on the documentation(https://hyperledger.github.io/caliper/docs/Composer_Configuration.html) but I think that it's not very clear for those approaching for the first time to Caliper. I cannot find a basic but complete step-by-step guide for running a simple test.
I also posted a question on StackOverflow: https://stackoverflow.com/questions/57142705/hyperledger-caliper-tutorial-for-composer-network
Any help would be appreciated
HI @RiccardoBonesi - are there any specific issues that you are facing?
The general process is the same for all Caliper runs, the main difficulty is finding the required links between the differing config files
Has joined the channel.
Hi Does anyone have documentation/tutorial for using caliper with fabric
In particular, after having followed the instruction in "Building caliper" and "Installing the Caliper cli" sections (https://hyperledger.github.io/caliper/docs/1_Getting_Started.html#building-caliper) I am trying to run a sample benchmark from "Run a sample benchmark" section. I don't understand which file I need to target with the "-n" parameter.
In particular, I am using the first-network sample from Hyperledger Fabric samples with a multi-org configurations and I tried to target the confitx.yaml file but I receive this error: "Error: The configuration file [/home/riccardo/fabric-dev-servers/fabric-samples/first-network/configtx.yaml] is missing its "caliper.blockchain" attribute"
ah, looks like you are targetting something from a non-caliper folder. You can start with the same composer benchmark we run in the regressions tests via `caliper benchmark run -c benchmark/composer/config.yaml -n network/fabric-v1.3/2org1peercouchdb/composer.json -w ../caliper-samples/`
all the composer samples and their config files are in the `caliper/packages/caliper-samples/benchmark/composer/` folder
I still don't understand which files I have to define if I want to run a benchmark on my Composer business network
you will need test files that interact with your business network (similar to the files in `caliper/packages/caliper-samples/benchmark/composer/composer-samples/`
and specify those as callbacks in your config files
the config files in caliper are not the same (but are similar) to those from the hyperledger samples
Ok thank you for your help :)
Dear Caliper users - we are going though the final stages before publishing to npm. The most significant of these is the removal of the "old" fabric adapter, and the renaming of the fabric-ccp adapter to become the only fabric adapter for use when benchmarking Fabric. The first step has now been merged, and we will now be working on the renaming of fabric-ccp, before publishing modules to npm :tada:
:thumbsup:
Note that if you relied heavily on the "old" adaptor, it is still available in the github history, though we will not be supporting it
Has joined the channel.
Hi Everyone, I am new with this plateform. Please let me know, how i can measure the performance of our prototype which been built using Fabric with composer. Please help me in this so i can check the performance of our network.
I'd recommend using the Composer adapter - start by deploying and investigating the current samples tested (within the samples), then look into deploying your BNA and writing targeted tests for it to drive the transactions of interest
Has joined the channel.
I am receiving this error when i execute tis command
```
kindle@kindle-V520-15IKL:~/caliper/caliper$ npm run bootstrap
> caliper@0.1.0 bootstrap /home/kindle/caliper/caliper
> lerna bootstrap
lerna info version 2.0.0
lerna info Bootstrapping 9 packages
lerna info lifecycle preinstall
lerna info Installing external dependencies
lerna info hoist Installing hoisted dependencies into root
lerna info hoist Pruning hoisted dependencies
lerna info hoist Finished pruning hoisted dependencies
lerna ERR! execute Error: Command failed: npm install
lerna ERR! execute npm WARN deprecated hoek@4.2.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
```
I am receiving this error when i execute this command
```
kindle@kindle-V520-15IKL:~/caliper/caliper$ npm run bootstrap
> caliper@0.1.0 bootstrap /home/kindle/caliper/caliper
> lerna bootstrap
lerna info version 2.0.0
lerna info Bootstrapping 9 packages
lerna info lifecycle preinstall
lerna info Installing external dependencies
lerna info hoist Installing hoisted dependencies into root
lerna info hoist Pruning hoisted dependencies
lerna info hoist Finished pruning hoisted dependencies
lerna ERR! execute Error: Command failed: npm install
lerna ERR! execute npm WARN deprecated hoek@4.2.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
```
Please help me in this
Has joined the channel.
Hi Everyone, Once i run the benchmark then how i can check the performance of our business network?
the result of the benchmark completion is:
- a html doc containing details of the run
- results printed to console for the benchmark that was run
How it print html doc? I mean where it html file is located in caliper setup?
it is created in the directory from where the benchmark command was run
Hello everyone, I have this problem with Caliper:
I can successfully run this command:
`caliper benchmark run -c benchmark/composer/config.yaml -n network/fabric-v1.3/2org1peercouchdb/composer.json -w ../caliper-samples/`
But when I change to fabric-v1.4 with 3 orgs and 2 peers
`caliper benchmark run -c benchmark/composer/config.yaml -n network/fabric-v1.4/3org2peercouchdb/composer.json -w ../caliper-samples/`
I get this error:
`Network start complete, activating user network card PerfNetworkAdmin@basic-sample-networkerror: [composer_utils.js]: composer.getBusNetConnection() failed for cardName [PerfNetworkAdmin@basic-sample-network] with error: Error: Error trying to ping. Error: 2 UNKNOWN: access denied: channel [mychannel] creator org [Org1MSP]
at _checkRuntimeVersions.then.catch (/home/riccardo/.nvm/versions/node/v8.16.0/lib/node_modules/caliper-cli/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:886:34)
at
Hello everyone, I have this problem with Caliper:
I can successfully run this command:
`caliper benchmark run -c benchmark/composer/config.yaml -n network/fabric-v1.3/2org1peercouchdb/composer.json -w ../caliper-samples/`
But when I change to fabric-v1.4 with 3 orgs and 2 peers
`caliper benchmark run -c benchmark/composer/config.yaml -n network/fabric-v1.4/3org2peercouchdb/composer.json -w ../caliper-samples/`
I get this error:
Network start complete, activating user network card PerfNetworkAdmin@basic-sample-networkerror: [composer_utils.js]: composer.getBusNetConnection() failed for cardName [PerfNetworkAdmin@basic-sample-network] with error: Error: Error trying to ping. Error: 2 UNKNOWN: access denied: channel [mychannel] creator org [Org1MSP]
at _checkRuntimeVersions.then.catch (/home/riccardo/.nvm/versions/node/v8.16.0/lib/node_modules/caliper-cli/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:886:34)
at
I have not modified the samples config.yaml and composer.json files
might be a compatibiltiy issue with the composer version and the newer target version of fabric 1.4?
worth checking the composer compatibilty on their pages, and then modify the composer version in the package if needed
I have composer v0.20.8
0.20.0 and above are compatible with the Fabric 1.2.0, 1.2.1, 1.3.0 and 1.4.x driver only
Source: https://github.com/hyperledger/composer/releases
:thinking: should be compatible then
Maybe it's because Composer 0.20.x is not fully compatible with Hyperledger Fabic 1.4
https://stackoverflow.com/questions/54033462/dose-hyperledger-composer-v0-20-4-support-fabric-v1-4
The subfolders in `caliper/packages/caliper-samples/fabric-v1.4.1` do not contains any composer.json file
ah, yeah ... they will need those :joy:
(good spot)
Yeah, when I added the 1.4.1 examples, I wasn't sure about composer compatibility, so just focused on fabric 😁😅
Running the same 3 orgs and 2 peers scripts with fabric-v1.3 works correctly so maybe there is just no compatibility with composer and fabric-v1.4
I try to get a bit of time today to look at the samples for the 1.4.1 bits - it shouldn't be a compatabiltiy issue, but there are some subtleties with the configs
Hi Everyone,
I am trying to run benchmark test on my network but its showing me this issue
```
✖ Creating channels mychannel
error: [composer.js]: composer.init() failed at initialiseFabric(), code=1, stdout=, stderr=2019-07-29 10:47:22.862 UTC [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2019-07-29 10:47:22.862 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2019-07-29 10:47:22.868 UTC [grpc] Printf -> DEBU 003 grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: Error while dialing dial tcp: lookup orderer.example.com on 127.0.0.11:53: no such host"; Reconnecting to {orderer.example.com:7050
@KindleBitSoln Did your orderer start successfully? Check its docker logs
@klenik No orderer is started
Even none of containner is up
@KindleBitSoln Can you list the steps you performed? Like starting the network, starting Caliper, etc
Okay
I had successfully run the test of business network on sample network
Then i had started work on testing same business network on my own fabric network
I have setup composer.json file as per my single orgnization network in fabric 1.1.
And also replaced docker-composer file code with that
But i have put the same structure where thoses previous file exist
After running benchmark test , I got above issue which belong to error in creation of channel
My docker composer code is
```
version: '2'
services:
ca.org1.example.com:
image: hyperledger/fabric-ca:1.1.0
environment:
- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
- FABRIC_CA_SERVER_CA_NAME=ca.org1.example.com
ports:
- "7054:7054"
command: sh -c 'fabric-ca-server start --ca.certfile
/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/key.pem -b admin:adminpw -d'
volumes:
- ../config/crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
container_name: ca.org1.example.com
orderer.example.com:
container_name: orderer.example.com
image: hyperledger/fabric-orderer:1.1.0
environment:
- ORDERER_GENERAL_LOGLEVEL=debug
- ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
- ORDERER_GENERAL_GENESISMETHOD=file
- ORDERER_GENERAL_GENESISFILE=/etc/hyperledger/configtx/composer-genesis.block
- ORDERER_GENERAL_LOCALMSPID=OrdererMSP
- ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp/orderer/msp
working_dir: /opt/gopath/src/github.com/hyperledger/fabric
command: orderer
ports:
- 7050:7050
volumes:
- ./:/etc/hyperledger/configtx
- ../config/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/etc/hyperledger/msp/orderer/msp
peer0.org1.example.com:
container_name: peer0.org1.example.com
image: hyperledger/fabric-peer:1.1.0
environment:
- CORE_LOGGING_LEVEL=debug
- CORE_CHAINCODE_LOGGING_LEVEL=DEBUG
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- CORE_PEER_ID=peer0.org1.example.com
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=2org1peercouchdb_default
- CORE_PEER_LOCALMSPID=Org1MSP
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/peer/msp
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
- CORE_LEDGER_STATE_STATEDATABASE=CouchDB
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb.org1.example.com:5984
working_dir: /opt/gopath/src/github.com/hyperledger/fabric
command: peer node start
ports:
- 7051:7051
- 7053:7053
volumes:
- /var/run/:/host/var/run/
- ../config/mychannel.tx:/etc/hyperledger/configtx/mychannel.tx
- ../config/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/peer/msp
- ../config/crypto-config/peerOrganizations/org1.example.com/users:/etc/hyperledger/msp/users
depends_on:
- orderer.example.com
- couchdb.org1.example.com
couchdb.org1.example.com:
container_name: couchdb.org1.example.com
image: hyperledger/fabric-couchdb:0.4.6
ports:
- 5984:5984
environment:
DB_URL: http://localhost:5984/member_db
```
And composer.json file is
```
{
"caliper": {
"blockchain": "composer",
"command" : {
"start": "docker-compose -f network/fabric-v1.1/2org1peercouchdb/docker-compose.yaml up -d;sleep 3s",
"end": "docker-compose -f network/fabric-v1.1/2org1peercouchdb/docker-compose.yaml down;(test -z \"$(docker ps -aq)\") || docker rm $(docker ps -aq);docker rmi $(docker images dev-* -q)"
}
},
"composer": {
"chaincodes": [
{"id": "supply-chain", "version": "1.0.4", "path": "src/contract/composer", "orgs": ["Org1"], "loglevel": "INFO"}
],
"cryptodir": "network/fabric-v1.1/config/crypto-config",
"network": {
"x-type" : "hlfv1",
"timeout": 3000,
"version": "1.0.0",
"tls": false,
"orderers": {
"orderer.example.com": {
"url": "grpc://localhost:7050",
"mspid": "OrdererMSP",
"mspconfig": "/etc/hyperledger/msp/orderer/tls/ca.crt",
"hostname": "orderer.example.com",
"hosturl": "orderer.example.com:7050"
}
},
"certificateAuthorities": {
"ca.org1.example.com": {
"url": "http://localhost:7054",
"name": "ca.org1.example.com"
}
},
"organizations": [
{
"name": "Org1",
"mspid": "Org1MSP",
"mspconfig": "/etc/hyperledger/msp/users/Admin@org1.example.com/msp",
"adminCert": "network/fabric-v1.1/config/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem",
"adminKey" : "network/fabric-v1.1/config/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/key.pem",
"certificateAuthorities": [
"ca.org1.example.com"
],
"peers": [
"peer0.org1.example.com"
]
}
],
"peers": {
"peer0.org1.example.com": {
"url": "grpc://localhost:7051",
"eventUrl": "grpc://localhost:7053",
"hostname": "peer0.org1.example.com",
"channels":[
"mychannel"
]
}
},
"channels": {
"mychannel": {
"config": "/etc/hyperledger/configtx/mychannel.tx",
"mspconfig": "/etc/hyperledger/msp/users/Admin@org1.example.com/msp",
"orderers": [
"orderer.example.com"
],
"peers": [
"peer0.org1.example.com"
]
}
}
}
},
"info" : {
"Version": "1.1.0",
"Size": "1 Org with 1 Peer",
"Orderer": "Solo",
"Distribution": "Single Host"
}
}
```
If none of the containers is up, then channel creation is not the issue. Do you start your network in the composer.json file's start script?
yes
Try the start command on its own, without Caliper: `docker-compose -f network/fabric-v1.1/2org1peercouchdb/docker-compose.yaml up -d`
(from the caliper-samples directory)
I had started to run it with caliper benchmark run -c benchmark/composer/config.yaml -n network/fabric-v1.1/2org1peercouchdb/composer.json -w ../caliper-samples/
I had started to run it with
caliper benchmark run -c benchmark/composer/config.yaml -n network/fabric-v1.1/2org1peercouchdb/composer.json -w ../caliper-samples/
Okay
@klenik
```
tom@ip-172-31-90-103:~/caliper/packages/caliper-samples$ docker-compose -f network/fabric-v1.1/2org1peercouchdb/docker-compose.yaml up -d
Creating network "2org1peercouchdb_default" with the default driver
Creating ca.org1.example.com ...
Creating orderer.example.com ...
Creating ca.org1.example.com
Creating couchdb.org1.example.com ...
Creating orderer.example.com
Creating orderer.example.com ... done
Creating peer0.org1.example.com ...
Creating peer0.org1.example.com ... done
tom@ip-172-31-90-103:~/caliper/packages/caliper-samples$
```
@klenik by using this way.. docker containers are running
Hmm, then it should also work when Caliper calls the start command :thinking:
Actually it having issue with creation of channel
Actually it is having issue with creation of channel
True, but issue seems to be that it can't connect to the orderer. If you start the network first (like above), and remove the start script from your network config file, and start Caliper, do you get the same error?
@klenik Let me check it
Yes, I amg facing same issue
Yes, I am facing same issue
If i run previous docker composer file then it doesn't show any error
.
@klenik If i run previous docker composer file then it doesn't show any error on that point
Hi Everyone, I have found following eror in my orderer node
```
2019-07-30 04:43:50.884 UTC [orderer/common/server] createLedgerFactory -> DEBU 01d Ledger dir: /var/hyperledger/production/orderer
2019-07-30 04:43:50.884 UTC [kvledger.util] CreateDirIfMissing -> DEBU 01e CreateDirIfMissing [/var/hyperledger/production/orderer/index/]
2019-07-30 04:43:50.884 UTC [kvledger.util] logDirStatus -> DEBU 01f Before creating dir - [/var/hyperledger/production/orderer/index/] does not exist
2019-07-30 04:43:50.884 UTC [kvledger.util] logDirStatus -> DEBU 020 After creating dir - [/var/hyperledger/production/orderer/index/] exists
panic: Unable to bootstrap orderer. Error reading genesis block file: open /etc/hyperledger/configtx/composer-genesis.block: no such file or directory
goroutine 1 [running]:
github.com/hyperledger/fabric/orderer/common/bootstrap/file.(*fileBootstrapper).GenesisBlock(0xc420130360, 0xc420130360)
/opt/gopath/src/github.com/hyperledger/fabric/orderer/common/bootstrap/file/bootstrap.go:44 +0x1e4
github.com/hyperledger/fabric/orderer/common/server.initializeBootstrapChannel(0xc420268a00, 0x1393300, 0xc420132080)
/opt/gopath/src/github.com/hyperledger/fabric/orderer/common/server/main.go:205 +0x5bd
github.com/hyperledger/fabric/orderer/common/server.initializeMultichannelRegistrar(0xc420268a00, 0x138fd80, 0x13f3e20, 0xc420134968, 0x1, 0x1, 0xc4203ec230)
```
How to change version of fabric-client fabric-ca-client in caliper ?
My currrent versions are:
fabric-ca-client@1.4.4 extraneous
fabric-client@1.4.4 extraneous
I want to change it to grpc@1.10.1 fabric-ca-client@1.1.0 fabric-client@1.1.0
Please help me
I think your orderer is not configured properly, since it can't find the genesis block.
@klenik I have fixed the order now
Follow this doc to change the dependencies of an adapter: https://hyperledger.github.io/caliper/docs/1_Getting_Started.html#install-the-caliper-cli
I have also changes the version too but still i facing tis issue
I have also changes the version too but still i facing this issue
```
✖ Starting business network supply-chain. This involves building chaincode containers and may take several minutes to complete...
error: [composer.js]: composer.installSmartContract() failed, message=Error trying to start business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode), stack=Error: Error trying to start business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
at HLFConnection.start (/home/tom/.nvm/versions/node/v8.16.0/lib/node_modules/caliper-cli/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:758:30)
at
@klenik Can you help me in this?
It has taken much time of me but i still unable to debug it
looks like this error: https://github.com/hyperledger/composer/issues/4305
Has joined the channel.
Greetings. I am still having problems compiling caliper. I tried on multiple versions of ubuntu, never succeeding, even though I make sure to use nodejs 10.15. Here it is the log when I run `npm run bootstrap`: https://pastebin.com/FJ5tjvCe
That output was created on ubuntu 18.04, with nodejs 10.15.3, npm 6.4.1 (which was bundled with nodejs 10.15.3), with node-gyp v5.0.3 (installed using command `npm install -g node-gyp`, also npm 6.4.1). I made sure to install make, python and g++ with `apt install`.
@snakejerusalem Try switching to nodejs 8.16.0, as described here: https://github.com/hyperledger/caliper/issues/496#issuecomment-516601985
Hey, I'm getting a Parse Error When trying to monitor a remote peer in the Raft sample:
`info: [adapters/fabric-ccp]: Successfully instantiated simple@v0 in mychannel
info: [adapters/fabric-ccp]: Sleeping 5s...
error: [monitor-docker.js]: Error(monitor-docker):Error: Parse Error`
and this is the config:
`monitor:
type:
- docker
- process
docker:
name:
- all
- http://10.128.0.7:8051/peer0.org2.example.com
process:
- command: node
arguments: local-client.js
multiOutput: avg
interval: 1`
Hey, I'm getting a Parse Error When trying to monitor a remote peer in the Raft sample:
`info: [adapters/fabric-ccp]: Successfully instantiated simple@v0 in mychannel
info: [adapters/fabric-ccp]: Sleeping 5s...
error: [monitor-docker.js]: Error(monitor-docker):Error: Parse Error`
and this is the config:
`monitor:
type:
- docker
- process
docker:
name:
- all
- http://10.128.0.7:8051/peer0.org2.example.com
process:
- command: node
arguments: local-client.js
multiOutput: avg
interval: 1`
*This is the port check:*
docker port peer0.org2.example.com
7051/tcp -> 0.0.0.0:8051
Hey, I'm getting a Parse Error When trying to monitor a remote peer in the Raft sample:
`info: [adapters/fabric-ccp]: Successfully instantiated simple@v0 in mychannel
info: [adapters/fabric-ccp]: Sleeping 5s...
error: [monitor-docker.js]: Error(monitor-docker):Error: Parse Error`
and this is the config:
`monitor:
type:
- docker
- process
docker:
name:
- all
- http://10.128.0.7:8051/peer0.org2.example.com
process:
- command: node
arguments: local-client.js
multiOutput: avg
interval: 1`
*This is the port check:*
docker port peer0.org2.example.com
7051/tcp -> 0.0.0.0:8051
I also tried port 4099 as ifconfig=: docker0: flags=4099
Hey, I'm getting a Parse Error When trying to monitor a remote peer in the Raft sample:
`info: [adapters/fabric-ccp]: Successfully instantiated simple@v0 in mychannel
info: [adapters/fabric-ccp]: Sleeping 5s...
error: [monitor-docker.js]: Error(monitor-docker):Error: Parse Error`
and this is the config:
`monitor:
type:
- docker
- process
docker:
name:
- all
- http://10.128.0.7:8051/peer0.org2.example.com
process:
- command: node
arguments: local-client.js
multiOutput: avg
interval: 1`
*This is the port check:*
docker port peer0.org2.example.com
7051/tcp -> 0.0.0.0:8051
I also tried port 4099 as ifconfig=: docker0: flags=4099
Hey, I'm getting a Parse Error When trying to monitor a remote peer in the Raft sample:
` ` `info: [adapters/fabric-ccp]: Successfully instantiated simple@v0 in mychannel
info: [adapters/fabric-ccp]: Sleeping 5s...
error: [monitor-docker.js]: Error(monitor-docker):Error: Parse Error` ` `
and this is the config:
` ` `monitor:
type:
- docker
- process
docker:
name:
- all
- http://10.128.0.7:8051/peer0.org2.example.com
process:
- command: node
arguments: local-client.js
multiOutput: avg
interval: 1` ` `
*This is the port check:*
` ` `docker port peer0.org2.example.com
7051/tcp -> 0.0.0.0:8051` ` `
I also tried port 4099 as ifconfig=: docker0: flags=4099
Hey, I'm getting a Parse Error When trying to monitor a remote peer in the Raft sample:
` ` `info: [adapters/fabric-ccp]: Successfully instantiated simple@v0 in mychannel
info: [adapters/fabric-ccp]: Sleeping 5s...
error: [monitor-docker.js]: Error(monitor-docker):Error: Parse Error` ` `
and this is the config:
` ` `monitor:
type:
- docker
- process
docker:
name:
- all
- http://10.128.0.7:8051/peer0.org2.example.com
process:
- command: node
arguments: local-client.js
multiOutput: avg
interval: 1` ` `
*This is the port check:*
` ` docker port peer0.org2.example.com
7051/tcp -> 0.0.0.0:8051` `
I also tried port 4099 as ifconfig=: docker0: flags=4099
Hey, I'm getting a Parse Error When trying to monitor a remote peer in the Raft sample:
` ` `info: [adapters/fabric-ccp]: Successfully instantiated simple@v0 in mychannel
info: [adapters/fabric-ccp]: Sleeping 5s...
error: [monitor-docker.js]: Error(monitor-docker):Error: Parse Error` ` `
and this is the config:
` ` `monitor:
type:
- docker
- process
docker:
name:
- all
- http://10.128.0.7:8051/peer0.org2.example.com
process:
- command: node
arguments: local-client.js
multiOutput: avg
interval: 1` ` `
*This is the port check:*
```docker port peer0.org2.example.com
7051/tcp -> 0.0.0.0:8051```
I also tried port 4099 as ifconfig=: docker0: flags=4099
Hey, I'm getting a Parse Error When trying to monitor a remote peer in the Raft sample:
```info: [adapters/fabric-ccp]: Successfully instantiated simple@v0 in mychannel
info: [adapters/fabric-ccp]: Sleeping 5s...
error: [monitor-docker.js]: Error(monitor-docker):Error: Parse Error```
and this is the config:
```monitor:
type:
- docker
- process
docker:
name:
- all
- http://10.128.0.7:8051/peer0.org2.example.com
process:
- command: node
arguments: local-client.js
multiOutput: avg
interval: 1```
*This is the port check:*
```docker port peer0.org2.example.com
7051/tcp -> 0.0.0.0:8051```
I also tried port 4099 as ifconfig=: docker0: flags=4099
Hey, I'm getting a Parse Error When trying to monitor a remote peer in the Raft sample:
```info: [adapters/fabric-ccp]: Successfully instantiated simple@v0 in mychannel
info: [adapters/fabric-ccp]: Sleeping 5s...
error: [monitor-docker.js]: Error(monitor-docker):Error: Parse Error```
and this is the config:
```monitor:
type:
- docker
- process
docker:
name:
- all
- http://10.128.0.7:8051/peer0.org2.example.com
process:
- command: node
arguments: local-client.js
multiOutput: avg
interval: 1```
*This is the port check:*
```docker port peer0.org2.example.com
7051/tcp -> 0.0.0.0:8051```
I also tried port 4099 as ifconfig=: docker0: flags=4099
Hey, I'm getting a Parse Error When trying to monitor a remote peer in the Raft sample:
```info: [adapters/fabric-ccp]: Successfully instantiated simple@v0 in mychannel
info: [adapters/fabric-ccp]: Sleeping 5s...
error: [monitor-docker.js]: Error(monitor-docker):Error: Parse Error```
and this is the config:
```monitor:
type:
- docker
- process
docker:
name:
- all
- http://10.128.0.7:8051/peer0.org2.example.com
process:
- command: node
arguments: local-client.js
multiOutput: avg
interval: 1```
*This is the port check:*
```docker port peer0.org2.example.com
7051/tcp -> 0.0.0.0:8051```
I also tried port 4099 as ifconfig=: docker0: flags=4099
Hey, I'm getting a Parse Error When trying to monitor a remote peer in the Raft sample:
`info: [adapters/fabric-ccp]: Successfully instantiated simple@v0 in mychannel
info: [adapters/fabric-ccp]: Sleeping 5s...
error: [monitor-docker.js]: Error(monitor-docker):Error: Parse Error`
and this is the config:
`monitor:
type:
- docker
- process
docker:
name:
- all
- http://10.128.0.7:8051/peer0.org2.example.com
process:
- command: node
arguments: local-client.js
multiOutput: avg
interval: 1`
@klenik thank you, now it worked. Please, consider updating the pre-requisites to nodejs 8.15 only while the codebase isn't ready for later versions. This can really lead to frustration :)
Has joined the channel.
Hello, I am new to Hyperledger Caliper, I am working for a start up using Hyperledger fabric and I am trying to figure out how to implement a caliper to benchmark my existing fabric system. I tried doing some digging around on the web and I ended up here. Are there any good references I should know to get started?
Regarding this issue:https://github.com/hyperledger/caliper/issues/496#issuecomment-516601985
After following those alternative instructions, we are supposed to find/execute caliper-cli at `./caliper/packages/caliper-samples/node_modules/caliper-cli/caliper.js`, correct?
Regarding this issue:https://github.com/hyperledger/caliper/issues/496#issuecomment-516601985
After following those alternative instructions, we are supposed to find/execute `caliper-cli` at `./caliper/packages/caliper-samples/node_modules/caliper-cli/caliper.js`, correct? From we just create manually a symbolic link in `/usr/local/bin` pointed at that script, right?
Regarding this issue:https://github.com/hyperledger/caliper/issues/496#issuecomment-516601985
After following those alternative instructions, we are supposed to find/execute `caliper-cli` at `./caliper/packages/caliper-samples/node_modules/caliper-cli/caliper.js`, correct? From here we just create manually a symbolic link in `/usr/local/bin` pointed at that script, right?
@snakejerusalem from the caliper-samples dir, just execute:
npx caliper benchmark run
Npx is used for executing locally installed binaries, without adding them to PATH, or creating a symlink
thank you @klenik !
Now I am having trouble executing the sample benchmark: https://pastebin.com/WHqNzNxb
I noticed that the logs say caliper can't connect to dockerd, but if I run `sudo systemctl status docker` it shows that it is indeed executing.
Now I am having trouble executing the sample benchmark: https://pastebin.com/WHqNzNxb
I noticed that the logs say caliper can't connect to dockerd, but if I run `sudo systemctl status docker` it shows that it is indeed executing.
I am running everything inside an oracle virtual box, could this be causing issues w.r.t. virtualization? Docker worked fine when I tested it with the hello world.
Has joined the channel.
I'm currently working on performance benchmarking using Hyperledger Caliper.
I have tried several samples but it seems that the structure of sample benchmarks are different from that of a business network made on Hyperledger Composer. Looks like model file and script file are all reproduced into one javascript file.
Could you tell me how to test my own business network made on Hyperledger Composer? Or, Should I reproduce my business network into one javascript file?
Thank you!
Hi, I'm currently working on performance benchmarking using Hyperledger Caliper.
I have tried several samples but it seems that the structure of sample benchmarks are different from that of a business network made on Hyperledger Composer. Looks like model file and script file are all reproduced into one javascript file.
Could you tell me how to test my own business network made on Hyperledger Composer? Or, Should I reproduce my business network into one javascript file?
Thank you!
@ken1110 - the composer benchmarks use the sample composer business networks. The extra work you need to do is to write a separate test file that interacts with the deployed business network. https://hyperledger.github.io/caliper/docs/Composer_Configuration.html should help
[ ](https://chat.hyperledger.org/channel/caliper?msg=rtZFA4g8jHmhjNMcR) @snakejerusalem This error occurs when your user is not in the `docker` group. Make sure the hello world example also runs without `sudo`. You can easily find materials online that helps you using docker without sudo. The changes will require a relogin/restart to take effect.
Thanks a lot! I'll try it!
thank you @klenik , it worked!
I have one more question. Could anyone tell me the command to run a benchmark test of the samples located in /caliper/packages/caliper-samples/src/contract/composer?
I have two more questions. 1.Could anyone tell me the command to run a benchmark test of the samples located in /caliper/packages/caliper-samples/src/contract/composer? 2. What is the difference between the file named basic-sample-network.js located on /caliper/packages/caliper-samples/benchmark/composer/composer-samples and sample.js located on /caliper/packages/caliper-samples/src/contract/composer/basic-sample-network/lib?
I have two more questions.
1.Could anyone tell me the command to run a benchmark test of the samples located in /caliper/packages/caliper-samples/src/contract/composer?
2. What is the difference between the file named basic-sample-network.js located on /caliper/packages/caliper-samples/benchmark/composer/composer-samples and sample.js located on /caliper/packages/caliper-samples/src/contract/composer/basic-sample-network/lib?
the sample networks all seem to be designed to deploy containers locally. Are there any templates illustrating how deploy an actual distributed network? If not, am I expected to setup everything manually and then invoke caliper to benchmark the deployment?
@snakejerusalem Caliper doesn't support the deployment of the SUT. Spinning up a local network is just an example usage of the start/end script feature of caliper, and it's useful for testing your configurations and benchmark logic locally. For a real analysis, you'll benchmark a truly distributed setup, but starting the network is your responsibility, caliper will just connect to it.
ok, thanks!
1) in our integration tests we kick it with `caliper benchmark run -c benchmark/composer/config.yaml -n network/fabric-v1.3/2org1peercouchdb/composer.json -w ../caliper-samples/`
2) /caliper-samples/benchmark contain the test files, caliper-samples/src/contract are the files that compile into a BNA (we don't like holding binary files in caliper, as they are a pain to maintain)
Thanks a lot!
If I already have a working network, do I need a yaml file or a json file?
@AaronEtheridge Yes, Caliper always need a benchmark config, and a network config file. The sample network config files contain an optional start script that starts a local network. If your network is already up and running, you don't need this start script.
the network config file in the client section, ClientPrivateKeys path has a key.pem file at the end, when I try to locate a similar file in my already created network, there is no key.pem file, just a #HASH_sk file. What should I be putting in the client private key?
Those two are the same, in the samples we just rename the hash-based names, so the network config files can remain the same
Hi again. I am trying to move on from my oracle virtual box to a distributed deployment. I tried to install caliper-cli following the instructions from this link https://github.com/hyperledger/caliper/issues/496
Those instructions worked fine in the VM with ubuntu 18.04, but now I am in ubuntu 16.04 with the latest repository code, and I gett this error:
```
:~/caliper/packages/caliper-samples$ npm install --registry http://localhost:4873 caliper-cli
npm WARN deprecated core-js@2.3.0: core-js@<2.6.8 is no longer maintained. Please, upgrade to core-js@3 or at least to actual version of core-js@2.
npm WARN deprecated hoek@4.2.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm ERR! code E404
npm ERR! 404 Not Found: spdy@^3.4.7
npm ERR! A complete log of this run can be found in:
npm ERR! /home/joao/.npm/_logs/2019-08-05T23_23_57_046Z-debug.log
```
Is this because I run in an oder distro, or is there something different in the latest code ?
Hi again. I am trying to move on from my oracle virtual box to a distributed deployment. I tried to install caliper-cli following the instructions from this link https://github.com/hyperledger/caliper/issues/496
Those instructions worked fine in the VM with ubuntu 18.04, but now I am in ubuntu 16.04 with the latest repository code, and I get this error:
```
:~/caliper/packages/caliper-samples$ npm install --registry http://localhost:4873 caliper-cli
npm WARN deprecated core-js@2.3.0: core-js@<2.6.8 is no longer maintained. Please, upgrade to core-js@3 or at least to actual version of core-js@2.
npm WARN deprecated hoek@4.2.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm ERR! code E404
npm ERR! 404 Not Found: spdy@^3.4.7
npm ERR! A complete log of this run can be found in:
npm ERR! /home/joao/.npm/_logs/2019-08-05T23_23_57_046Z-debug.log
```
Is this because I run in an older distro, or is there something different in the latest code ?
Hi again. I am trying to move on from my oracle virtual box to a distributed deployment. I tried to install caliper-cli following the instructions from this link https://github.com/hyperledger/caliper/issues/496
Those instructions worked fine in the VM with ubuntu 18.04, but now I am in ubuntu 16.04 with the latest repository code, and I get this error:
```
:~/caliper/packages/caliper-samples$ npm install --registry http://localhost:4873 caliper-cli
npm WARN deprecated core-js@2.3.0: core-js@<2.6.8 is no longer maintained. Please, upgrade to core-js@3 or at least to actual version of core-js@2.
npm WARN deprecated hoek@4.2.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm ERR! code E404
npm ERR! 404 Not Found: spdy@^3.4.7
npm ERR! A complete log of this run can be found in:
npm ERR! /home/joao/.npm/_logs/2019-08-05T23_23_57_046Z-debug.log
```
Is this because I run in an older distro, or is there something different in the latest code ?
One thing I noticed is that this error does not always occur with the same package. Maybe this is a problem in the server?
Nervermind, now it was able to finish. I guess it was indeed an issue in the server.
I am trying to execute the smallbank benchmark with the network 2orgs1peercouchdb on fabric 1.4.1.; but I get this error: https://pastebin.com/UuaqN0BV
@snakejerusalem what command are you using to run the above?
Has joined the channel.
@snakejerusalem You have to use one of the network configs starting with `fabric-go` in that directory, since those include the smallbank chaincode, the `fabric-node` configs do not.
thank you @klenik , it worked now!
Has joined the channel.
@klenik what folder do the benchmark config files and the network config files need to be in , and how do I run them? Does caliper need to be inside of my working network folder or should I be placing the caliper folder somewhere else?
Does anyone know if increasing the number of local Caliper clients affect the network performance of a Hyperledger fabric setup? I thought that the increase in clients only ment that the local desktop running Caliper would only fork the total amount of transactions between the selected number of clients. Can anyone confirm?
@AaronEtheridge When you run the CLI, you can set a workspace folder, and the other two config file paths (and every other relative path in the configs) will be resolved from the workspace folder.
https://hyperledger.github.io/caliper/docs/1_Getting_Started.html#run-a-sample-benchmark
@HappyThoughts
1) Yes, the transactions to send are distributed among the running clients, so your second point is correct.
2) What do you mean by affected network performance? Each client will instantiate its own Fabric adatper, and each Fabric adapter maintains, for example, event hub connections to the peers. So it might affect the network performance. Can you share some additional detail about your observations?
Well, I am running a performance test on a blockchain. My results show that an increase in clients from 5, 10, and 20 in a send rate of 1000 TPS result in a higher failure rate and lower actual send rate, resulting in lower throughput. I initially thought that the increase of clients are simply a local issue, and is isolated from the blockchain network. This however indicates that the transactions fail before reaching the network, does this make sense?
I am running the blockchain and Caliper isolated from one another, and they connect remotely. Does this mean that each client process has its own connection to all of the peers in the network, or do they each get one peer that they connect to. Will for example each peer get 20 clients connected to them, or does each peer get an amount of the total number of clients selected.
@klenik I initially claimed that the number of clients wont affect the send rate, unless they spend to much resources on the local machine for a fair multiplexing.
@HappyThoughts Currently, every Caliper clients has an eventhub connection to every peer. There's a development plan to make clients independently configurable, but we're not quite there yet. Which commit version of Caliper are you using? There was a PR recently that addressed the sending rate performance of clients, so event 2-3 clients should be able to generate 1k TPS. And Fabric peers should be able to handle this "many" client connections. What are the exact failures you get?
@klenik Well most of the failures are TIMEOUTS, I am using a commit from 22 march, I removed the git files so I cant really find the commit version
@klenik But in essence, using 20 clients causes an issue of keeping the send rate? Since you said that 2-3 clients can manage, but any more and the send rate declines?
@HappyThoughts March was a long time ago :) I'd suggest using the current version, we made some great updates, both to the code, and to the documentation :)
@klenik yes it was a long time ago, but i am writing a thesis on Hyperledger fabric with Caliper, and i ran the tests back then with that version. I dont have time to upgrade and run new tests, so i need the environment to stay the same :sweat_smile:
@klenik I just cant find information on whether the increase of clients actually does impact the actual send rate the local host can manage, I would think not because that would mean that the scheduling of processes is the issue.
@klenik But if each client has a remote connection to the peers, the issue might be the network resources.
@HappyThoughts Well, in the older version, I usually maximized a single client's send rate around 50 TPS, so for 1k TPS, I'd use 20 clients. Since the eventhub receives blocks, it shouldn't be much of an overhead. But I haven't done perf testing from this aspect. But yeah, a stable network and resources are needed if you want to handle 1k TPS.
@klenik Do you think that this may be an issue, but on a remote basis? https://github.com/hyperledger/caliper/issues/43
That issue was fixed by PR 50 in 2018, and I run those tests on remote networks. What is your network setup? (Let's continue the discussion in this thread, so it's easier to follow)
I have 6 virtual machines running my blockchain network. 5 virtual machines for 5 peers, and one virtual machine for all of the Orderers, CAs and Kafka services,
From another desktop, I run Caliper with different configuration files. Each file has the same number of transactions to run, the same number of rounds, and the same chaincode function. The only difference is the number of clients, which range from 5, 10 and 20 clients.
Each of the test rounds run 1000 transactions in total, for 4 rounds. Each round has a target TPS from 25, 50, 100, and 1000
The results for the 25, 50, and 100 TPS do not show any significant fluctuation in the actual send rate that Caliper achieves. However, when the 1000 TPS target round runs, the fluctuations are more significant when the number of clients increase
What is the utilization of the peer VMs for 1000 TPS? If they're saturated, then it's possible that those extra few connections matter. How strong are the VMs?
Each peer has 2vCPUs and 8GB RAM, running Ubuntu 16.04
I sent you some images of one of my reports.
@HappyThoughts did you get more than 3 organizations to work?
I only tested for 3 organizations, not more.
@HappyThoughts Im trying to get 4 orgs with raft and tls to work
@AaronEtheridge Im not using raft with tls, sry. I have no experience with raft.
@AaronEtheridge Im only testing tls with kafka, and private data.
@HappyThoughts what type of private data, multiple channels or private data collections?
@AaronEtheridge private data collections, sry should have specified.
@HappyThoughts do you have example private data config files? My project needs them but there isn't a lot of documentation?
calipertest
@klenik im trying to run raft with 4 orgs and 2 peers, I used your raft/fabric-node-tls.yaml as a base. Here is my file: https://pastebin.com/HPZsYriD. I already regenerated the crypto-config file, and I have also modified the /raft docker-compose-tls.yaml file to look like this, https://pastebin.com/pp9vveTn,
Above is the error I keep getting, is there anyting I am forgetting to change. @klenik
Has joined the channel.
hello, does caliper work like fabric-node-sdk when it tries to invoke the transactions, as in using the same packages and methods?
@AaronEtheridge Looks like an orderer connection issue. This is usually caused by one of the following: the orderer is not ready to serve requests yet, or it didn't start successfully. Check the docker logs for that node. If you can't find any errors, then increase the sleep time at the end of the start script (giving the network more time to be ready). Also, you're running a lot of containers locally, and this number will increase when the chaincode is deployed, so don't expect high performance.
@ItaloCarrasco Yes, the Fabric adapter in Caliper uses the standard Fabric SDK methods (and the client connection profile feature for easy setup)
@klenik so should the throughput that shows caliper be the same (or near) if i test fabric sdk throughput?
@ItaloCarrasco We haven't done detailed performance testing of Caliper yet, but the extra layer of the Fabric adapter is very thin, the SDK functions run (or wait) most of the time during the life-cycle of a TX
@ItaloCarrasco We tried to optimize the hot path for TX submission the best we could, you can check it here: https://github.com/hyperledger/caliper/blob/1f8b76e3f4c675015c9c408641e115f4e067bc4c/packages/caliper-fabric/lib/fabric.js#L1765
Has joined the channel.
@ItaloCarrasco the Fabric adaptor in Caliper can also use the node-sdk 'evaluate/submit transaction' methods, which are the recommended methods to use with the sdk when developing your own applications - details are in the docs
Hello Team, I have got my hyperledger fabric network running in an instance and now I want to use Caliper for performance testing of the network and chaincode. Can someone please guide me what should be the starting point for configuring Caliper with my network
Hello Team, I have got my hyperledger fabric network running in an instance and now I want to use Caliper for performance testing of the network and chaincode. Can someone please guide me what should be the starting point for configuring Caliper with my network? As of now, my network is running on single instance, but it will be deployed on k8s cluster in staging env, so wanted to understand if there will be any impact on Caliper in case of different deployment architecture?
Hello Team, I have got my hyperledger fabric network running in an instance and now I want to use Caliper for performance testing of the network and chaincode. Can someone please guide me what should be the starting point for configuring Caliper with my network? As of now, my network is running on single instance, but it will be deployed on k8s cluster in staging env, so wanted to understand if there will be any impact on Caliper in case of different deployment architecture? Also I would like to add that I am currently running my fabric network on version 1.3 so how to configure caliper to target 1.3 version of fabric network as default version supports v1.4
@nkl199 i was asking because i cant seem to get the same tps using node sdk, with caliper my throughput is 140 and testing node-sdk with jmeter i get like 10, i think it could be that i am doing something wrong but i dont know if there is a proved tool to test node sdk
do you create a new gateway/conneection each time?
do you create a new gateway/connection each time?
i have like the same implementation as the fabric samples
... do they create a new gateway for each transaction? beause they should be re-used
for each invoke they get the client the channel and then send the transaction, there is nothing else, they arent using fabric network api
do you have an example link
do you have an example link?
https://github.com/hyperledger/fabric-samples/blob/release-1.4/balance-transfer/app/invoke-transaction.js
the caliper test code is very similar to that in the link - how many clients are you using in caliper vs those in JMeter?
@klenik If i might make a recommendation to the generate.sh function inside all of the samples files, you may want to add the --output=./crypto-config to the cryptogen step. Just so that it auto sets up everything in the correct folders, took me a while to realize the crypto materials were in the wrong spot
Hi again. I have successfully taken the 2orgs1peercouchdb sample network for fabric 1.4.1 and deployed it in a distributed environment. I have also succeeded in executing the smallbank benchmark with that deployment. Everything works fine if I use the configuration in `config.yaml`. However, if I use `config_linear.yaml`the vast majority of transactions submitted suffer a timeout at the peers. I have checked the logs from the peers and they seem to receive and commit new blocks just fine, so I assume these timeouts occur in caliper. Is there way to increase the value of the timeouts?
@AaronEtheridge I think that's the default value. Since it's a relative path, the location will still depend on where you execute the command from (your working directory). If you call the script from its folder, then there should be no problem. An alternative solution is to switch to the script directory from the script, so the path will be fix (feel free to raise an issue and pr for this :))
@snakejerusalem when you call invokeSmartContract from the user module, the last parameter is the client-side timeout in seconds. You can set that for every individual transaction
this is in `./packages/caliper-samples/benchmark/smallbank/smallbankOperations.js`, correct?
@klenik what do you mean raise and issur and pr?
@snakejerusalem I am getting the same error, what are the specs of the system that you are running on?
[ ](https://chat.hyperledger.org/channel/caliper?msg=Ggs88MFPKFrJHWqYz) Yes, in the `run` function
I have noticing something while fiddling with the configuration for the smallbank benchmark. If I increase the rate of transaction submission (or maintain the rate but increae the number of clients) the throughput drops significantly. Is this a race condition on caliper? Or does fabric 1.4.1 has some issue with heavy loads?
I have noticing something while fiddling with the configuration for the smallbank benchmark. If I increase the rate of transaction submission (or maintain the rate but increase the number of clients) the throughput drops significantly. Is this a race condition on caliper? Or does fabric 1.4.1 has some issue with heavy loads?
I have noticing something while fiddling with the configuration for the smallbank benchmark. If I increase the rate of transaction submission (or maintain the rate but increase the number of clients) the throughput drops significantly, and only improves some time after all transactions are submitted. Is this a race condition on caliper? Or does fabric 1.4.1 has some issue with heavy loads?
This seems to be a problem with the solo orderer. If I use another orderer the problem seems to be mitigated. However, I ocasionally get this error:
```
2019-08-09T22:53:20.012Z - error: [Orderer.js]: sendBroadcast - timed out after:45000
(node:7711) UnhandledPromiseRejectionWarning: Error: REQUEST_TIMEOUT
at Timeout.setTimeout [as _onTimeout] (/root/caliper/packages/caliper-samples/node_modules/fabric-client/lib/Orderer.js:143:20)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
(node:7711) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 592)
```
This seems to be a problem with the solo orderer. If I use another orderer the problem seems to be mitigated. However, I ocasionally get this error:
```
2019-08-09T22:53:20.012Z - error: [Orderer.js]: sendBroadcast - timed out after:45000
(node:7711) UnhandledPromiseRejectionWarning: Error: REQUEST_TIMEOUT
at Timeout.setTimeout [as _onTimeout] (/root/caliper/packages/caliper-samples/node_modules/fabric-client/lib/Orderer.js:143:20)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
(node:7711) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 592)
```
I already adjusted the timeout values in the `run` function, so what could be the issue here?
It seemed to be a problem with the solo orderer. If I use another orderer the problem seems to be mitigated. However, I ocasionally get this error:
```
2019-08-09T22:53:20.012Z - error: [Orderer.js]: sendBroadcast - timed out after:45000
(node:7711) UnhandledPromiseRejectionWarning: Error: REQUEST_TIMEOUT
at Timeout.setTimeout [as _onTimeout] (/root/caliper/packages/caliper-samples/node_modules/fabric-client/lib/Orderer.js:143:20)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
(node:7711) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 592)
```
I already adjusted the timeout values in the `run` function, so what could be the issue here?
Has joined the channel.
Hi Team ,
I am new to Caliper. I have already set up a fabric network - 1.4.2v - TLS Enabled.|
Can anybody provide any link how to set up the caliper for an existing custom fabric network.
Regards,
Soumya
Hi again. I am trying to execute caliper CLI with distributed clients. However, caliper fails after it finishes installing the chaincode with this error: `error: [caliper-flow]: Error: TypeError: Cannot read property 'unshift' of undefined`
I reckon it has something to do with the YAML configuration file. I edited it based on how it is described for a JSON file, like this:
```
test:
name: smallbank
description: This is smallbank benchmark for caliper
clients:
type: zookeeper
zoo:
server: s1:2181
clientsperhost: 5
```
If this is not the correct way to place the parameters in the YAML file, how should it actually be?
i am trying to get caliper running on an aws ec2 ubuntu server
has anyone done this before?
@soumyanayak if you got to caliper/caliper-samples there will be a network folder and a benchmark folder. You will need a file from both of these and then run the two files with caliper benchmark run -c benchmark/simple/config.yaml -n network/fabric-v1.4/2org1peergoleveldb/fabric-go.yaml -w ../caliper-samples/
@soumyanayak the best way to get caliper to work is to modify the files inside of the samples folder to match your network
nvm my question was answered by doing this https://geekylane.com/install-docker-on-aws-ec2-ubuntu-18-04-script-method/
Thanks Aaron . Will try setting up , if any issues will let you know
Hi all - there are quite a few questions about targeting existing Fabric networks using Caliper. Essentially the network config file is an augmented connection profile, with information on all orgs etc to enable chaincode installation. If we consider "an existing fabric network" to be a network that is ready to issue transactions to via a client (ie chaincode is already installed/instantiated), then we can possibly make the connection far simpler for you by enabling the use of:
- a connection profile
- a file wallet
To connect and transact with the network. These items should be readily available to you all, or at the very least trivial to construct. We should also put together a tutorial to make required steps easy to follow.
Any thoughts/comments welcome!
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi, I am trying to publish and install the CLI package for caliper. I get the following error when I run npm run publish_packages.
ERR! code EPUBLISHCONFLICT
npm
ERR! publish fail Cannot publish over existing version.
npm ERR! publish fail.
@Sara.r - looks like you have done the command a few times before - my suspicion is that you have the items stored in /storage folder ... run`npm run cleanup` then try again
as a general update for those interested, I've got things working through pointing to a file-wallet ... so the change is definitely possible
I didn't help. I removed nodejs and npm and installed them again and still get the same error. I tried with other node supported versions, but still the same error.
How is the cleanup process? I run npm run cleanup command in caliper-tests-integration folder and it runs successfully but again when I run
npm run publish_packages
I get the same error.
Has joined the channel.
It's nothing to do with nodeJS, because we have not published to npm yet, the global installation is performed by using an npm proxy called Verdccio where the packages are published to and then installed as if using npm. The error you are seeing is the result of those pacakges already being in the verdaccio storage folder when the script publishes to verdaccio. You need to follow the `cleanup` process to remove these before repeating the install
I noticed you published caliper-core
yesterday, could it be related? can I use this for installning caliper cli?
How is the cleanup process? I run npm run cleanup command in caliper-tests-integration folder and it runs successfully but again when I run
npm run publish_packages
I get the same error
How is the cleanup process? I run "npm run cleanup" command in caliper-tests-integration folder and it runs successfully but again when I run
"npm run publish_packages"
I get the same error again
How is the cleanup process? I run "npm run cleanup" command in caliper-tests-integration folder and it runs successfully but then again when I run
"npm run publish_packages"
I get the same error again
I also removed every docker container and docker img
oh wow, yeah - that wasn't us. Seems someone wanted to publish them for us without our knowledge
Has joined the channel.
Hi everyone! I'm trying to run a test with Caliper on a network deployed on a Kubernetes cluster. Everything works until the chaincode's instantiation where I get:
<
info: [adapters/fabric-ccp]: Instantiating simple@v0 in channel1. This might take some time...
error: [adapters/fabric-ccp]: The following errors occured while instantiating simple@v0 in channel1:
- Commit timeout for simple@v0 in channel1 from peer0.org1.example.com
- Commit timeout for simple@v0 in channel1 from peer1.org1.example.com
error: [caliper-flow]: Error: Error: Commit timeout for simple@v0 in channel1 from peer1.org1.example.com
at Timeout.setTimeout [as _onTimeout] (/home/carlos/.nvm/versions/node/v8.16.0/lib/node_modules/caliper-cli/node_modules/caliper-fabric-ccp/lib/fabric.js:1184:41)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
info: [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0
info: [caliper-flow]:
/>
Anyone knows what can I do ??
Hi everyone! I'm trying to run a test with Caliper on a network deployed on a Kubernetes cluster. Everything works until the chaincode's instantiation where I get:
Hi everyone! I'm trying to run a test with Caliper on a network deployed on a Kubernetes cluster. Everything works until the chaincode's instantiation where I get:
`info: [adapters/fabric-ccp]: Instantiating simple@v0 in channel1. This might take some time...
error: [adapters/fabric-ccp]: The following errors occured while instantiating simple@v0 in channel1:
- Commit timeout for simple@v0 in channel1 from peer0.org1.example.com
- Commit timeout for simple@v0 in channel1 from peer1.org1.example.com
error: [caliper-flow]: Error: Error: Commit timeout for simple@v0 in channel1 from peer1.org1.example.com
at Timeout.setTimeout [as _onTimeout] (/home/carlos/.nvm/versions/node/v8.16.0/lib/node_modules/caliper-cli/node_modules/caliper-fabric-ccp/lib/fabric.js:1184:41)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
info: [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0
info: [caliper-flow]:`
Anyone knows what can I do ??
Hi everyone! I'm trying to run a test with Caliper on a network deployed on a Kubernetes cluster. Everything works until the chaincode's instantiation where I get:
``info: [adapters/fabric-ccp]: Instantiating simple@v0 in channel1. This might take some time...
error: [adapters/fabric-ccp]: The following errors occured while instantiating simple@v0 in channel1:
- Commit timeout for simple@v0 in channel1 from peer0.org1.example.com
- Commit timeout for simple@v0 in channel1 from peer1.org1.example.com
error: [caliper-flow]: Error: Error: Commit timeout for simple@v0 in channel1 from peer1.org1.example.com
at Timeout.setTimeout [as _onTimeout] (/home/carlos/.nvm/versions/node/v8.16.0/lib/node_modules/caliper-cli/node_modules/caliper-fabric-ccp/lib/fabric.js:1184:41)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
info: [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0
info: [caliper-flow]:``
Anyone knows what can I do ??
since it is timeouts you will have to increase the timeout value in Fabric, or (sorry for this one) get more resources within your cluster
I have changed the network from Fabric 1.4.2 to 1.4.1 and know make the instantiation perfectly
but I have now another problem:
´´error: [adapters/fabric-ccp]: Transaction[87956f7559] life-cycle errors:
- Proposal response error by peer1.org1.example.com: 2 UNKNOWN: access denied: channel [channel1] creator org [org1MSP]
´´
Has joined the channel.
I have having an issue with running npm run build on my debian pc
SamuelDare - Wed Aug 21 2019 16:42:17 GMT+0100 (British Summer Time).txt
to my knowledge we dont have an `npm run build` command script ... what were u trying to achieve?
sorry meant `npm run bootstrap`
So, do you have any ideas how can I fix the error?
tbh, might as well just take them from there :joy:
standard npm install will do it, no magic required
it will however get exceptionally confusing when we publish our own pacakges ...
@nkl199 any idea with error?
change your version of node
try v8.15.0
thansk @nkl199 that did not error
I am struggling with trying to find where the connection.json file is meant to go
well I tried to install their published package but still I cannot run the caliper.
how do i install the caliper cli?
running `npm run start_verdaccio`
```
npm ERR! missing script: start_verdaccio
npm ERR! A complete log of this run can be found in:
npm ERR! /home/admin/.npm/_logs/2019-08-21T16_29_26_397Z-debug.log
```
someone, somewhere, decided to publish the caliper packages without our knowledge/consent ... so it will interfere with any of those scripts. You should be able to use the package that they published though - `npm install -g caliper-cli`
Hey,
I'm Using the Raft sample Fabric 1.4.1. I'm trying to run it in two VMs. VM1 for ca.org1 and peer0.org1 and VM2 for ca.org2 and peer0.org2. The benchmarks runs successfully when all the 3 orderers are in the same VM (Either VM1 or VM2) but when one of them is on a different VM it fails:
''info: [adapters/fabric-ccp]: Fabric SDK version: 1.4.4; TLS: server
info: [adapters/fabric-ccp]: Org1's registrar enrolled successfully
info: [adapters/fabric-ccp]: Org2's registrar enrolled successfully
info: [adapters/fabric-ccp]: Org1's admin's materials are successfully loaded
info: [adapters/fabric-ccp]: Org2's admin's materials are successfully loaded
info: [adapters/fabric-ccp]: client0.org1.example.com's materials are successfully loaded
info: [adapters/fabric-ccp]: client0.org2.example.com's materials are successfully loaded
info: [adapters/fabric-ccp]: Channel 'mychannel' definiton being retrieved from file
error: [caliper-flow]: Error: Error: Couldn't create Channel 'mychannel': Orderer response indicated unsuccessful Channel 'mychannel' creation: SERVICE_UNAVAILABLE
at Fabric._createChannels (/home/nima/.local/lib/node_modules/caliper-cli/node_modules/caliper-fabric-ccp/lib/fabric.js:336:23)
at
Hey,
I'm Using the Raft sample Fabric 1.4.1. I'm trying to run it in two VMs. VM1 for ca.org1 and peer0.org1 and VM2 for ca.org2 and peer0.org2. The benchmarks runs successfully when all the 3 orderers are in the same VM (Either VM1 or VM2) but when one of them is on a different VM it fails:
```info: [adapters/fabric-ccp]: Fabric SDK version: 1.4.4; TLS: server
info: [adapters/fabric-ccp]: Org1's registrar enrolled successfully
info: [adapters/fabric-ccp]: Org2's registrar enrolled successfully
info: [adapters/fabric-ccp]: Org1's admin's materials are successfully loaded
info: [adapters/fabric-ccp]: Org2's admin's materials are successfully loaded
info: [adapters/fabric-ccp]: client0.org1.example.com's materials are successfully loaded
info: [adapters/fabric-ccp]: client0.org2.example.com's materials are successfully loaded
info: [adapters/fabric-ccp]: Channel 'mychannel' definiton being retrieved from file
error: [caliper-flow]: Error: Error: Couldn't create Channel 'mychannel': Orderer response indicated unsuccessful Channel 'mychannel' creation: SERVICE_UNAVAILABLE
at Fabric._createChannels (/home/nima/.local/lib/node_modules/caliper-cli/node_modules/caliper-fabric-ccp/lib/fabric.js:336:23)
at
that's likely to be a connection issue between the components due to the URL spec
Thanks, But the thing is that if It was a URL spec problem I should not have been able to run the orderers in the second VM neither.
my suspicion is the (docker on one VM) talking to (docker on other VM)
Well, the peers on both VMs can talk to the orderer on the other VM.
Well, the peers on both VMs can talk to the orderer on the other VM.
it's a ggod questino - might be q=worth asking on the main fabric channel
it's a good question - might be worth asking on the main fabric channel
Good Idea, but before that, I'd have to make sure there is no Caliper specific configuration that requires the Raft orderers to be on the same host.
Clipboard - August 22, 2019 5:50 PM
I recently read this paper https://arxiv.org/pdf/1809.03421.pdf , where the authors benchmarked Quorum using the caliper tool. They claim to have made modifications to the tool to enable them conduct the research. Unfortunately, I am unable to find the source code.
In addition to this, I noticed this PR: https://github.com/hyperledger/caliper/pull/476/files which adds an application adapter to code based. I have clone the fork and try to run it to no avail. Has anyone either done this successfully or have pointers on it?
Hi, does caliper support contracts that written by "fabric-contract-api" ?
Also, i want to run smallbank sample via this command caliper benchmark run --caliper-workspace ./packages/caliper-samples --caliper-benchconfig benchmark/smallbank/config.yaml --caliper-networkconfig network/fabric-v1.4/2org1peercouchdb/fabric-node.yaml
it fails and it ir wierd because amoun logs I see ```
``` info: [adapters/fabric]: Installing chaincodes for mychannel...
info: [adapters/fabric]: marbles@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: marbles@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: simple@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: simple@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: Instantiating marbles@v0 in mychannel. This might take some time...
why it instantiate marble and simple contract for smallbank example?
Also, i want to run smallbank sample via this command caliper benchmark run --caliper-workspace ./packages/caliper-samples --caliper-benchconfig benchmark/smallbank/config.yaml --caliper-networkconfig network/fabric-v1.4/2org1peercouchdb/fabric-node.yaml
it fails and it ir wierd because amoun logs I see info: [adapters/fabric]: Installing chaincodes for mychannel...
info: [adapters/fabric]: marbles@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: marbles@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: simple@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: simple@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: Instantiating marbles@v0 in mychannel. This might take some time...
why it instantiate marble and simple contract for smallbank example?
Also, i want to run smallbank sample via this command caliper benchmark run --caliper-workspace ./packages/caliper-samples --caliper-benchconfig benchmark/smallbank/config.yaml --caliper-networkconfig network/fabric-v1.4/2org1peercouchdb/fabric-node.yaml
it fails and it is weird because amoung logs I see this info: [adapters/fabric]: Installing chaincodes for mychannel...
info: [adapters/fabric]: marbles@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: marbles@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: simple@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: simple@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: Instantiating marbles@v0 in mychannel. This might take some time...
why it instantiate marble and simple contract for smallbank example?
smallbank
yes
because the config file for the network lists all the chaincodes (we can then use the same network config file with different benchmark configs)
Hi everyone, I'm doing some test with Caliper with my chaincode and I get the MVCC_READ_CONFLICT when the benchmark submits more than 1tps, anyone knows how can I improve this throughput ?
u are probably updating the same item in your test - the read conflict is basically complaining that an entry in the state store was changed after the read but before the write of the current transaction
u are probably updating the same item in your test - the read conflict is basically complaining that an entry in the state store was changed after the read but before the write of the current transaction ... solution is to force the test section to work on a different item in the state store each time ... or at least loop around a large list of them
I'm not updating the same item, in the logic I handle not to update the same item nor query an empty item
@carlosalca Also make sure that your chaincode implementation doesn't modify the same key for every transaction. So the transaction inputs are only one part of the story/issue.
Has joined the channel.
Clipboard - August 27, 2019 1:45 PM
I had change the version number in package.json, but not work......
:sob:
Someone published our modules for us ... it took us by surprise too. `npm install caliper-cli` will get you what you want
I am happy to hear that. I spend hours yesterday.............
Hi, I want to run a benechmark based on my contract. When I run it it successfully instantiate two default samples, marbles and simple but when it comes to instituting my contracts I get the following error. Error: Error: Invalid endorsement for mycontract@v0 in mychannel from peer0.org1.example.com: timeout expired while starting chaincode mycontract:v0 for transaction. My contract is based on "fabric-contract-api" and all the samples are based on fabric-shim. Is there any caliper example based on "fabric-contract-api"? I used the config.yaml file in the simple project and changed the callbacks. I also use default caliper network config networkconfig network/fabric-v1.4/2org1peercouchdb/fabric-node.yaml.
ininstantiate
@Sara.r This behavior is typically (in my experiences) caused by a compilation error in your contract. Now the trick is, that you only receive the timeout error. And by that time, the peer destroyed the CC container... So when you see that Caliper started instantiating your chaincode, monitor one of the target peer logs (docker logs), and check the container list (docker ps) for CC containers, and also check their logs to catch the exact error
I do make sure that I use different keys for each transaction. It may be the CouchDB is locked while writting a transaction and do not let write another different ?
@carlosalca I don't think so, the error code is clearly for read/write conflicts, which is a business level issue (raised by the peer). Can you share your related Caliper user module code, and the corresponding chaincode function as well?
[ ](https://chat.hyperledger.org/channel/caliper?msg=3Do3sXaddRwwDzB7o)
test.txt
This is the Caliper module I'm using to run the tests
@carlosalca Which Caliper (commit) version are you using? The `fabric-ccp` adapter has been renamed to `fabric` when the old adapter was removed. However, I don't think this is the problem, and I can't see any other issue with your user module. Can you share the `create` function of your chaincode? That's the other part where you can introduce dependencies between transactions
I'm using Caliper version v0.1.0
T
@klenik sorry but I can't send the function... :(
@carlosalca
1) No problem, these things are sensitive content :) Look through every GetState and PutState in your function, just to make sure that you don't read keys that a previous transaction might have overwritten (proper data dependency is crucial for Fabric chaincodes).
2) Caliper is not semantically versioned yet, that's why I asked for the commit ID. If you execute `git log` in your repo, what's the top commit (and ID) you see?
@klenik this is the top commit:
`commit 27ec5f94e70a4cb3856f2b1dfd26b3e2f95b087f (HEAD -> master, origin/master, origin/HEAD)
Merge: e7dbfd6 4242c7e
Author: Attila Klenik
@carlosalca Still had the ccp adapter at that point, so I suspect an issue with your chaincode function. That's my best guess at this point
Thanks! How can I update Caliper ? Is it enough with removing the repo ?
@carlosalca Yes, there haven't been breaking changes compared to that (just extra features). But I'd recommend removing that `fabric-ccp` condition check. It is only needed when targeting multiple platforms with the same user logic. And also check the docs for installing/bootstrapping Caliper, that part changed a bit.
Thanks a lot @klenik ! I'm gonna try your advises
Thanks a lot @klenik ! I'm gonna try your advises :)
Hello everyone, I am running some tests on Caliper but some transactions ends in "fail". Is there a way to understand why some transactions fails?
At the end of the execution the test summary says that all test are succeeded.
How caliper instantiate smart contracts? I use "peer chaincode instantiate .." command to instantiate my contract in fabric network but I couldnt find this command in caliper files. I am getting the following error while caliper tries to instantiate my contract. SendProposal - timeout after 300000, and when I look into docker logs I see "error": "context finished before block retrieved: context canceled", "grpc.code": "Unknown", "grpc.call_duration": "676.055798ms"}
2019-08-28 18:59:05.185 UTC [endorser] callChaincode -> INFO 050 [mychannel][56f24d8d] Entry chaincode: name:"lscc"
@klenik Sorry to bother you again. I've tryed to update but I didn't get it, so I returned to the version I was using and changed the fabric-ccp condition check in the network configuration file. I changed from `fabric-ccp` to `fabric` but I got the same error as in the updated version:
info: [caliper-flow]: ####### Caliper Test #######
error: [caliper-flow]: Error: TypeError: Cannot read property 'network' of undefined
What I'm doing wrong ? Thanks for your help :)
For the older version, leave the check there, or just keep the ccp branch of the if-structure (so your args will be ccp compatible). Is there any stack trace for this error? Did you specify a network configuration file?
I did specify an example within the repo as the network configuration file. The stack trace is:
error: [caliper-flow]: Error: TypeError: Cannot read property 'network' of undefined
at Object.module.exports.init (/home/carlos/.nvm/versions/node/v8.16.0/lib/node_modules/caliper-cli/node_modules/caliper-fabric/lib/util.js:137:26)
at Fabric.init (/home/carlos/.nvm/versions/node/v8.16.0/lib/node_modules/caliper-cli/node_modules/caliper-fabric/lib/fabric.js:47:14)
at Blockchain.init (/home/carlos/.nvm/versions/node/v8.16.0/lib/node_modules/caliper-cli/node_modules/caliper-core/lib/blockchain.js:43:26)
at Object.module.exports.run (/home/carlos/.nvm/versions/node/v8.16.0/lib/node_modules/caliper-cli/node_modules/caliper-core/lib/caliper-flow.js:70:27)
at
caliper uses the fabric-sdk-node to perform all operations
I tried to check the docker logs of the peers but there are no informations about why some transactions fails
have you looked in the chaincode container logs?
Hi all, I have a question : how can i use caliper to send proposal to 2 peers to utilize the ever peer's performance to improve the tps
@klenik
the fabric-adaptor for caliper should already load balance across all known peers
i saw it, i know how to make it ,the adapter choose one peer of every org,so it may cause that 2 org both make proposal ,not one of the two org ,i will set the target peer in the callback js file.thanks
i saw it, i know how to make it ,the adapter choose one peer of every org,so it may cause that 2 org both make proposal ,not one of the two org ,i will set the target peer in the callback js file.thanks @nkl199
Has joined the channel.
Hi guys is Caliper avaliable for raft consensus
Yes, Here it is: https://github.com/hyperledger/caliper/tree/master/packages/caliper-samples/network/fabric-v1.4.1/raft
I try to run `npm run publish_packages`, but I met this issue like below,
```
Failed to publish package caliper-core to local npm server (attempt 5/5)
Error: Failed to execute "npm publish --registry http://localhost:4873 --force ../caliper-core" with return code 1
at ChildProcess.
I try to run `npm run publish_packages`, but I met this issue like below,
```
Failed to publish package caliper-core to local npm server (attempt 5/5)
Error: Failed to execute "npm publish --registry http://localhost:4873 --force ../caliper-core" with return code 1
at ChildProcess.
Hi Everyone
i am facing this issue in peer logs
2019-09-02 07:36:15.455 UTC [chaincode] NewChaincodeSupport -> ERRO 016 Invalid execute timeout value 0s (should be at least 1s); defaulting to 30s
My test is being failed in some rounds. so i got this above issue in logs of peer
Please let me know where should i increase timeout value.
The 2nd error in peer log is
```
2019-09-02 07:36:49.740 UTC [chaincode] processStream -> ERRO 044 Got error: Error: The current identity, with the name 'admin' and the identifier '01899e04161a3a6d64670504fa122e55818295352929b6a616333a3739fde3f2', must be activated (ACTIVATION_REQUIRED)
2019-09-02 07:36:49.741 UTC [chaincode] ExecuteChaincode -> ERRO 045 transaction returned with failure: Error: The current identity, with the name 'admin' and the identifier '01899e04161a3a6d64670504fa122e55818295352929b6a616333a3739fde3f2', must be activated
```
Please let me know why i am getting this and how to fix
Yes, probably caused by the published non-official caliper packages: https://github.com/hyperledger/caliper/issues/552
So, it means that should I change package.json?
So, it means that should I change the version in all package.json?
I tried it, but it has same error :(
We're working on switching to org scoped packages (@hyperledger/caliper-...), it should be ready in a few days
Hi all, I want to know how many tps can i fetch just use the local client
I use intel i7 8 core just fetch 600tps, ths cpu up to 100%
I saw caliper can fetch 10k tps in github ,so i want to know what type machine it use
no session established for client
https://github.com/hyperledger/caliper/issues/388
I meet the same problem when i use zookeeper
@TopJohn With a few local clients, you should be able to generate 10k TPS: https://github.com/hyperledger/caliper/issues/505
The zookeeper feature will be removed soon, so I wouldn't rely on that. It'll be replaced with an easier-to-use solution
but it can't up to 10k tps
the max send rate just 700
in my machine
Clipboard - 2019年9月3日下午2点54分
Hi, is there any site where explain how to scale the Fabric network to improve the tps ?
when will the new solution release to replace zookeeper
@TopJohn The client send performance have been improved a few weeks ago, so the current version of Caliper should be able to handle it.
1) Which Caliper commit version are you using?
2) Are you running your Fabric network on the same machine?
3) How complex is your user module? Are you doing some CPU-heavy stuff there?
(These can all contribute to low sending rates)
I don't understand what is the user module, what is it ?
@carlosalca The user callback file that you write/use for a given round. We should really fix the terminology :sweat_smile:
https://hyperledger.github.io/caliper/docs/2_Architecture.html#user-defined-test-module
ah ok, I have use it many times :sweat_smile:
hi all , i found a problem, and @FlyingTiger say he gets the same conclusion that the send rate now just Less than 700 per send in a 8 core machaine
how many test clients?
8 or 16
But the result is same
The cpu’s every core is 100%
i found there are too many connections to orderers and peers, maybe this is the reason
?
does anyone use zookeeper type to make test successfully?
when i use this approach , zookeeper always say ubable to read additional data from client
I don't know how to solve this problem
Yes,I got the similar conclusion, send rate now just Less than 800 transactions per send in a 8 core machaine (8 test clients, benchmark/simple , network/fabric-v1.4/2org1peergoleveldb/fabric-go.yaml).
it's easy to up to 100% every core ,when i set the tps = 600
if 500, about 80% every core
@TopJohn @FlyingTiger after taking care 1-2 major updates (publishing, monitoring, reworking distributed clients), we will (or need to) do some profiling to reveal the bottlenecks. But there's no point in doing that now, since the code base will change considerably
But the bottleneck solved,may be the distributed client may not important
Hi! Has anyone tryed the Caliper as a Docker container ??
@carlosalca We'll publish the NPM packages and Docker image in a few hours, just doing some last-minute sanity checks. The code and docs are already updated, which is probably confusing, but you can try the image soon :)
Thanks @klenik !! I'm looking forward to it!! :)
@klenik , is there any Telegram channel or something like that for staying updated about Caliper ?
@carlosalca I think github provides an RSS feed for releases of a repo. Try the following feed link with your favorite RSS app:
https://github.com/hyperledger/caliper/releases.atom
@carlosalca Or you can use github notifications directly: https://help.github.com/en/articles/watching-and-unwatching-releases-for-a-repository
Thanks!
[Annual Caliper Newsletter]
Dear Caliper Community,
We are happy to announce the first official release of Caliper on NPM and DockerHub!
Please consult the documentation page on how to install and use Caliper (noting the new binding step):
https://hyperledger.github.io/caliper/docs/Installing_Caliper.html
Happy benchmarking,
Caliper maintainers
[Annual Caliper Newsletter]
Dear Caliper Community,
We are happy to announce the first official release of Caliper on NPM and DockerHub!
Please consult the documentation page on how to install and use Caliper (noting the new binding step):
https://hyperledger.github.io/caliper/docs/Installing_Caliper.html
Happy benchmarking,
Caliper maintainers
Further to the above, the release notes (complete with a Conga Comic special) may be read here: https://github.com/hyperledger/caliper/releases/tag/0.1.0
Congrats!:thumbsup:
Hi, I am able to run my test successfully based on all available networks except kafka, when I run the test based on kafka I get the following error at the beginning Error: Error: Couldn't create Channel 'mychannel': Orderer response indicated unsuccessful Channel 'mychannel' creation: SERVICE_UNAVAILABLE.
@Sara.r Check the orderer logs to see if they started successfully.
@Sara.r - as suggested by klenik, it is probable that the service has not started, you can increase the 'sleep' in the config file start command to give it more time
Has joined the channel.
for HL caliper repo required to install in HLfabric setup repo / will it work independently as different repo
@Utsav_Solanki Caliper is a standalone tool, it doesn't depend on any DLT codebase directly (just through the SDKs). See this to get started: https://hyperledger.github.io/caliper/docs/Installing_Caliper.html
Hi Team, I am trying to run sample tests using Caliper and they are working fine in case of level db, but I am getting below error while executing test for CouchD sample. Error : `error: [adapters/fabric]: The following errors occurred while querying mychannel information from Org1's peers: - Couldn't query mychannel information from peer0.org1.example.com: 14 UNAVAILABLE: TCP Read failed - Couldn't query mychannel information from peer1.org1.example.com: 14 UNAVAILABLE: TCP Read failederror.` Command used to run the test is : `npx caliper benchmark run --caliper-workspace ../caliper-samples --caliper-benchconfig benchmark/simple/config.yaml --caliper-networkconfig network/fabric-v1.4/3org2peercouchdb/fabric-node.yaml`
Hi Team, I am trying to run sample tests using Caliper and they are working fine in case of level db, but I am getting below error while executing test for CouchD sample. Error : `error: [adapters/fabric]: The following errors occurred while querying mychannel information from Org1's peers: - Couldn't query mychannel information from peer0.org1.example.com: 14 UNAVAILABLE: TCP Read failed - Couldn't query mychannel information from peer1.org1.example.com: 14 UNAVAILABLE: TCP Read failederror.` Command used to run the test is : `npx caliper benchmark run --caliper-workspace ../caliper-samples --caliper-benchconfig benchmark/simple/config.yaml --caliper-networkconfig network/fabric-v1.4/3org2peercouchdb/fabric-node.yaml`. Can anyone please suggest what can be the issue here
Hi Team, I am trying to run sample tests using Caliper and they are working fine in case of level db, but I am getting below error while executing test for CouchD sample. Error : `error: [adapters/fabric]: The following errors occurred while querying mychannel information from Org1's peers: - Couldn't query mychannel information from peer0.org1.example.com: 14 UNAVAILABLE: TCP Read failed - Couldn't query mychannel information from peer1.org1.example.com: 14 UNAVAILABLE: TCP Read failederror.` Command used to run the test is : `npx caliper benchmark run --caliper-workspace ../caliper-samples --caliper-benchconfig benchmark/simple/config.yaml --caliper-networkconfig network/fabric-v1.4/3org2peercouchdb/fabric-node.yaml`. Can anyone please suggest what can be the issue here. @klenik
Also after receiving the error, containers automatically gets stopped , so not able to check the logs for peer and other containers
@HLFPOC The TCP Read errors indicate that the connection (and probably the containers too) was terminated. CouchDB is resource demanding, and you're running 6 instances, plus the other containers. Try a smaller example
Yes, I have tried with a small sample as well (2 org 1 peer couch db), got the same error there also
What is the specs of your machine? Check the resource utilizations when running the sample
Issue was with memory of instance, by increasing it, I was able to resolve and run the test case. Thanks for your inputs :)
:thumbsup:
Has joined the channel.
Hi all, I am new to Hyperledger and wonder if anyone know an easy tutorial to test and run a caliper test for a fabric network that I can look at?
@Xepp A good starting point is the Caliper install & usage docs: https://hyperledger.github.io/caliper/docs/Installing_Caliper.html
You will see some example usage based on Fabric. Find the referenced files in the repo. And if the Fabric network config is not clear from the example, then out its doc page: https://hyperledger.github.io/caliper/docs/Fabric_Configuration.html
@Xepp A good starting point is the Caliper install & usage docs: https://hyperledger.github.io/caliper/docs/Installing_Caliper.html
You will see some example usage based on Fabric. Find the referenced files in the repo. And if the Fabric network config is not clear from the example, then check out its doc page: https://hyperledger.github.io/caliper/docs/Fabric_Configuration.html
Thanks @klenik , I check it out!
hi, i am using HLF 1.4.2 while caliper-bind-SUT, i am getting error as
hi, i am using HLF 1.4.2 while performing command caliper-bind-SUT, i am getting error as
npx caliper bind --caliper-bind-sut fabric --caliper-bind-sdk 1.4.2
error: [bind]: Unknown "fabric" SDK version "1.4.2". Available versions: 1.0.0 | 1.1.0 | 1.2.0 | 1.3.0 | 1.4.0 | 1.4.1 | 1.4.3 | 1.4.4 | latest
Error: Unknown "fabric" SDK version "1.4.2". Available versions: 1.0.0 | 1.1.0 | 1.2.0 | 1.3.0 | 1.4.0 | 1.4.1 | 1.4.3 | 1.4.4 | latest
if i use npx caliper bind --caliper-bind-sut fabric --caliper-bind-sdk 1.4.1 does that affect to my caliper setup
@Utsav_Solanki The 1.4.2 Fabric sdk release had a defect, so it's not available for binding. You can use 1.4.1 or 1.4.3
ok
Thanks
Hi! I'm trying to use the docker image realised some days ago but I am not able to run a test. I'm no able to use the config from the volumes..
Has joined the channel.
hi i have a fabric network and i want to install Caliper to test performance can anyone plz share with me a step by step guide to install Caliper an configure it in order to test benshmark my network ??? i didn't find the official documentation clear enought
Can you share the exact steps you performed?
Can you point out the unclear parts of the docs so we can address the problem?
hi thank you for your fast replay. i'm trying to follow the instraction to install Caliper so that i can run performance tests to my fabric network.
what i did for now is :
1- creating a caliper-benchmarks directory
2-npm init -y
3-installing the cli with : npm install --only=prod @hyperledger/caliper-cli
4-bind it to fabric SDK : npx caliper bind --caliper-bind-sut fabric --caliper-bind-sdk 1.4.0
now and accordin to the documentation i need to Invoke the local CLI binary (using npx) with the appropriate parameters.
what are this params and how to configure them
?
"i need to mention that i'm using the NPM installation"
https://hyperledger.github.io/caliper/docs/Installing_Caliper.html#installing-from-npm
https://hyperledger.github.io/caliper/docs/Installing_Caliper.html#local-npm-install
The 4th command is the last step. For the API of `benchmark run`, see this section: https://hyperledger.github.io/caliper/docs/Installing_Caliper.html#the-benchmark-command
The samples assume, that you cloned the `caliper-benchmarks` repo, which contains the required artifacts:
```
git clone https://github.com/hyperledger/caliper-benchmarks.git
cd caliper-benchmarks
```
This is the starting point of every example
(the thread view messes up the lines in the above example, but it's just two lines)
ok thank you. one more question plz do i have to change something in the fabric network ??
If you only run the samples in the benchmark repo, then no, they're already perfect :)
A tutorial for writing your own benchmark is on the way, until them you can get familiar with Caliper through the existing examples
perfect. that was very helpful thank you
:thumbsup:
can u explain to me plz wich network is suposed to be benshmarked when i run this sample ??
because i'm getting error when running it
i'm sry that was a docker related problem. i apologize
Has joined the channel.
hi i wanted if a date was fixed for the tutorial for writing customised benchmark ???
to ask*
not yet - we should probably track this as an issue in github
I finally got it working, I was making a mistake with the shared volume and the envs paths. Sorry for the alert :sweat_smile:
No problem, others can also learn from your mistake: double/triple check every path :D
Hi, when I increase the number of transactins in for the fabric network 1.4. 3org2peercouchdb a huge number of transactions failed due to this error -> error: [adapters/fabric]: Transaction[c24b5caba6] commit errors:
- Commit timeout on peer0.org1.example.com. Where can I increase the timeout time? I changed it in config file but it did not work.
@Sara.r The timeout can be set in multiple ways. The following are in order of precedence:
1) Set (in seconds) when invoking `invokeSmartContract` or `querySmartContract` in your user module: https://hyperledger.github.io/caliper/vLatest/fabric-config/#the-run-callback
2) Set (in milliseconds) through the `caliper-fabric-timeout-invokeorquery` setting key from some source: https://hyperledger.github.io/caliper/vLatest/runtime-config/
The examples all set it through 1), so you either need to remove that setting to use 2), or change it in the user module
while running caliper benchmark run --caliper-workspace ~/caliper/ --caliper-benchconfig packages/caliper-samples/benchmark/simple/config.yaml --caliper-networkconfig packages/caliper-samples/network/fabric-v1.3/2org1peergoleveldb/fabric-go.yaml
i am getting error as
info: [adapters/fabric]: Installing chaincodes for mychannel...
2019-09-13T13:21:05.892Z - error: [packager/Golang.js]: error while packaging /home/ubuntu/caliper/src/src/contract/fabric/marbles/go
2019-09-13T13:21:05.893Z - error: [Client.js]: installChaincode error ENOENT: no such file or directory, lstat '/home/ubuntu/caliper/src/src/contract/fabric/marbles/go'
error: [caliper-flow]: Error: Error: Couldn't install marbles@v0 on peers peer0.org1.example.com: ENOENT: no such file or directory, lstat '/home/ubuntu/caliper/src/src/contract/fabric/marbles/go'
at Fabric._installChaincodes (/usr/local/lib/node_modules/@hyperledger/caliper-cli/node_modules/@hyperledger/caliper-fabric/lib/fabric.js:1205:31)
at
@Utsav_Solanki Wrong path: "/home/ubuntu/caliper/*src/src*/contract/fabric/marbles/go"
Go chaincode paths are resolved starting from $GOPATH/src, so don't include the src in the path again.
See the `chaincodes.path` section: https://hyperledger.github.io/caliper/vLatest/fabric-config/#channels
but also i tried by changing many path but still
2019-09-13T13:46:21.676Z - error: [packager/Golang.js]: error while packaging /home/ubuntu/caliper/src/contract/fabric/marbles/go
2019-09-13T13:46:21.677Z - error: [Client.js]: installChaincode error ENOENT: no such file or directory, lstat '/home/ubuntu/caliper/src/contract/fabric/marbles/go'
error: [caliper-flow]: Error: Error: Couldn't install marbles@v0 on peers peer0.org1.example.com: ENOENT: no such file or directory, lstat '/home/ubuntu/caliper/src/contract/fabric/marbles/go'
https://github.com/hyperledger/caliper/blob/master/packages/caliper-samples/network/fabric-v1.3/2org1peergoleveldb/fabric-go.yaml
i set path as given in it
i set correct path as given in it
still error
Ah, your workspace is wrong. The examples assume that the workspace is set to the `packages/caliper-samples` directory. So use `--caliper-workspace ~/caliper/packages/caliper-samples`
hmm, something is still wrong with the path resolution...
no, the above suggestion should work :)
caliper benchmark run --caliper-workspace ~/caliper/ --caliper-benchconfig packages/caliper-samples/benchmark/simple/config.yaml --caliper-networkconfig packages/caliper-samples/network/fabric-v1.3/2org1peergoleveldb/fabric-go.yaml
one thing i found
error: [caliper-flow]: Error: Error: Couldn't install marbles@v0 on peers peer0.org1.example.com: ENOENT: no such file or directory, lstat '/home/ubuntu/caliper/src/packages/caliper-samples/contract/fabric/marbles/go'
this is my path
this is my path /home/ubuntu/caliper/packages/caliper-samples/src/contract/fabric/marbles/go
so if i am not adding this path: contract/fabric/marbles/go
it takes /home/ubuntu/caliper/src/home/ubuntu/caliper/src
[ ](https://chat.hyperledger.org/channel/caliper?msg=hkMzhAqtXQx9ewgrW) if i am adding packages/caliper-samples before path
error showing lstat '/home/ubuntu/caliper/src/packages/caliper-samples/contract/fabric/marbles/go'
form which file is merging this path
from which file is merging this path
@Utsav_Solanki GOPATH is set to the workspace by default, which is the desired setting for your example. The go chaincode paths are derived like this: GOPATH+path. So set the workspace to `~/caliper/packages/caliper-samples`, that way it will point to the correct path: ~/caliper/packages/caliper-samples/src/contract/fabric/marbles/go
caliper-cli
@klenik Thanks
Hi everyone! I'm running a test with the new Docker image, but I can't install the chaincode, I have a problem with the path. I also had a problem with the crypto material's path but I resolved it by writing the complete path. I check in the local volume and It exists...
Clipboard - September 16, 2019 10:44 AM
and know I get another error :
caliper | TypeError: Cannot read property 'hasOwnProperty' of undefined
caliper | Command failed
@carlosalca Where do you mount your workspace? If you mount the `caliper-samples` host directory to the `/hyperledger/caliper/workspace` container directory, then the above path should exist
I mount it here:
volumes:
- ~/hyperledger/caliper-v.0.1.0/packages/caliper-samples/:/home/node/hyperledger/caliper/workspace
@carlosalca Like here: https://hyperledger.github.io/caliper/vLatest/installing-caliper/#starting-a-container
(The example is using the caliper-benchmarks repo, but the important thing is mounting the correct host dir to the container workspace)
`/home/node/hyperledger/caliper/workspace` => The workspace is wrong (this was the original path in the proof-of-concept image).
Correct: `- ~/hyperledger/caliper-v.0.1.0/packages/caliper-samples/:/hyperledger/caliper/workspace`
aaah ok! Sorry for this stupid mistake :sweat_smile: :sweat_smile:
I'm changing it right now!!
Hello @klenik , Can you please confirm if we can do concurrent transactions in Caliper on Hyperledger Fabric network?
@HLFPOC Of course, otherwise it would be quite a useless load generator :)
The transactions are submitted sequentially within a client, but Caliper won't wait for a result before submitting the next transaction, so their executions are overlapped, i.e., concurrent
Okay, so you mean to say, Caliper submits the transaction concurrently by default..right ?
If we only consider a single load generating client, then technically the TXs are *submitted* sequentially. So start_time(TX1) < start_time(TX2) < start_time(TX3) ...
but there are only a few ms of difference usually, and a Fabric transaction takes 0,5-1-2 second usually, so in Fabric, the transactions are executed parallelly
If you use multiple load generator processes, then even the submissions are parallel
thanks for clarifying, any pointers on how to start multiple load generators ?
See the clients section here:
https://hyperledger.github.io/caliper/vLatest/architecture/#configuration-file
Hi Everyone,
I am facing this issue when i am trying to test 500 or 1000 txns in test rounds
```
(node:28687) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added. Use emitter.setMaxListeners() to increase limit
```
Can anyone please help me in this?
@klenik i want to perform caliper test on my existing running HLF NW but HLF NW SDK and HLF network configuration are in different VM, how can perform test
Hello, I try to run "Installing from NPM" and I want to run caliper, using docker-compose.
I follow the steps mentioned in this official document,
```
cd ~
hyper@ubuntu:~$ git clone https://github.com/hyperledger/caliper-benchmarks
...
hyper@ubuntu:~$ cd caliper-benchmarks/
...
hyper@ubuntu:~/caliper-benchmarks$ npm init -y
...
hyper@ubuntu:~/caliper-benchmarks$ npm install --only=prod @hyperledger/caliper-cli
...
hyper@ubuntu:~/caliper-benchmarks$ npx caliper bind --caliper-bind-sut fabric --caliper-bind-sdk 1.4.0
warn: [bind]: Working directory for binding not specified. Using "/home/hyper/caliper-benchmarks"
Binding for fabric@1.4.0. This might take some time...
info: [bind]: Binding working directory: /home/hyper/caliper-benchmarks
info: [bind]: Calling npm with: install grpc@1.14.2 fabric-ca-client@1.4.0 fabric-client@1.4.0 fabric-protos@2.0.0-snapshot.1 fabric-network@1.4.0
> pkcs11js@1.0.19 install /home/hyper/caliper-benchmarks/node_modules/pkcs11js
> node-gyp rebuild
make: Entering directory '/home/hyper/caliper-benchmarks/node_modules/pkcs11js/build'
CXX(target) Release/obj.target/pkcs11/src/main.o
CXX(target) Release/obj.target/pkcs11/src/dl.o
CXX(target) Release/obj.target/pkcs11/src/const.o
CXX(target) Release/obj.target/pkcs11/src/pkcs11/error.o
CXX(target) Release/obj.target/pkcs11/src/pkcs11/v8_convert.o
CXX(target) Release/obj.target/pkcs11/src/pkcs11/template.o
CXX(target) Release/obj.target/pkcs11/src/pkcs11/mech.o
CXX(target) Release/obj.target/pkcs11/src/pkcs11/param.o
CXX(target) Release/obj.target/pkcs11/src/pkcs11/param_aes.o
CXX(target) Release/obj.target/pkcs11/src/pkcs11/param_rsa.o
CXX(target) Release/obj.target/pkcs11/src/pkcs11/param_ecdh.o
CXX(target) Release/obj.target/pkcs11/src/pkcs11/pkcs11.o
CXX(target) Release/obj.target/pkcs11/src/async.o
CXX(target) Release/obj.target/pkcs11/src/node.o
SOLINK_MODULE(target) Release/obj.target/pkcs11.node
COPY Release/pkcs11.node
make: Leaving directory '/home/hyper/caliper-benchmarks/node_modules/pkcs11js/build'
> grpc@1.21.1 install /home/hyper/caliper-benchmarks/node_modules/fabric-network/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library
node-pre-gyp WARN Using request for node-pre-gyp https download
[grpc] Success: "/home/hyper/caliper-benchmarks/node_modules/fabric-network/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc/grpc_node.node" is installed via remote
> grpc@1.14.2 install /home/hyper/caliper-benchmarks/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library
node-pre-gyp WARN Using request for node-pre-gyp https download
[grpc] Success: "/home/hyper/caliper-benchmarks/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc/grpc_node.node" is installed via remote
+ grpc@1.14.2
+ fabric-ca-client@1.4.0
+ fabric-client@1.4.0
+ fabric-network@1.4.0
+ fabric-protos@2.0.0-snapshot.1
added 198 packages in 43.679s
Command succeeded
```
and then I run `~/caliper-benchmarks$ npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.0/2org1peergoleveldb/fabric-go.yaml`.
[ ](https://chat.hyperledger.org/channel/caliper?msg=64d4eoqQW3Z5eAdFj)
caliper_2.png
[ ](https://chat.hyperledger.org/channel/caliper?msg=64d4eoqQW3Z5eAdFj)
caliper_2.png
caliper_3.png
[ ](https://chat.hyperledger.org/channel/caliper?msg=jwW9CQCoYvPY6kem8)
caliper_3.png
Hey guys, how are you doing? I just want to know if Is there a way to measure or check transaction response time through the caliper or fabric log?
1) On one VM, you install and bind Caliper (it will install the necessary SDK too), and have the benchmark and network configuration files in your workspace (and other related artifacts, like user callback file, crypto, etc).
2) You can have your Fabric nodes at any other VM, you just have to provide the correct endpoints in the network config file of Caliper. And make sure the VMs can see eachother
Caliper already reports these on the console and in the generated HTML report. What is your exact use case? As for Fabric, it also provides metrics. Check the Fabric docs and related forums (mailing list, #fabric )
@lotty02cho The `wrong command format` error is returned by the chaincode. Probably the user callback modules submits the TX with wrong arguments. See the chaincode source for the correct API. As for the other error log, please provide the beginning of the log.
Thanks. I want to know if when the server is overloaded the transactions are dropped for waiting too long in the queue, and the process of thrashing for a very large number of transactions. From Caliper HTML I only see the average, maximum and minimum latency, not the transaction response time.
In your callback module, the `invoke/querySmartContract` functions return an array of TxStats. You can log these yourself: https://hyperledger.github.io/caliper/vLatest/fabric-config/#transaction-data-gathered-by-the-adapter
So does the log store all this information for each submitted transaction or do I need to modify and redo all experiments?
They are only aggregated currently. If you data about each Tx, you have to log those manually in your user callback. So you have to redo your tests. (With the upcoming observer feature, this will be provided out-of-the-box)
They are only aggregated currently. If you want data about each Tx, you have to log those manually in your user callback. So you have to redo your tests. (With the upcoming observer feature, this will be provided out-of-the-box)
Ok, thank you once again, @klenik.
:thumbsup:
Um.. I didn't change anything about chaincode. In addition, Channel, chaincode is successfully installed and instantiated.
Here is the beginning of the log.
```
hyper@ubuntu:~/caliper-benchmarks$ npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.0/2org1peergoleveldb/fabric-go.yaml
Benchmark for target Blockchain type fabric about to start
info: [caliper-flow]: ####### Caliper Test #######
info: [caliper-utils]: Executing command: cd /home/hyper/caliper-benchmarks;export FABRIC_VERSION=1.4.0;docker-compose -f networks/fabric/docker-compose/2org1peergoleveldb/docker-compose.yaml up -d;sleep 3s
Creating network "2org1peergoleveldb_default" with the default driver
Creating ca.org2.example.com ... done
Creating orderer.example.com ... done
Creating ca.org1.example.com ... done
Creating peer0.org1.example.com ... done
Creating peer0.org2.example.com ... done
info: [adapters/fabric]: Fabric SDK version: 1.4.0; TLS: none
info: [adapters/fabric]: Org1's registrar enrolled successfully
info: [adapters/fabric]: Org2's registrar enrolled successfully
info: [adapters/fabric]: Org1's admin's materials are successfully loaded
info: [adapters/fabric]: Org2's admin's materials are successfully loaded
info: [adapters/fabric]: client0.org1.example.com's materials are successfully loaded
info: [adapters/fabric]: client0.org2.example.com's materials are successfully loaded
info: [adapters/fabric]: Channel 'mychannel' definiton being retrieved from file
info: [adapters/fabric]: Channel 'mychannel' successfully created
info: [adapters/fabric]: Sleeping 5s...
info: [adapters/fabric]: Org1's peers successfully joined mychannel: peer0.org1.example.com
info: [adapters/fabric]: Org2's peers successfully joined mychannel: peer0.org2.example.com
info: [adapters/fabric]: Sleeping 5s...
info: [adapters/fabric]: Installing chaincodes for mychannel...
info: [adapters/fabric]: marbles@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: marbles@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: drm@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: drm@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: simple@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: simple@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: smallbank@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: smallbank@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: Instantiating marbles@v0 in mychannel. This might take some time...
info: [adapters/fabric]: Successfully instantiated marbles@v0 in mychannel
info: [adapters/fabric]: Instantiating drm@v0 in mychannel. This might take some time...
info: [adapters/fabric]: Successfully instantiated drm@v0 in mychannel
info: [adapters/fabric]: Instantiating simple@v0 in mychannel. This might take some time...
info: [adapters/fabric]: Successfully instantiated simple@v0 in mychannel
info: [adapters/fabric]: Instantiating smallbank@v0 in mychannel. This might take some time...
info: [adapters/fabric]: Successfully instantiated smallbank@v0 in mychannel
info: [adapters/fabric]: Sleeping 5s...
info: [caliper-flow]: Started monitor successfully
info: [defaultTest]: ####### Testing 'open' #######
info: [defaultTest]: ------ Test round 1 ------
info: [client-util.js]: Launching client with PID 47651
info: [client-util.js]: Waiting for 1 clients to be ready...
info: [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0
info: [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0
info: [client-util.js]: Client ready message recieved
info: [client-util.js]: 1 clients ready, starting test phase
info: [fabric/fabricClientWorker]: Client ready
info: [local-client.js]: txUpdateTime: 1000
info: [local-client.js]: Info: client 47651 start test runFixedNumber():opening accounts
error: [adapters/fabric]: Transaction[8b81cde485] life-cycle errors:
```
Um.. I didn't change anything about chaincode. In addition, Channel, chaincode is successfully installed and instantiated.
Here is the beginning of the log.
```
hyper@ubuntu:~/caliper-benchmarks$ npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.0/2org1peergoleveldb/fabric-go.yaml
Benchmark for target Blockchain type fabric about to start
info: [caliper-flow]: ####### Caliper Test #######
info: [caliper-utils]: Executing command: cd /home/hyper/caliper-benchmarks;export FABRIC_VERSION=1.4.0;docker-compose -f networks/fabric/docker-compose/2org1peergoleveldb/docker-compose.yaml up -d;sleep 3s
Creating network "2org1peergoleveldb_default" with the default driver
Creating ca.org2.example.com ... done
Creating orderer.example.com ... done
Creating ca.org1.example.com ... done
Creating peer0.org1.example.com ... done
Creating peer0.org2.example.com ... done
info: [adapters/fabric]: Fabric SDK version: 1.4.0; TLS: none
info: [adapters/fabric]: Org1's registrar enrolled successfully
info: [adapters/fabric]: Org2's registrar enrolled successfully
info: [adapters/fabric]: Org1's admin's materials are successfully loaded
info: [adapters/fabric]: Org2's admin's materials are successfully loaded
info: [adapters/fabric]: client0.org1.example.com's materials are successfully loaded
info: [adapters/fabric]: client0.org2.example.com's materials are successfully loaded
info: [adapters/fabric]: Channel 'mychannel' definiton being retrieved from file
info: [adapters/fabric]: Channel 'mychannel' successfully created
info: [adapters/fabric]: Sleeping 5s...
info: [adapters/fabric]: Org1's peers successfully joined mychannel: peer0.org1.example.com
info: [adapters/fabric]: Org2's peers successfully joined mychannel: peer0.org2.example.com
info: [adapters/fabric]: Sleeping 5s...
info: [adapters/fabric]: Installing chaincodes for mychannel...
info: [adapters/fabric]: marbles@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: marbles@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: drm@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: drm@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: simple@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: simple@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: smallbank@v0 successfully installed on Org1's peers: peer0.org1.example.com
info: [adapters/fabric]: smallbank@v0 successfully installed on Org2's peers: peer0.org2.example.com
info: [adapters/fabric]: Instantiating marbles@v0 in mychannel. This might take some time...
info: [adapters/fabric]: Successfully instantiated marbles@v0 in mychannel
info: [adapters/fabric]: Instantiating drm@v0 in mychannel. This might take some time...
info: [adapters/fabric]: Successfully instantiated drm@v0 in mychannel
info: [adapters/fabric]: Instantiating simple@v0 in mychannel. This might take some time...
info: [adapters/fabric]: Successfully instantiated simple@v0 in mychannel
info: [adapters/fabric]: Instantiating smallbank@v0 in mychannel. This might take some time...
info: [adapters/fabric]: Successfully instantiated smallbank@v0 in mychannel
info: [adapters/fabric]: Sleeping 5s...
info: [caliper-flow]: Started monitor successfully
info: [defaultTest]: ####### Testing 'open' #######
info: [defaultTest]: ------ Test round 1 ------
info: [client-util.js]: Launching client with PID 47651
info: [client-util.js]: Waiting for 1 clients to be ready...
info: [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0
info: [demo.js]: [Transaction Info] - Submitted: 0 Succ: 0 Fail:0 Unfinished:0
info: [client-util.js]: Client ready message recieved
info: [client-util.js]: 1 clients ready, starting test phase
info: [fabric/fabricClientWorker]: Client ready
info: [local-client.js]: txUpdateTime: 1000
info: [local-client.js]: Info: client 47651 start test runFixedNumber():opening accounts
error: [adapters/fabric]: Transaction[8b81cde485] life-cycle errors:
- Proposal response error by peer0.org1.example.com: {"code":301, "reason": "command format is wrong"}
- Proposal response error by peer0.org2.example.com: {"code":301, "reason": "command format is wrong"}
```
Have you made any changes to any of the sample files?
@klenik Nope, I haven't changed it, I remove docker container and change root directory. That's all.
Should I check environment variable or path to run caliper?
I'll take a look at it now. Maybe the example has a bug
Yep, it's a bug in the example. Modify this line:
https://github.com/hyperledger/caliper-benchmarks/blob/master/benchmarks/scenario/simple/open.js#L77
Change `fabric-ccp` to `fabric`
@lotty02cho I've submitted a fix. Until it's merged, you can use my branch: https://github.com/aklenik/caliper-benchmarks/tree/fabric-ccp-fix
```
git clone https://github.com/aklenik/caliper-benchmarks.git && cd caliper-benchmarks && git checkout -b fabric-ccp-fix origin/fabric-ccp-fix
```
@lotty02cho It's been merged, you can use the original repo again
@klenik I always appreciate your help! I will let you know it works.
Now it works, but when caliper start to test 'transfer', round 3. it throws like below.
```
info: [defaultTest]: ####### Testing 'transfer' #######
info: [defaultTest]: ------ Test round 3 ------
info: [client-util.js]: Waiting for 0 clients to be ready...
info: [client-util.js]: 0 clients ready, starting test phase
info: [local-client.js]: txUpdateTime: 1000
info: [local-client.js]: Info: client 24880 start test runFixedNumber():transfering money
error: [adapters/fabric]: Transaction[41dbb224a6] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer0.org2.example.com with code MVCC_READ_CONFLICT
error: [adapters/fabric]: Transaction[28188386b2] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer0.org2.example.com with code MVCC_READ_CONFLICT
2019-09-19T00:19:06.975Z - error: [Channel.js]: compareProposalResponseResults - read/writes result sets do not match index=1
error: [adapters/fabric]: Transaction[2aad01ab46] life-cycle errors:
- Read/Write set mismatch between endorsements
error: [adapters/fabric]: Transaction[0e4d5da5aa] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer0.org2.example.com with code MVCC_READ_CONFLICT
```
Is it related a chaincode as well?
Now it works, but when caliper start to test 'transfer' at round 3. it throws like below.
```
info: [defaultTest]: ####### Testing 'transfer' #######
info: [defaultTest]: ------ Test round 3 ------
info: [client-util.js]: Waiting for 0 clients to be ready...
info: [client-util.js]: 0 clients ready, starting test phase
info: [local-client.js]: txUpdateTime: 1000
info: [local-client.js]: Info: client 24880 start test runFixedNumber():transfering money
error: [adapters/fabric]: Transaction[41dbb224a6] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer0.org2.example.com with code MVCC_READ_CONFLICT
error: [adapters/fabric]: Transaction[28188386b2] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer0.org2.example.com with code MVCC_READ_CONFLICT
2019-09-19T00:19:06.975Z - error: [Channel.js]: compareProposalResponseResults - read/writes result sets do not match index=1
error: [adapters/fabric]: Transaction[2aad01ab46] life-cycle errors:
- Read/Write set mismatch between endorsements
error: [adapters/fabric]: Transaction[0e4d5da5aa] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer0.org2.example.com with code MVCC_READ_CONFLICT
```
Is it related a chaincode as well?
@lotty02cho that's expected. The workload logic is random, so txs in the same block try to modify the same keys in the world state. So that's an example limitation, not a "real error"
(look up the read-write semantics in the fabric docs)
Has anyone tried caliper with Docker Swarm and do you think if it is doable?
@nimaafraz I don't see any issues with that. Caliper only needs the endpoints of the backend DLT network, which should be easy to access thanks to the swarm overlay network. So mount your benchmark artifacts into the Caliper container, and set the node/container endpoints in the adapter network configuration file. And let us know how it goes :)
[ ](https://chat.hyperledger.org/channel/caliper?msg=NzZcGAKs93y9YqSt4)
Clipboard - September 19, 2019 3:24 PM
Clipboard - September 19, 2019 3:24 PM
Thanks @klenik, I was more thinking about replacing the Start Command in `fabric-ccp-go-tls.yaml` to `Docker Stack Deploy` using the same docker-compose files (with some changes). I am doing this as I was not able to get the raft sample working with orderers in separate hosts.
```
[36m2019-09-18 19:38:41.652 UTC [grpc] createTransport -> DEBU 2d1[0m grpc: addrConn.createTransport failed to connect to {orderer2.example.com:7050 0
Yeah, with distributed testing maybe the hardest part is wiring the network correctly. Unfortunately, there are some many scenarios or deployment platforms, that we can't cover them with how-to tutorials (yet).
(You might not be able to ping the orderer ports due to the TLS settings, the connection will be refused.)
We'll try to write a general tutorial about distributed deployment benchmarking, but right now we're working on more lightweight tutorial, that focus more on Caliper than the deployment of DLTs :)
Yes, I totally understand. Would there be any easy way to disable TLS in the Raft sample Farbic1.4.1?
I think TLS is mandatory for Raft: https://hyperledger-fabric.readthedocs.io/en/release-1.4/raft_configuration.html#configuration
I finally got the raft sample working in two VMs using Docker Swarm. I will soon write a post about it.
Cool! If you'd submit it as a pull request into the caliper docs, we'd be grateful :P
And we'd help with the technical stuff, of course
I’m actually looking forward to it as well 🤓. Do post the link in this thread
Has joined the channel.
How to point to peer where already chaincode is installed and instantiated in caliper
use that peer in the network configuration file, and use the flag `caliper-flow-only-test` when executing CLI command
@SagarHundekar installed/instantiated chaincodes should be detected automatically by caliper. If that's not the case, then it is a bug :)
Hello everyone, I recently run some benchmark tests with Caliper and I noticed that the first peer node (e.g. peer0.org1) always consumes more CPU resources than the other nodes. Is there a reason why this happens?
@RiccardoBonesi What is your exact network topology? And how is Fabric deployed?
I have a 3 org 2 peers couchdb network
I used the composer example to deploy the network with fabric 1.3
Only a single peer consumes more resources, or every "first" peer of every org?
Only a single peer. Maybe because it makes all the initialization (prepare the nodes, establish connection pipeline, etc) and this resource consumption is added to the actual test consumption
Hey all, Has anyone ever faced an issue to have their containers (peer, Orderer) restart in the middle of the benchmark? This is happening to me and while the containers restarting the TXs fail and also when they are back still they fail as the CA cannot enroll them
[ ](https://chat.hyperledger.org/channel/caliper?msg=PicRxtKL9HdHZGrLf) Is it deployed on a single machine? Which example are you running?
[ ](https://chat.hyperledger.org/channel/caliper?msg=uYPXEHafivTqwr4AJ) Docker should have some logs about the reasons it shut down containers
Yes it is deployed locally on my pc and I am running my code
Even with composer, the peers should consume the same amount of resource if they get the same load. How many orgs and peers do you have? And where do you deploy your BNA?
Hey All,
I'm running some high throughput benchmarks with very high CPU/Memory Machines but some of my TXs fail mainly die to TIMEOUT (100s). I'm trying to figure out what is the bottleneck here as I have plenty of resources dedicated to the benchmark and they are certainly not being fully utilized. Here is the Output of my Docker Stats:
```
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
527cfd16820d dev-peer0.org2.example.com-simple-v0 17.05% 8.078MiB / 2GiB 0.39% 237MB / 126MB 0B / 0B 20
0bec1b78f728 caliper-overlay_orderer1_example_com.1.i366vagf2zm02x4g4ttahzz9l 21.21% 266.7MiB / 29.45GiB 0.88% 661MB / 1.62GB 0B / 1.01GB 28
77976e699198 caliper-overlay_ca_org2_example_com.1.yt36edpt2315ryu934vo7aqvk 0.00% 5.48MiB / 29.45GiB 0.02% 1.56kB / 0B 0B / 348kB 15
83d415ca0a95 caliper-overlay_peer0_org2_example_com.1.g24ebla2viorsdmqn29505ih3 120.44% 274.1MiB / 29.45GiB 0.91% 821MB / 463MB 0B / 987MB 31
```
Hey All,
I'm running some high throughput benchmarks with very high CPU/Memory Machines but some of my TXs fail mainly die to TIMEOUT (100s). I'm trying to figure out what is the bottleneck here as I have plenty of resources dedicated to the benchmark and they are certainly not being fully utilized. Here is the Output of my Docker Stats:
```
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
527cfd16820d dev-peer0.org2 17.05% 8.078MiB / 2GiB 0.39% 237MB / 126MB 0B / 0B 20
0bec1b78f728 Orderer1 21.21% 266.7MiB / 29.45GiB 0.88% 661MB / 1.62GB 0B / 1.01GB 28
77976e699198 ca_org2 0.00% 5.48MiB / 29.45GiB 0.02% 1.56kB / 0B 0B / 348kB 15
83d415ca0a95 peer0_org2_example_com 120.44% 274.1MiB / 29.45GiB 0.91% 821MB / 463MB 0B / 987MB 31
```
Hey All,
I'm running some high throughput benchmarks with very high CPU/Memory Machines but some of my TXs fail mainly die to TIMEOUT (100s). I'm trying to figure out what is the bottleneck here as I have plenty of resources dedicated to the benchmark and they are certainly not being fully utilized. Here is the Output of my Docker Stats:
```
NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O
dev-peer0.org2 17.05% 8.078MiB / 2GiB 0.39% 237MB / 126MB 0B / 0B
Orderer1 21.21% 266.7MiB / 29.45GiB 0.88% 661MB / 1.62GB 0B / 1.01GB
ca_org2 0.00% 5.48MiB / 29.45GiB 0.02% 1.56kB / 0B 0B / 348kB
peer0_org2 120.44% 274.1MiB / 29.45GiB 0.91% 821MB / 463MB 0B / 987MB
```
Hey All,
I'm running some high throughput benchmarks with very high CPU/Memory Machines but some of my TXs fail mainly die to TIMEOUT (100s). I'm trying to figure out what is the bottleneck here as I have plenty of resources dedicated to the benchmark and they are certainly not being fully utilized. Here is the Output of my Docker Stats:
```
NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O
dev-peer0.org2 17.05% 8.078MiB / 2GiB 0.39% 237MB / 126MB 0B / 0B
Orderer1 21.21% 266.7MiB / 29.45GiB 0.88% 661MB / 1.62GB 0B / 1.01GB
ca_org2 0.00% 5.48MiB / 29.45GiB 0.02% 1.56kB / 0B 0B / 348kB
peer0_org2 120.44% 274.1MiB / 29.45GiB 0.91% 821MB / 463MB 0B / 987MB
```
And this is the Benchmark I'm trying to run:
Hey All,
I'm running some high throughput benchmarks with very high CPU/Memory Machines but some of my TXs fail mainly die to TIMEOUT (100s). I'm trying to figure out what is the bottleneck here as I have plenty of resources dedicated to the benchmark and they are certainly not being fully utilized. Here is the Output of my Docker Stats:
```
NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O
dev-peer0.org2 17.05% 8.078MiB / 2GiB 0.39% 237MB / 126MB 0B / 0B
Orderer1 21.21% 266.7MiB / 29.45GiB 0.88% 661MB / 1.62GB 0B / 1.01GB
ca_org2 0.00% 5.48MiB / 29.45GiB 0.02% 1.56kB / 0B 0B / 348kB
peer0_org2 120.44% 274.1MiB / 29.45GiB 0.91% 821MB / 463MB 0B / 987MB
```
And this is the Benchmark I'm trying to run:
```
```
Hey All,
I'm running some high throughput benchmarks with very high CPU/Memory Machines but some of my TXs fail mainly die to TIMEOUT (100s). I'm trying to figure out what is the bottleneck here as I have plenty of resources dedicated to the benchmark and they are certainly not being fully utilized. Here is the Output of my Docker Stats:
```
NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O
dev-peer0.org2 17.05% 8.078MiB / 2GiB 0.39% 237MB / 126MB 0B / 0B
Orderer1 21.21% 266.7MiB / 29.45GiB 0.88% 661MB / 1.62GB 0B / 1.01GB
ca_org2 0.00% 5.48MiB / 29.45GiB 0.02% 1.56kB / 0B 0B / 348kB
peer0_org2 120.44% 274.1MiB / 29.45GiB 0.91% 821MB / 463MB 0B / 987MB
```
And this is the Benchmark I'm trying to run:
```
Test Name Succ Fail Send Rate Max Latency Min Latency Avg Latency Throughput
1 open 99985 15 100.0 tps 2.38 s 0.14 s 0.44 s 97.1 tps
1 open 10000 0 100.1 tps 1.73 s 0.14 s 0.40 s 99.9 tps
1 open 1000 0 100.9 tps 0.63 s 0.15 s 0.37 s 99.4 tps
```
Benchmark
@nimaafraz Could you provide the exact error message please?
Sometimes this:
```
warn: [adapters/fabric-ccp]: Broadcast error from orderer2.example.com: TIMEOUT
error: [adapters/fabric-ccp]: Transaction[378eda7ef3] unexpected error: TypeError: Cannot read property 'status' of undefined
at Fabric._submitSingleTransaction (/home/nima/.local/lib/node_modules/caliper-cli/node_modules/caliper-fabric-ccp/lib/fabric.js:1968:35)
at
Sometimes this:
```
warn: [adapters/fabric-ccp]: Broadcast error from orderer2.example.com: TIMEOUT
error: [adapters/fabric-ccp]: Transaction[378eda7ef3] unexpected error: TypeError: Cannot read property 'status' of undefined
at Fabric._submitSingleTransaction (/home/nima/.local/lib/node_modules/caliper-cli/node_modules/caliper-fabric-ccp/lib/fabric.js:1968:35)
at
Sometimes this:
```
2019-10-07T10:16:25.461Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:9050
2019-10-07T10:16:25.461Z - error: [Orderer.js]: Orderer grpcs://localhost:9050 has an error Error: Failed to connect before the deadline URL:grpcs://localhost:9050
(node:37162) UnhandledPromiseRejectionWarning: Error: Failed to connect before the deadline URL:grpcs://localhost:9050
at checkState (/home/nima/.local/lib/node_modules/caliper-cli/node_modules/fabric-client/node_modules/grpc/src/client.js:835:16)
(node:37162) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 8)
```
This indicates that the orderer throws away some connection attempts. Check the orderer-side logs for this
This is what I get in the orderer side
```
[36m2019-10-07 10:08:37.462 UTC [policies] func1 -> DEBU dbd9[0m Evaluation Failed: Only 0 policies were satisfied, but needed 1 of [ OrdererMSP/Writers ]
```
Does this happen to random transactions, or that failed 15 TXs were supposed to follow each other? Can you share the entire orderer log (with pastebin, for example)?
Has joined the channel.
Has anyone run fabric v1.4.3 in Caliper. Just looking for confirmation someone has done it. I expect since 1.4.1 has been verified , 1.4.3 would work, but don't want to chase down that rabbit-hole if someone has experienced problems with it
It should work, just bind the 1.4.3 sdk. There weren't any breaking changes, naturally
Hi All, after modifying the configtx.yaml and running generate.sh i get "Couldn't create channel : Orderer response indicated unsuccessful Channel creation : BAD_REQUEST" error. I am trying to run benchmark against Fabric 1.4.1.
Hi All, after modifying the configtx.yaml and running generate.sh i get `Couldn't create channel : Orderer response indicated unsuccessful Channel creation : BAD_REQUEST` error. I am trying to run benchmark against Fabric 1.4.1.
@DivyaAgrawal Check the orderer logs why the request was rejected. Caliper currently signs the channel TX with every Org admin, but not with the orderer admin.
@klenik Thanks, found the issue. The default generate.tx download v1.0.0 which apparently has this but, that doesn't set mod_policy appropriately.. Changing it to v1.0.1 solved it.
@klenik Thanks, found the issue. The default generatesh download v1.0.0 which apparently has this issue that doesn't set mod_policy appropriately.. Changing it to v1.0.1 solved it.
@klenik Thanks, found the issue. The default generate.sh download v1.0.0 which apparently has this issue that doesn't set mod_policy appropriately.. Changing it to v1.0.1 solved it.
Hmm, yeah, those versions might be out-of-sync, hopefully it's correctly set for the newer network examples
I am using config_solo.
I realized this happens more when there are many TXs in the benchmark. It's quite random. Sometimes the benchmark runs with no problem sometimes gets errors.
```
info: [demo.js]: [Transaction Info] - Submitted: 15783 Succ: 15661 Fail:0 Unfinished:122
info: [demo.js]: [Transaction Info] - Submitted: 15883 Succ: 15714 Fail:0 Unfinished:169
2019-10-13T10:27:17.415Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:9050
2019-10-13T10:27:17.416Z - error: [Orderer.js]: Orderer grpcs://localhost:9050 has an error Error: Failed to connect before the deadline URL:grpcs://localhost:9050
(node:14034) UnhandledPromiseRejectionWarning: Error: Failed to connect before the deadline URL:grpcs://localhost:9050
at checkState (/home/nima/.local/lib/node_modules/caliper-cli/node_modules/fabric-client/node_modules/grpc/src/client.js:835:16)
(node:14034) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:14034) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
2019-10-13T10:27:17.485Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:7050
2019-10-13T10:27:17.486Z - error: [Orderer.js]: Orderer grpcs://localhost:7050 has an error Error: Failed to connect before the deadline URL:grpcs://localhost:7050
(node:14042) UnhandledPromiseRejectionWarning: Error: Failed to connect before the deadline URL:grpcs://localhost:7050
at checkState (/home/nima/.local/lib/node_modules/caliper-cli/node_modules/fabric-client/node_modules/grpc/src/client.js:835:16)
(node:14042) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:14042) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
2019-10-13T10:27:17.523Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:7050
2019-10-13T10:27:17.524Z - error: [Orderer.js]: Orderer grpcs://localhost:7050 has an error Error: Failed to connect before the deadline URL:grpcs://localhost:7050
2019-10-13T10:27:17.525Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:7050
2019-10-13T10:27:17.526Z - error: [Orderer.js]: Orderer grpcs://localhost:7050 has an error Error: Failed to connect before the deadline URL:grpcs://localhost:7050
```
And here is a part of the orderer0 log: https://www.scss.tcd.ie/~nafraz/caliperlogs/orderer0.log
lotty02cho - Tue Oct 15 2019 11:11:16 GMT+0900 (한국 표준시).txt
Hi all, when you guys try to `npx caliper run ~~`, Have you met this following kind of issue? and if you know, let me know how you can fix it? is it related ca container? because I changed name of ca containers.
here is my log
`error: [caliper-flow]: Error: Error: Invalid endorsement for marbles@v0.1 in mychannel from peer0.org1.example.com: chaincode registration failed: container exited with 254`
@lotty02cho What does the peer-side log say?
it said that
```
2019-10-15 06:23:51.167 UTC [endorser] callChaincode -> INFO 32a4d [][c2076f8f] Entry chaincode: name:"cscc"
2019-10-15 06:23:51.167 UTC [endorser] callChaincode -> INFO 32a4e [][c2076f8f] Exit chaincode: name:"cscc" (0ms)
2019-10-15 06:23:51.167 UTC [comm.grpc.server] 1 -> INFO 32a4f unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.27.42.55:37808 grpc.code=OK grpc.call_duration=420.118µs
2019-10-15 06:23:51.262 UTC [endorser] callChaincode -> INFO 32a50 [][12acb820] Entry chaincode: name:"lscc"
2019-10-15 06:23:51.263 UTC [endorser] callChaincode -> INFO 32a51 [][12acb820] Exit chaincode: name:"lscc" (1ms)
2019-10-15 06:23:51.263 UTC [comm.grpc.server] 1 -> INFO 32a52 unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.27.42.55:37808 grpc.code=OK grpc.call_duration=1.567534ms
2019-10-15 06:23:51.335 UTC [endorser] callChaincode -> INFO 32a53 [][89974c0e] Entry chaincode: name:"lscc"
2019-10-15 06:23:51.337 UTC [endorser] callChaincode -> INFO 32a54 [][89974c0e] Exit chaincode: name:"lscc" (3ms)
2019-10-15 06:23:51.338 UTC [comm.grpc.server] 1 -> INFO 32a55 unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.27.42.55:37808 grpc.code=OK grpc.call_duration=3.27111ms
2019-10-15 06:23:51.401 UTC [endorser] callChaincode -> INFO 32a56 [mychannel][158bc531] Entry chaincode: name:"lscc"
2019-10-15 06:23:51.405 UTC [endorser] callChaincode -> INFO 32a57 [mychannel][158bc531] Exit chaincode: name:"lscc" (4ms)
2019-10-15 06:23:51.405 UTC [comm.grpc.server] 1 -> INFO 32a58 unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.27.42.55:37808 grpc.code=OK grpc.call_duration=4.673667ms
2019-10-15 06:23:51.414 UTC [endorser] callChaincode -> INFO 32a59 [mychannel][1d78cf7b] Entry chaincode: name:"lscc"
2019-10-15 06:23:52.550 UTC [endorser] callChaincode -> INFO 32a5a [mychannel][1d78cf7b] Exit chaincode: name:"lscc" (1136ms)
2019-10-15 06:23:52.550 UTC [endorser] SimulateProposal -> ERRO 32a5b [mychannel][1d78cf7b] failed to invoke chaincode name:"lscc" , error: container exited with 254
github.com/hyperledger/fabric/core/chaincode.(*RuntimeLauncher).Launch.func1
/opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/runtime_launcher.go:63
runtime.goexit
/opt/go/src/runtime/asm_amd64.s:1333
chaincode registration failed
2019-10-15 06:23:52.550 UTC [comm.grpc.server] 1 -> INFO 32a5c unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.27.42.55:37808 grpc.code=OK grpc.call_duration=1.136516865s
```
it said like below.
```
2019-10-15 06:23:51.167 UTC [endorser] callChaincode -> INFO 32a4d [][c2076f8f] Entry chaincode: name:"cscc"
2019-10-15 06:23:51.167 UTC [endorser] callChaincode -> INFO 32a4e [][c2076f8f] Exit chaincode: name:"cscc" (0ms)
2019-10-15 06:23:51.167 UTC [comm.grpc.server] 1 -> INFO 32a4f unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.27.42.55:37808 grpc.code=OK grpc.call_duration=420.118µs
2019-10-15 06:23:51.262 UTC [endorser] callChaincode -> INFO 32a50 [][12acb820] Entry chaincode: name:"lscc"
2019-10-15 06:23:51.263 UTC [endorser] callChaincode -> INFO 32a51 [][12acb820] Exit chaincode: name:"lscc" (1ms)
2019-10-15 06:23:51.263 UTC [comm.grpc.server] 1 -> INFO 32a52 unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.27.42.55:37808 grpc.code=OK grpc.call_duration=1.567534ms
2019-10-15 06:23:51.335 UTC [endorser] callChaincode -> INFO 32a53 [][89974c0e] Entry chaincode: name:"lscc"
2019-10-15 06:23:51.337 UTC [endorser] callChaincode -> INFO 32a54 [][89974c0e] Exit chaincode: name:"lscc" (3ms)
2019-10-15 06:23:51.338 UTC [comm.grpc.server] 1 -> INFO 32a55 unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.27.42.55:37808 grpc.code=OK grpc.call_duration=3.27111ms
2019-10-15 06:23:51.401 UTC [endorser] callChaincode -> INFO 32a56 [mychannel][158bc531] Entry chaincode: name:"lscc"
2019-10-15 06:23:51.405 UTC [endorser] callChaincode -> INFO 32a57 [mychannel][158bc531] Exit chaincode: name:"lscc" (4ms)
2019-10-15 06:23:51.405 UTC [comm.grpc.server] 1 -> INFO 32a58 unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.27.42.55:37808 grpc.code=OK grpc.call_duration=4.673667ms
2019-10-15 06:23:51.414 UTC [endorser] callChaincode -> INFO 32a59 [mychannel][1d78cf7b] Entry chaincode: name:"lscc"
2019-10-15 06:23:52.550 UTC [endorser] callChaincode -> INFO 32a5a [mychannel][1d78cf7b] Exit chaincode: name:"lscc" (1136ms)
2019-10-15 06:23:52.550 UTC [endorser] SimulateProposal -> ERRO 32a5b [mychannel][1d78cf7b] failed to invoke chaincode name:"lscc" , error: container exited with 254
github.com/hyperledger/fabric/core/chaincode.(*RuntimeLauncher).Launch.func1
/opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/runtime_launcher.go:63
runtime.goexit
/opt/go/src/runtime/asm_amd64.s:1333
chaincode registration failed
2019-10-15 06:23:52.550 UTC [comm.grpc.server] 1 -> INFO 32a5c unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.27.42.55:37808 grpc.code=OK grpc.call_duration=1.136516865s
```
Hmm, is there any previously built CC Docker images on the peer? That could interfere. Try removing them with `docker rmi $(docker images dev-* -q)`
I try to remove images using `docker rmi $(docker images dev-* -q)`. but it has still same error :(
Is this error related to fabric version 1.4.3? because when I saw document of caliper, caliper is based on 1.4.1.
but I'm very confused, when I start to run caliper local ip, error doesn't show. but when I use cloud ip address, it will show out.
Hmm, maybe it's a chaincode registration issue. Try to set the "autodetect address" setting of the peer to true.
Do you know where I can set or refer to document about autodetect address?
The fabric repo has a sampleconfig/core.yaml file, that's the default peer config
you mean this? https://github.com/hyperledger/fabric/blob/59d4adce36d2ed1a8c22b1ea0de9f77879a9f53e/sampleconfig/core.yaml#L42
Yes
I made my network based on `hyperledger/fabric-samples/first-network`, but I can't figure out where is autodetect address valuable. and one more thing I wanna ask. if I want to change this valuable, do I have to stop the network?
If you have a peer settings like `topproperty.subproperty.leafproperty`, then you can set it with an environment variable `CORE_TOPPROPERTY_SUBPROPERTY_LEAFPROPERTY`. And yes, I think you have to restart your peer to pick up the new setting (no need to stop the entire network)
If you have a peer settings like `topproperty.subproperty.leafproperty`, then you can set it with an environment variable `CORE_TOPPROPERTY_SUBPROPERTY_LEAFPROPERTY`. And yes, I think you have to restart your peer to pick up the new setting (no need to stop the entire network)
I haven't set `CORE_TOPPROPERTY_SUBPROPERTY_LEAFPROPERTY`. where can I change it?
I haven't set CORE_TOPPROPERTY_SUBPROPERTY_LEAFPROPERTY. where can I change it?
I haven't set `CORE_TOPPROPERTY_SUBPROPERTY_LEAFPROPERTY`. where can I change it?
That's just an example name, to illustrate how you can set properties through environment variables :)
So in your case, you need to set the CORE_PEER_ADDRESSAUTODETECT env variable to true
ah, I understand. So, I have a docker-compose.yaml file to set environment variable like below
```
peer0.org2.honeybee.com:
container_name: peer0.org2.honeybee.com
extends:
file: peer-base.yaml
service: peer-base
environment:
- CORE_PEER_ID=peer0.org2.honeybee.com
- CORE_PEER_ADDRESS=peer0.org2.honeybee.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.honeybee.com:7051
- CORE_PEER_LOCALMSPID=org2MSP
# Prometheus
- CORE_OPERATIONS_TLS_ENABLED=false
- CORE_OPERATIONS_LISTENADDRESS=:9443
- CORE_METRICS_PROVIDER=prometheus
volumes:
- /var/run/:/host/var/run/
- ../../artifacts/crypto-config/peerOrganizations/org2.honeybee.com/peers/peer0.org2.honeybee.com/msp:/etc/hyperledger/fabric/msp
- ../../artifacts/crypto-config/peerOrganizations/org2.honeybee.com/peers/peer0.org2.honeybee.com/tls:/etc/hyperledger/fabric/tls
- peer0.org2.honeybee.com:/var/hyperledger/production
ports:
- 7051:7051
- 9443:9443
```
so If I want it to add autodetect address, can I just add environment here and restart peer container?
Yes, that should work. Try it with one peer first, then you could add the setting to the base yaml, then restart the other peers one by one
Okay. I entered peer container. and export `CORE_PEER_ADDRESSAUTODETECT=true`
I guess it doesn't work....:cry:
You should find a more detailed error somewhere. My guess is that the chaincode container prints some error, but the container is destroyed after the error. So unless you have a log collector service, try to manually monitor the chaincode container during that brief time it exists
I am getting core dump while running caliper in local mode.
npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmark/simple/config.yaml --caliper-networkconfig network/fabric-v1.4/3org2peergoleveldb/fabric-go-tls.yaml
Benchmark for target Blockchain type fabric about to start
Segmentation fault (core dumped)
In docker mode
docker run -v .:/hyperledger/caliper/workspace -e CALIPER_BIND_SUT=fabric -e CALIPER_BIND_SDK=1.4.0 -e CALIPER_BENCHCONFIG=benchmarks/scenario/simple/config.yaml -e CALIPER_NETWORKCONFIG=networks/fabric/fabric-v1.4/2org1peergoleveldb/fabric-go.yaml --name caliper hyperledger/caliper:0.1.0
docker: Error response from daemon: create .: volume name is too short, names should be at least two alphanumeric characters.
See 'docker run --help'.
in npm global installation
caliper benchmark run --caliper-workspace . --caliper-benchconfig ./benchmark/simple/config.yaml --caliper-networkconfig network/fabric-v1.4/2org1peergoleveldb/fabric-go-tls.yaml
Benchmark for target Blockchain type fabric about to start
Segmentation fault (core dumped)
Has joined the channel.
Questions about Caliper - Corda:
1) Team have installed the dependencies of caliper-core https://www.npmjs.com/package/caliper-core but they are not quite sure if this is the latest version or the right dependency
2) Team wants to know if they are on right directions on this one:
"We currently are trying to do the installSmartContract method but we are having doubts if i will continue working method on this since corda has its own contract coded contract)"
And actualy when they search on the caliper-core there are two results
They did use the caliper-core (without the @hyperledger... is that correct ?
@AgniCampos
1) No, the hyperledger one is the official. If you install the cli package, it'll install every other caliper package. Moreover, you might want to develop your adapter based on the master branch of the repo, that's the up2date
2) I'm not sure if I understand the contract part.
3) let's continue this discussion in the #calipercaliper-contributors channel, it's easier to track the development stuff there
@AgniCampos
1) No, the hyperledger one is the official. If you install the cli package, it'll install every other caliper package. Moreover, you might want to develop your adapter based on the master branch of the repo, that's the up2date
2) I'm not sure if I understand the contract part.
3) let's continue this discussion in the #caliper-contributors channel, it's easier to track the development stuff there
Has joined the channel.
Hello, I'm trying to kick the tires with the ethereum support with HL Besu. However I'm having difficulty getting it started.
* Is the ethereum module published to NPM or Docker yet?
* Does caliper build on macOS? I keep getting a bunch of gyp error relating to keccak native code compilation.
@shemnon The Ethereum adapter will be included into the next release (coming in a few days). Caliper isn't tested on macOS or windows, but the Docker container should circumvent these kind of problems
Turns out the problem on mac is that grpc has an unreliable build on mac and the lerna invocation in this build script always causes the faiure. If grpc is built with the build from source flag it works fine:
```
npm i && npm run repoclean -- --yes && npm install --build-from-source grpc@1.10.1 && npm run bootstrap
```
@shemnon Yeah, grpc has different issues on different nodejs versions. The binding process takes these into account, and uses the needed compiler and flag overrides. But this doesn't apply to the bootstrap, so thanks for the workaround :) What is your environment (node version, npm, etc)? We should add your fix to the docs
node 10.6.3 npm 6.9.0 Mac OS 10.14.6 xcode 11.1
@nkl199 IIRC you also use mac. Encountered anything similar?
hi, not hit any issues recently, but i'm no doubt using different versions to the above
I am getting core dump while running caliper in local mode.
@rkrish82 Can you start the SUT docker network without any errors? (Execute the start script in network/fabric-v1.4/2org1peergoleveldb/fabric-go-tls.yaml from the workspace directory)
Caliper Experiments
Experiment 2
My expected outcome would be a linear increment in latency as the send rate increases but that does not seem to be the case here. Should I reconsider my assumption?
@nimaafraz Is that a Fabric benchmark?
Yes
1.4.1, Raft, 5org, 1peer each, 5 Orderers
My guess is that since the send rate is low, you trigger a different block cut mechanism of the ordering service. Instead of cutting a block after N TXs, the time-based cutting is triggered, a bit later
But take a look at the Fabric metrics to figure out what causes this. Caliper just reports what it measures. Unfortunately, it can't do root-cause analysis. Yet :)
Ok, Thanks. Just wanted to share and see if others also find this strange.
Things are only strange until you find a reasonable explanation for them :)
Got it running with besu - https://github.com/hyperledger/caliper/pull/616
I needed to add support for raw transactions since Besu is not a wallet, just an ethereum node.
Has joined the channel.
Hi
Is there official performance test on Hyperledger fabric v2.0 and v1.4.4 versions?
thanks - we'll look at the PR asap
What do you mean by official? There are some papers about Fabric performance characteristics, plus you can find evaluations here: https://hyperledger.github.io/caliper-benchmarks/
(not 1.4.4 or 2.0)
Hoping for something like
Perf test : #1
- Fabric 1.4.4 using Caliper x.x
- 4 peers 2 orgs etc...
- fabtoken (invoke method)
- batchsize 2mb, 500txs
- max 3000TPS
etc... :D
@shemnon Left some comments on the PR
Well, the caliper-benchmarks repo contains things like this. And you're welcome to perform your own experiments and submit the report and artifacts :grin:
Seems there is only 1.4.0 version test benchmark.
Max TPS about 300~750?
I am conducting my own tests and have not been able to crack 2000TPS barrier yet.
Tps is just a number, and depends on a great number of thighs. With enough money/resources, you can probably crack it. That's why standard benchmarks define a $/TPS metric. But if your smart contract is poorly designed, then no amount of resources will help you
@shemnon what are the rules for the nonce? I know it should be unique, but must it be strictly incremental (1,2,3,etc)?
[ ](https://chat.hyperledger.org/channel/caliper?msg=HbuiZQX6tmYIplp1D) @klenik
strictly incremental. It should really be called sequence number but the name nonce was well socialized before the decision it was a sequence number was set.
Ah, then we need to associate a client with dedicated accounts
I was thinking of using the private key seed to make hd wallet addresses. Does each client get a client ID that is visibible ti the execution?
I was thinking of using the private key seed to make hd wallet addresses. Does each client get a client ID that is visibible to the execution?
They definitely will in the next release
I understand that. So far I have been testing with the simple chaincode (generic-chaincode used in Canadian Waterloo Whitepaper)
And limiting the peers to AWS c5.4xlarge instances. (orderer ca etc... similar)
However i just couldnt find reliable research reports containing specs and performance metrics
Look through the hyperledger blog entries, there are some real-life use cases. One of them mentions that the (Fabric) network served the required daily XY million transactions, and if you do some calculations, that was like ~550 TPS. They don't mention the specs though. What I'm trying to say is that maybe there aren't many absolute performance measurements, because it's not the most important aspect of the system.
But Fabric gives some logs and metrics for every TX life cycle phase, so you can dig into what's limiting your TPS
Has joined the channel.
Does anyone see this error log in peer container? T_T
`docker logs peer0.org1.example.com -f`
`UTC [endorser] SimulateProposal -> ERRO 44f [mychannel][7825d43e] failed to invoke chaincode name:"lscc" , error: container exited with 254`
[Annual Caliper Newsletter]
Dear All,
The maintainers are happy to announce that Caliper v0.2.0 is published to npm and Docker Hub!
New exciting features:
- New platform supports: Hyperledger Besu, Ethereum, FISCO-BCOS
- Prometheus integration for monitoring and reporting
Additional details: https://hyperledger.github.io/caliper/
Wonderful , :thumbsup:
Has joined the channel.
Ok. Tnx @klenik
Ok. Tnx @klenik ~550tps pretty low. I am just trying to replicate 3.5k that Hyperledger supposedly is able :)
Well, they used a custom validator system chaincode (which runs in-process) for the UTXO fabcoin implementation. I don't know whether they open-sourced it or not.
@klenik @nkl199 @FlyingTiger I am getting following running fabric benchmark using npm local install
~/caliper-benchmarks$ npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.0/2org1peergoleveldb/fabric-go-tls.yaml
Benchmark for target Blockchain type fabric about to start
Error: Invalid "mychannel" channel configuration: child "chaincodes" fails because ["chaincodes" at position 0 fails because ["metadatapath" is not allowed]]
at Function.validateNetwork (/home/ram/caliper-benchmarks/node_modules/@hyperledger/caliper-fabric/lib/configValidator.js:130:27)
at new Fabric (/home/ram/caliper-benchmarks/node_modules/@hyperledger/caliper-fabric/lib/fabric.js:184:25)
at Function.handler (/home/ram/caliper-benchmarks/node_modules/@hyperledger/caliper-cli/lib/benchmark/lib/runBenchmark.js:61:33)
at Object.module.exports.handler (/home/ram/caliper-benchmarks/node_modules/@hyperledger/caliper-cli/lib/benchmark/runBenchmarkCommand.js:52:43)
at Object.runCommand (/home/ram/caliper-benchmarks/node_modules/yargs/lib/command.js:228:22)
at Object.parseArgs [as _parseArgs] (/home/ram/caliper-benchmarks/node_modules/yargs/yargs.js:1013:30)
at Object.runCommand (/home/ram/caliper-benchmarks/node_modules/yargs/lib/command.js:194:45)
at Object.parseArgs [as _parseArgs] (/home/ram/caliper-benchmarks/node_modules/yargs/yargs.js:1013:30)
at Object.get [as argv] (/home/ram/caliper-benchmarks/node_modules/yargs/yargs.js:957:21)
at Object.
@rkrish82 That's an error in the configuration file. It's supposed to be `metadataPath`, with capital P.
@klenik I took configuration file one in the repo - https://github.com/hyperledger/caliper-benchmarks
@klenik After fixing metadatapath issue, i am getting other error now - 2019.10.30-00:12:00.308 error [caliper] [adapters/fabric] The following errors occured while instantiating marbles@v0 in mychannel:
- Commit timeout for marbles@v0 in mychannel from peer0.org1.example.com
- Commit timeout for marbles@v0 in mychannel from peer0.org2.example.com
2019.10.30-00:12:00.316 error [caliper] [caliper-flow] Error: Error: Commit timeout for marbles@v0 in mychannel from peer0.org2.example.com
at Timeout.setTimeout [as _onTimeout] (/home/ram/caliper-benchmarks/node_modules/@hyperledger/caliper-fabric/lib/fabric.js:1376:41)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
how/where to specify the commit timeout value?
Through the runtime config mechanism (see the docs and the default config file)
Has left the channel.
@klenik @FlyingTiger can you please give example to set the commit timeout value.
Available configurations: https://github.com/hyperledger/caliper/blob/master/packages/caliper-core/lib/config/default.yaml
Overriding them from the [command line](https://hyperledger.github.io/caliper/vLatest/runtime-config/#command-line-arguments): --caliper-fabric-timeout-chaincodeinstantiateevent=300000
You mean something below right?
npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.0/2org1peergoleveldb/fabric-go-tls.yaml --caliper-fabric-timeout-chaincodeinstantiateevent=600000
2019-10-30 13:51:39.547 UTC [ConnProducer] NewConnection -> ERRO 066 Failed connecting to orderer.example.com:7050 , error: context deadline exceeded
2019-10-30 13:51:39.547 UTC [deliveryClient] connect -> ERRO 067 Failed obtaining connection: Could not connect to any of the endpoints: [orderer.example.com:7050]
2019-10-30 13:51:39.547 UTC [deliveryClient] try -> WARN 068 Got error: Could not connect to any of the endpoints: [orderer.example.com:7050] , at 6 attempt. Retrying in 32s
2019-10-30 13:52:14.548 UTC [ConnProducer] NewConnection -> ERRO 069 Failed connecting to orderer.example.com:7050 , error: context deadline exceeded
2019-10-30 13:52:14.548 UTC [deliveryClient] connect -> ERRO 06a Failed obtaining connection: Could not connect to any of the endpoints: [orderer.example.com:7050]
2019-10-30 13:52:14.548 UTC [deliveryClient] try -> WARN 06b Got error: Could not connect to any of the endpoints: [orderer.example.com:7050] , at 7 attempt. Retrying in 1m4s
2019-10-30 13:53:21.549 UTC [ConnProducer] NewConnection -> ERRO 06c Failed connecting to orderer.example.com:7050 , error: context deadline exceeded
2019-10-30 13:53:21.550 UTC [deliveryClient] connect -> ERRO 06d Failed obtaining connection: Could not connect to any of the endpoints: [orderer.example.com:7050]
Looks like peer is not able to communicate with orderer that why I may getting this timeout error
2019-10-30 13:51:39.547 UTC [ConnProducer] NewConnection -> ERRO 066 Failed connecting to orderer.example.com:7050 , error: context deadline
Yep, that's a Fabric side issue. Did the orderer start successfully?
Hi, I run the command caliper benchmark run --caliper-benchconfig benchmarks/samples/fabric/marbles/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml --caliper-workspace
Hi, I run the sample command below on the tutorial of https://hyperledger.github.io/caliper/vLatest/composer-config/
`caliper benchmark run --caliper-workspace ./packages/caliper-samples --caliper-benchconfig benchmark/composer/config.yaml --caliper-networkconfig network/fabric-v1.1/2org1peercouchdb/composer.json`
But, it output error like below.
Hi, I run the sample command below on the tutorial of https://hyperledger.github.io/caliper/vLatest/composer-config/
`caliper benchmark run --caliper-workspace ./packages/caliper-samples --caliper-benchconfig benchmark/composer/config.yaml --caliper-networkconfig network/fabric-v1.1/2org1peercouchdb/composer.json`
But, it output error like below.
info: [composer.js]: Initializing target platform configuration
✔ Creating channels mychannel
✔ Attempting to join peer peer0.org1.example.com to channel mychannel (attempt 1/5)
✔ Attempting to join peer peer0.org2.example.com to channel mychannel (attempt 1/5)
info: [composer.js]: Deploying Composer
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org2
✔ Performing Composer runtime install for network vehicle-lifecycle-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network vehicle-lifecycle-network with card PerfPeerAdmin@Org2
✖ Starting business network basic-sample-network. This involves building chaincode containers and may take several minutes to complete...
error: [composer.js]: composer.installSmartContract() failed, message=Error trying to start business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode), stack=Error: Error trying to start business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
at HLFConnection.start (/Users/ken/.nvm/versions/node/v8.9.4/lib/node_modules/caliper-cli/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:758:30)
at
Hi, I run the sample command below on the tutorial of https://hyperledger.github.io/caliper/vLatest/composer-config/
`caliper benchmark run --caliper-workspace ./packages/caliper-samples --caliper-benchconfig benchmark/composer/config.yaml --caliper-networkconfig network/fabric-v1.1/2org1peercouchdb/composer.json`
But, it output error like below.
Could anyone tell me how to fix it?
Thank you!
info: [composer.js]: Initializing target platform configuration
✔ Creating channels mychannel
✔ Attempting to join peer peer0.org1.example.com to channel mychannel (attempt 1/5)
✔ Attempting to join peer peer0.org2.example.com to channel mychannel (attempt 1/5)
info: [composer.js]: Deploying Composer
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org2
✔ Performing Composer runtime install for network vehicle-lifecycle-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network vehicle-lifecycle-network with card PerfPeerAdmin@Org2
✖ Starting business network basic-sample-network. This involves building chaincode containers and may take several minutes to complete...
error: [composer.js]: composer.installSmartContract() failed, message=Error trying to start business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode), stack=Error: Error trying to start business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
at HLFConnection.start (/Users/ken/.nvm/versions/node/v8.9.4/lib/node_modules/caliper-cli/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:758:30)
at
Hi, I run the sample command below on the tutorial of https://hyperledger.github.io/caliper/vLatest/composer-config/
`caliper benchmark run --caliper-workspace ./packages/caliper-samples --caliper-benchconfig benchmark/composer/config.yaml --caliper-networkconfig network/fabric-v1.1/2org1peercouchdb/composer.json`
But, it output error like below.
Could anyone tell me how to fix it?
Thank you!
`info: [composer.js]: Initializing target platform configuration
✔ Creating channels mychannel
✔ Attempting to join peer peer0.org1.example.com to channel mychannel (attempt 1/5)
✔ Attempting to join peer peer0.org2.example.com to channel mychannel (attempt 1/5)
info: [composer.js]: Deploying Composer
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org2
✔ Performing Composer runtime install for network vehicle-lifecycle-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network vehicle-lifecycle-network with card PerfPeerAdmin@Org2
✖ Starting business network basic-sample-network. This involves building chaincode containers and may take several minutes to complete...
error: [composer.js]: composer.installSmartContract() failed, message=Error trying to start business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode), stack=Error: Error trying to start business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
at HLFConnection.start (/Users/ken/.nvm/versions/node/v8.9.4/lib/node_modules/caliper-cli/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:758:30)
at
Hi, I run the sample command below on the tutorial of https://hyperledger.github.io/caliper/vLatest/composer-config/
`caliper benchmark run --caliper-workspace ./packages/caliper-samples --caliper-benchconfig benchmark/composer/config.yaml --caliper-networkconfig network/fabric-v1.1/2org1peercouchdb/composer.json`
But, it output error like below.
Could anyone tell me how to fix it?
Thank you!
`caliper $ caliper benchmark run --caliper-workspace ./packages/caliper-samples --caliper-benchconfig benchmark/composer/config.yaml --caliper-networkconfig network/fabric-v1.1/2org1peercouchdb/composer.json
Benchmark for target Blockchain type composer about to start
info: [caliper-flow]: ####### Caliper Test #######
info: [caliper-utils]: Executing command: cd /Users/ken/Documents/caliper/packages/caliper-samples;docker-compose -f network/fabric-v1.1/2org1peercouchdb/docker-compose.yaml up -d;sleep 3s
Creating network "2org1peercouchdb_default" with the default driver
Creating ca.org1.example.com ... done
Creating orderer.example.com ... done
Creating couchdb.org1.example.com ... done
Creating couchdb.org2.example.com ... done
Creating ca.org2.example.com ... done
Creating peer0.org1.example.com ... done
Creating peer0.org2.example.com ... done
info: [composer.js]: Initializing target platform configuration
✔ Creating channels mychannel
✔ Attempting to join peer peer0.org1.example.com to channel mychannel (attempt 1/5)
✔ Attempting to join peer peer0.org2.example.com to channel mychannel (attempt 1/5)
info: [composer.js]: Deploying Composer
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org2
✔ Performing Composer runtime install for network vehicle-lifecycle-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network vehicle-lifecycle-network with card PerfPeerAdmin@Org2
✖ Starting business network basic-sample-network. This involves building chaincode containers and may take several minutes to complete...
error: [composer.js]: composer.installSmartContract() failed, message=Error trying to start business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode), stack=Error: Error trying to start business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
at HLFConnection.start (/Users/ken/.nvm/versions/node/v8.9.4/lib/node_modules/caliper-cli/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:758:30)
at
Hi, I run the sample command below on the tutorial of https://hyperledger.github.io/caliper/vLatest/composer-config/
`caliper benchmark run --caliper-workspace ./packages/caliper-samples --caliper-benchconfig benchmark/composer/config.yaml --caliper-networkconfig network/fabric-v1.1/2org1peercouchdb/composer.json`
But, it output error like below.
Could anyone tell me how to fix it?
Thank you!
info: [composer.js]: Initializing target platform configuration
✔ Creating channels mychannel
✔ Attempting to join peer peer0.org1.example.com to channel mychannel (attempt 1/5)
✔ Attempting to join peer peer0.org2.example.com to channel mychannel (attempt 1/5)
info: [composer.js]: Deploying Composer
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network basic-sample-network with card PerfPeerAdmin@Org2
✔ Performing Composer runtime install for network vehicle-lifecycle-network with card PerfPeerAdmin@Org1
✔ Performing Composer runtime install for network vehicle-lifecycle-network with card PerfPeerAdmin@Org2
✖ Starting business network basic-sample-network. This involves building chaincode containers and may take several minutes to complete...
error: [composer.js]: composer.installSmartContract() failed, message=Error trying to start business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: is not a valid endorsement system chaincode)
Has joined the channel.
Hello everyone, i am stuck in 100 tps in "open" so how can i make it reachs to 200 tps or more ? thank you for helping
@DiAnh - there are quite a few answers to that depending on more elaboration to your question:
- what exactly are you testing (is this a sample or something you wrote)?
- which adaptor are you using?
- how many test clients are you using, and how are they driving the test?
- are you testing on a single machine, or do you have a distributed setup? If distributed, what is the relation to the clients and "server" aspects of the system (ie are they geographically distributed)?
- what is the spec of the test machine(s)?
- ...
Has joined the channel.
Hello all, caliper is a really nice tool to easily test Fabric networks :) I'm writing a masters thesis that uses Fabric. I'm just wondering if there is a way to generate the report in a way that is more programmable. I want to make some graphs using e.g. Python so that I can get an overview how Fabric performs as you add more entities. Or do I have to scrape the results from the html-report?
Thanks!
@dachrillz Glad that you like Caliper :) The reporting (content and structure) is kind of rigid right now. The maintainers are currently working to fix this issue (which requires a considerable refactoring of the core code-base). But not all is lost, since even now you can get details about every TX, and do your own aggregation and/or exporting. Check out this section of the Fabric adapter docs: https://hyperledger.github.io/caliper/vLatest/fabric-config/#gathered-tx-data
Nice! Thanks :D
I'm back with another issue :) I also want to evaluate how fabric performs under a varying amount of orderer. Everything worked fine for 1 and 2 orderer, but now that I added 4 orderers caliper produces:
[caliper] [caliper-flow] Error: Error: Couldn't create Channel 'mychannel': Orderer response indicated unsuccessful Channel 'mychannel' creation: SERVICE_UNAVAILABLE
Looking inside the orderer logs the following warnings are produced:
I'm back with another issue :) I also want to evaluate how fabric performs under a varying amount of orderer. Everything worked fine for 1 and 2 orderer, but now that I added 4 orderers caliper produces:
[caliper] [caliper-flow] Error: Error: Couldn't create Channel 'mychannel': Orderer response indicated unsuccessful Channel 'mychannel' creation: SERVICE_UNAVAILABLE
Looking inside the orderer logs the following warnings are produced:
2019-11-10 18:43:09.850 UTC [orderer.consensus.etcdraft] detectSelfID -> WARN 29e Could not find -----BEGIN CERTIFICATE-----
MIICXDCCAgKgAwIBAgIQRIyyDbzBdwImVFKo+MRI5zAKBggqhkjOPQQDAjBsMQsw
2019-11-10 18:43:19.837 UTC [common.deliver] deliverBlocks -> WARN 349 [channel: syschannel] Rejecting deliver request for 192.168.112.8:50892 because of consenter error
2019-11-10 18:43:19.838 UTC [orderer.common.cluster.replication] fetchLastBlockSeq -> WARN 34c Received status:SERVICE_UNAVAILABLE from orderer0.example.com:7050: service unavailable
2019-11-10 18:43:19.838 UTC [orderer.common.cluster.replication] func1 -> WARN 34d Received error of type 'service unavailable' from orderer0.example.com:7050
I do believe that I have proof-read the configuration files, so I think they are correct. Of course I could have messed something up somewhere, but the configuration is identical to when I ran with two orderers, except that I added the last two orderers.
Any thoughts what this could be? E.g. is it because the orderers don't have enough time to setup, or because I'm running it on a single machine?
Many thanks
[ ](https://chat.hyperledger.org/channel/caliper?msg=XdLD5J6WbvxRmSGuS)
dachrillz - Sun Nov 10 2019 20:12:41 GMT+0100 (Central European Standard Time).txt
Unavailable service can indicate that the orderers are not ready yet, which can be caused by the single machine setup (Fabric is a heavier distributed system). But you should look into the warnings as well (trying channel creation through the peer cli and consulting the #fabric channel)
ok! Thanks yet again for the help :) I'll see if the people at #fabric-questions can help me debug it further
I accidentally added two Consenter tags in my configtx.yaml
No wonder it didn't work :P
How could the configtxgen tool parse it then? :O
EtcdRaft:
Consenters:
- Host: orderer0.example.com
Port: 7050
ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt
ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt
- Host: orderer1.example.com
Port: 7050
ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt
ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt
Consenters:
- Host: orderer2.example.com
Port: 7050
ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt
ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt
- Host: orderer3.example.com
Port: 7050
ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt
ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt
I guess it just overrides the first one
because the two last orderers worked fine
Hmm, strange behavior, I thought YAML parsers enforce unique keys. Oh well
I'm just happy that I found it haha, but yeah it would probably be nice with some check that at least lets you know that you are overriding the same key in the same file.
Anyways, thank for your help
:thumbsup:
Has joined the channel.
Hello, I'm here with some network configuration file problems. I've got an existing Fabric blockchain based on byfn tutorial and I want to test its performance but I can't match network configuration file to it. Is there any proper example of this file in such case?
this might help: https://developer.ibm.com/tutorials/blockchain-performance-testing-smart-contracts-vscode-caliper/
Also, the Fabric adapter docs page details everything you could possibly need for a network configuration, including an example at the end: https://hyperledger.github.io/caliper/vLatest/fabric-config/#connection-profile-example
Has joined the channel.
hello
how to setup caliper on kubernetes , is there any docs
thanks
@Preetam007 I don't know about such doc, but since Caliper has a Docker image, it shouldn't be hard. A good starting point is the install docs: https://hyperledger.github.io/caliper/vLatest/installing-caliper/#using-the-docker-image
The docker-compose example shows how you can configure Caliper through env variables. That is very similar what you'd use in a swarm deployment (there is a tutorial about it somewhere I think), and the swarm concepts are kind of similar to k8s concepts (with a bit of a stretch) :)
What I'm saying, is that you shouldn't need anything special to run Caliper in k8s, just make sure that Caliper can see the SUT network endpoints
hello
docker pull hyperledger/caliper giving error: manifest for hyperledger/caliper not found
we pulled the image and created the pod successfully.Can you provide some documentation so that we can test the benchmark
You have to specify the version explicitly, since we don't publish a "latest" image. So try hyperledger/caliper:0.2.0
we created kubernetes pod with caliper image successfully.But when we run the exec of the pod there is no option to run caliper.package.json does not contain any usefull script.
@Preetam007 Please read the above install doc carefully (from the beginning), it details the Caliper CLI, how to use it, and what is the default command in the image
ok thanks
Has joined the channel.
Thanks, this materials was helpful but after I wrote my configuration I got an error:
error: [adapters/fabric]: The following errors occurred while querying mychannel information from Org1's peers:
- Couldn't query mychannel information from peer0.org1.example.com: 2 UNKNOWN: Stream removed
error: [caliper-flow]: Error: Error: Couldn't query mychannel information from Org1's peers
at Fabric._joinChannels (/home/a/caliper-benchmarks/node_modules/@hyperledger/caliper-fabric/lib/fabric.js:1479:27)
Is there any reason why I could get this error?
Has joined the channel.
halo caliper team, i'm newbie here and new to blockchain technology. I have question regarding setting up caliper for ethereum. where should i save the json file that stated in wiki "ethereum configuration"? is there might be a tutorial? or anyone could help me. thank you :D
Has joined the channel.
@ulalaa14 also new here :D i am trying to do the same as you, I found an example configuration for ethereum here https://github.com/hyperledger/caliper/tree/master/packages/caliper-samples/network/ethereum/1node-clique
Hey people, first of all congratulations, this tool is amazing. I come here because i'm trying to run a simple benchmark on ethereum. I've found the sample configuration files in the repo, so im trying to run the "simple" benchmarking. I also got the ethereum config files and changed the json configuration file to write my blockchain parameters.
I managed to get the tool running and it seems to connect to my blockchain, it is even creating contracts but when printing the results I have the following error:
`error [caliper] [caliper-flow] Error: Error: Table must define at least one row.
at exports.default (/../node_modules/table/dist/validateTableData.js:25:11)
at Object.exports.default [as table] (/Users/leopardo/Documents/truffle/node_modules/table/dist/table.js:116:35)
at Report.printTable (/../node_modules/@hyperledger/caliper-core/lib/report/report.js:133:23)
at Report.printResultsByRound (/../node_modules/@hyperledger/caliper-core/lib/report/report.js:255:14)
at Object.module.exports.run (/../node_modules/@hyperledger/caliper-core/lib/caliper-flow.js:119:20)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Function.handler (/../node_modules/@hyperledger/caliper-cli/lib/benchmark/lib/runBenchmark.js:64:30)`
Is there any common mistake while configuring that leads to this error? I feel like i may be missing something.
Hey people, first of all congratulations, this tool is amazing. I come here because i'm trying to run a simple benchmark on ethereum. I've found the sample configuration files in the repo, so im trying to run the "simple" benchmarking. I also got the ethereum config files and changed the json configuration file to write my blockchain parameters.
I managed to get the tool running and it seems to connect to my blockchain, it is even creating contracts but when printing the results I have the following error:
`error [caliper] [caliper-flow] Error: Error: *Table must define at least one row.*
at exports.default (/../node_modules/table/dist/validateTableData.js:25:11)
at Object.exports.default [as table] (/Users/leopardo/Documents/truffle/node_modules/table/dist/table.js:116:35)
at Report.printTable (/../node_modules/@hyperledger/caliper-core/lib/report/report.js:133:23)
at Report.printResultsByRound (/../node_modules/@hyperledger/caliper-core/lib/report/report.js:255:14)
at Object.module.exports.run (/../node_modules/@hyperledger/caliper-core/lib/caliper-flow.js:119:20)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Function.handler (/../node_modules/@hyperledger/caliper-cli/lib/benchmark/lib/runBenchmark.js:64:30)`
Is there any common mistake while configuring that leads to this error? I feel like i may be missing something.
@ulalaa14 @leopardo The short answer is: wherever you want :) Although the following approach is recommended (to have a "pretty" project):
1) Create a directory which will contain all your Caliper/benchmarking artifacts (e.g., `~/myProjectDir` ).
2) Save the benchmark and network (e.g., Ethereum) configuration file in that directory (`~/myProjectDir/benchconfig.yaml` and `~/myProjectDir/networkconfig.json`).
3) When you start the Caliper CLI (which is either installed locally or globally), you have to specify 3 crucial information, either via command line parameters, or environment variables (or additional configuration files, see the runtime config docs).
3-a) The workspace directory path. Through command line: `--caliper-workspace
@ulalaa14 @leopardo The short answer is: wherever you want :) Although the following approach is recommended (to have a "pretty" project):
1) Create a directory which will contain all your Caliper/benchmarking artifacts (e.g., `~/myProjectDir` ).
2) Save the benchmark and network (e.g., Ethereum) configuration file in that directory (`~/myProjectDir/benchconfig.yaml` and `~/myProjectDir/networkconfig.json`).
3) When you start the Caliper CLI (which is either installed locally or globally), you have to specify 3 crucial information, either via command line parameters, or environment variables (or additional configuration files, see the runtime config docs).
3-a) The workspace directory path. Through command line: `--caliper-workspace
Which config files did you use to start the benchmark? This error occurs when you want to generate a report, but you don't have the data for it (e.g., because monitoring is enabled, but it couldn't gather any metrics).
Thanks for your fast answer! So i'm using the simple benchmark file (https://github.com/hyperledger/caliper/blob/master/packages/caliper-samples/benchmark/simple/config.yaml) which i didnt change and the ethereum JSON (https://github.com/hyperledger/caliper/blob/master/packages/caliper-samples/network/ethereum/1node/ethereum.json) in which i added my blockchain config. I have the feeling i have to change also the docker-compose.yaml from that folder but i dont understand completely how it works.
Thanks for your fast answer! So i'm using the simple benchmark file (https://github.com/hyperledger/caliper/blob/master/packages/caliper-samples/benchmark/simple/config.yaml) which i didnt change and the ethereum JSON (https://github.com/hyperledger/caliper/blob/master/packages/caliper-samples/network/ethereum/1node/ethereum.json) in which i added my blockchain config. I have the feeling i have to change also the docker-compose.yaml from that folder but i dont understand completely how the command i can find there works.
Thanks for your fast answer! So i'm using the simple benchmark file (https://github.com/hyperledger/caliper/blob/master/packages/caliper-samples/benchmark/simple/config.yaml) which i didnt change and the ethereum JSON (https://github.com/hyperledger/caliper/blob/master/packages/caliper-samples/network/ethereum/1node/ethereum.json) in which i added my blockchain config. I have the feeling i have to change also the docker-compose.yaml from that folder but i dont understand completely how the command i can find there works with caliper.
Hello again, I've still got an error while testing my blockchain:
error: [adapters/fabric]: The following errors occurred while querying mychannel information from Org1's peers:
- Couldn't query mychannel information from peer0.org1.example.com: 2 UNKNOWN: Stream removed
error: [caliper-flow]: Error: Error: Couldn't query mychannel information from Org1's peers
at Fabric._joinChannels (/home/a/caliper-benchmarks/node_modules/@hyperledger/caliper-fabric/lib/fabric.js:1479:27)
What should I do to fix it?
@airela The peer closed the connection. Which could mean either it didn't start successfully, or it's not ready yet, or it's overloaded. Do you run the test on a single-machine network?
That's right, it's on single machine
Has joined the channel.
Basically if anyone has setup example for benchmarks on multi channels that would help.
Hello, I have two channels in my fabric network and 4 orgs with one peer each except org3 which has 2 peers. I join org1, org2, and org3(peer 1) to channel one and org3 (peer2) & org4 to channel two. I get an error when running the benchmark test. How do I bind channels in benchmark tests?
Basically if anyone has setup an example for benchmarks on multi-channels that would help.
Has joined the channel.
Then it's possible that the machine can't handle the number of nodes running on it. Start the `watch top` command in a separate terminal before starting the benchmark, it'll show you whether you exhaust your resources or not.
The Fabric CI test uses two channels, so this can be a good start: https://github.com/hyperledger/caliper/tree/master/packages/caliper-tests-integration/fabric_tests/phase4
What's the error you get?
I get this error
2019.11.19-17:53:36.626 error [caliper] [adapters/fabric] Couldn't initialize mychannel for Org4: 2 UNKNOWN: access denied: channel [mychannel] creator org [Org4MSP]
2019.11.19-17:53:36.626 info [caliper] [local-client.js] Client[88692] encountered an error: Error: 2 UNKNOWN: access denied: channel [mychannel] creator org [Org4MSP]
at Object.exports.createStatusError (/Users/karumba/Development/Workspace/go/src/fabric/caliper-benchmarks/node_modules/grpc/src/common.js:87:15)
at Object.onReceiveStatus (/Users/karumba/Development/Workspace/go/src/fabric/caliper-benchmarks/node_modules/grpc/src/client_interceptors.js:1188:28)
a
That looks like a Fabric-side permission issue. Check your configtx.yaml, or use Caliper's channel definition (see the docs) to create the channel
I have double checked a number of times. This because I don't have org4 in mychannel but the benchmark test try to run transactions on it. If I add it to the channel then it works without an error. However in my use case I want channels to only have a subset of the peers.
the documentation says hint on channel binding but doesn't give more info on it
Screen Shot 2019-11-19 at 6.20.54 pm.png
That label is just a visual aid for reporting and naming results. Check the fabric adapter docs: https://hyperledger.github.io/caliper/vLatest/fabric-config/#network-configuration-file-reference
Is there a way to target benchmark tests on a single channel within benchconfig.yaml?
Benchconfig is independent from your network. It just defines the rounds and related workload attributes (tx rate, user test module). Your network config has to contain the channel information, plus your user module must decide which channel to use to invoke the tx.
The latter is achieved by giving every chaincode in the network config a unique contractID. That will automatically identify the channel of the chaincode, so in your user module you just reference the contractID
Oh ok, was using the same contractID in both channel. Let me change that and try it again. Thank you.
Note that id != contractID, the docs explains the difference. It shouldn't be possible to use a contactID twice. If you managed, then that's a bug in the validator :grin:
No I had ids only. My mistake :slight_frown:
So watching all the progress on the Caliper GUI and the fact that y'all are also supporting other DLTs. Does anyone want to do a blogpost on either or both of these for the hyperledger.org site?
@klenik Any idea if im missing something to tweak? I keep getting this error. Thanks in advance!
happy to have a look at this - do you want to PM to discuss the required layout/content?
howdy! We need someone to own the Caliper mailing list. Who would like to be the moderator and be in charge of the caliper calendar? send me your email please!
Has the time of the Caliper meeting changed? The older calendar shows it as 3pm GMT but the new calider shows it at 9am GMT (middle of the night Americas) Which is correct? https://wiki.hyperledger.org/display/HYP/Calendar+of+Public+Meetings
@shemnon This is the correct source: https://github.com/hyperledger/caliper/wiki/Caliper-Calls (3PM UTC+0).
So the old calendar is correct. I'll fix it if I can, thanks for letting us know :thumbsup:
Probably just need to set the time zone.
No, it had the correct timezone, there used to be 9am utc meetings.
@shemnon I've updated the Caliper calendar: https://lists.hyperledger.org/g/caliper/calendar
A day-before reminder is also sent to the mailing list every week, we'll see soon whether it works or not :D
Has joined the channel.
Has joined the channel.
hi all can someone help me setting up the caliper for fabric ??
hi @klenik i am following below repostry https://github.com/hyperledger/caliper/ want to setup caliper for hyperledger fabric
hi @klenik i am following below repostry https://github.com/hyperledger/caliper/ want to setup caliper for hyperledger fabric. please help thanks
@RahulEth I'd suggest starting with the "Getting started" page of the docs: https://hyperledger.github.io/caliper/vLatest/getting-started/
It provides link for the different components of Caliper, including the Fabric adapter configuration page
Has joined the channel.
hii have anyone tried samsung nextledger with caliper for fabric network 1.4?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi Guys, can anyone give guidance on how to setup a calipher test on a multi machine setup?
@KoushKilla Just to clarify, do you want Caliper to use multiple machines for load generation, or is your blockchain network distributed across multiple machines?
My blockchain network is distirbuted across multiple machines
@klenik
Short answer: from the point of view of Caliper, that's irrelevant. If you give Caliper the correct endpoint address of the blockchain nodes (in the network configuration file), then Caliper will send requests to those endpoints. It's up to you to make sure that the different machines/services can reach each other.
Longer answer: see this post about such a scenario. But really, the only difference is that you set
kk thanks for the prompt response will do.
Hi @klenik I remember there used to be a tutorial on how to setup caliper with first network,I seem to not be able to find it
I don't have it either, but this tutorial covers step-by-step what you need to do regarding the Caliper setup:
https://developer.ibm.com/tutorials/blockchain-performance-testing-smart-contracts-vscode-caliper/
I rather not use vscode, is this tutorial universal for all platforms?
like the commands?
Yes, the Caliper commands are universal, and the configuration is the same, except for the wallet part. But see the Fabric adapter docs for details
Is Anyone else getting `MVCC_READ_CONFLICT` error with the `Transfer` transaction in the `Simple` benchmark? I do not get the error for tps=10 but for tps=20 and higher I get this error. I assume this happens in higher tps because at some point the value of the same key is being changed consecutively before the previous one being committed to the ledger.
@nimaafraz Yes, and that's expected at higher rates. Increasing the number of created assets might lower the error rate, but you probably can't circumvent it by design. This is the trade-off for the scalable execute-first consensus design.
@klenik , Hi
Is there a way the raft consensus based benchmark testing example, can be made online again?
https://github.com/hyperledger/caliper/tree/master/packages/caliper-application/network/fabric-v1.4.1/raft
@KoushKilla The `caliper-application` directory is long gone, the samples were moved to the `caliper-samples` directory a long time ago. But it's also been removed, now every example is in the caliper-benchmark repository: https://github.com/hyperledger/caliper-benchmarks/tree/master/networks/fabric
@klenik thanks for the prompt response.
Has joined the channel.
Hi Guys. I'm a Hyper-ledger noob. I was trying to run the benchmark on caliper_benchmarks. I was trying to run the benchmark : https://github.com/hyperledger/caliper-benchmarks/tree/master/networks/fabric/fabric-v1.4.0/2org1peergoleveldb_kafka (Kafka ordering, with 2 orgs) . I'm getting SERVICE_UNAVAILABLE error for the created channel. (Here's the error: https://github.com/hyperledger/caliper-benchmarks/issues/37 ). I'm using the Marble chaincode. I'm not sure whether this is a bug or something I'm not doing correctly.
Ok, so it's not just me. That's a relief :) is there anything I could do with changing the BatchSize, Timeout etc.?!
Hello everyone -
Do you know of a developer event that we would like to get some Hyperledger representation at?
Please submit it here. The marketing committee will review them all as we go thru our budget for 2020
Thank you! - Silona
https://wiki.hyperledger.org/display/Marketing/Developer+Events
Well, the core problem is that a TX reads a key at version X, and during its life-cycle that key is updated to version Y by an other TX. Whether you can circumvent this problem depends mainly on your business use case.
1. If you have financial-like logic, like the above transfer, then the more accounts you have in the ledger, the smaller the probability that two TXs would like to modify the same account/key in a short time window (which would cause a dependency between them, and probably MVCC conflict). This is the main motivation behind the execute-order-validate consensus style (and optimistic concurrency control in general). It scalable, and most of the time conflict free.
2. If your TX batch timeout (or other) setting is large(ish), then the life-cycle of a TX will be longer (longer time between reads during endorsement and reads during validation). Thus increasing the probability of MVCC conflicts. You can shorten the batch times, but that has a limit of course.
3. Sometimes you can circumvent conflicts by design, ensuring that they can never occur. A fine example for that is the high throughput chaincode example: https://github.com/hyperledger/fabric-samples/tree/v1.4.4/high-throughput
N.B.: The above points are based on my experience with Fabric, I don't have the measurements (yet) to support those hypotheses. So you should definitely do your own use case-specific experiments regarding the above points.
We ran our first couple of tests using caliper (specifically used the marbles example). Has anyone posted results from their tests? We got 45-50 tps and are assuming this isn't reaching potential since we're still getting familiar with Fabric
You can increase the throughput by using a distributed setup.
More peers or more orderers? Please elaborate on what you mean by a distributed setup
Has joined the channel.
Has joined the channel.
Hi Any reason why HF 1.4.2 is not supported?
Hi all this may be a stupid question :) but inorder to test the marbles or fabcar chaincode does the Blockchain network need to have it marbles chaincode installed or does caliper simulate the installation and instantiation ?
Both are viable approaches. Define the chaincodes in the network configuration, then Caliper can do the followings. It'll check whether that chaincode
Hi @klenik,
I have a question in the channels section of the config.yaml file, specially in the created section.If the Blockchain network is already running and is operational before running the benchmark test, then I would make the value true for the created key right?
```yaml
channels:
mychannel:
configBinary: networks/fabric/config_solo_raft/mychannel.tx
-> created: true
orderers:
- orderer.example.com
peers:
peer0.org1.example.com:
eventSource: true
peer0.org2.example.com:
eventSource: true
```
Has joined the channel.
sscorda.png
hello guys can you help me in my error above?
will need a little more information to assist - what was the network size, what test was running and how long was it running for?
hello i am creating a new adapter for corda
Has joined the channel.
Hi, I am using Caliper to benchmark my chaincode using Hyperledger Fabric 1.4.4. The chaincode is developed using the 'new' Node SDK Contract class. I do have 2 contract classes in my chain code and I am struggling on how to map those contracts to the 'chaincode' abstraction used by Caliper. Here is the VSCode extension view of my chain code:
one chaincode with 2 contracts
How should I set up the network config and the benchmark config files to be able to invoke the functions of either contract within a benchmark - including using both contracts in a single benchmark ?
use the fully qualified name of the function e.g. 'contractName:functionName'
Has joined the channel.
Hi! Does anyone knows what is the proper way to bind caliper with fabric? Have been following the commands according to the documentation but failed. I'm using MacOS
what command are you using? (I'm on a mac and have no issues)
hallo hyperledger caliper team, i would like to ask about the benchmarking report from caliper. how u can determine value from summary table? because there might be rounds for each functions test. is it by averaging or else? thank you
Last chance! The Linux Foundation worked with Hyperledger Fabric Developer subject matter expert volunteers to identify the core domains and competencies for the Certified Hyperledger Fabric Developer (CHFD) exam, scheduled to launch in March 2020. Are you interested in participating in the Beta and receiving an early peek? The CHFD Beta is FREE for the first 100 who take the exam. Complete the CHFD Beta Sign-up Form by January 15, 2020 for your chance. If you pass you will be CHFD Certified!
Has joined the channel.
Hello everyone!
I'm experiencing some problems while using Caliper on my fabric network. I'm able to execute transactions on the network, so the configuration and certificates are valid and well configured, but when running tests I encounter this error:
*Handshake failed with fatal error SSL_ERROR_SSL: error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate.*
* Couldn't query mychannel information from blockchain-org1peer1: Failed to connect before the deadline*
I've tried various configurations with the certificates, but being able to send transactions through my app I'm not sure is it Caliper or some bad configuration.
If someone has a guideline, please advice me. Thanks!
Has joined the channel.
Hey guys, 1
I am trying to install Hyperledger Caliper CLI from npm local.
However, can't bind the sut, fabric SDK with caliper. It shows the following -
`2020.01.12-19:29:43.747 info [caliper] [bind] Calling npm with: install grpc@1.14.2 fabric-ca-client@1.4.4 fabric-client@1.4.4 fabric-protos@2.0.0-snapshot.1 fabric-network@1.4.4
npm WARN deprecated hoek@4.2.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
> pkcs11js@1.0.19 install /home/necos/caliper/caliper-benchmarks/node_modules/pkcs11js
> node-gyp rebuild
gyp WARN EACCES current user ("necos") does not have permission to access the dev dir "/root/.cache/node-gyp/8.10.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/home/necos/caliper/caliper-benchmarks/node_modules/pkcs11js/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/home/necos/caliper/caliper-benchmarks/node_modules/pkcs11js/.node-gyp'
gyp ERR! System Linux 4.15.0-74-generic
gyp ERR! command "/usr/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/necos/caliper/caliper-benchmarks/node_modules/pkcs11js
gyp ERR! node -v v8.10.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
npm WARN notsup Unsupported engine for fabric-protos@2.0.0-snapshot.1: wanted: {"node":"^8.9.0","npm":"^5.5.1"} (current: {"node":"8.10.0","npm":"6.13.6"})
npm WARN notsup Not compatible with your version of node/npm: fabric-protos@2.0.0-snapshot.1
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! pkcs11js@1.0.19 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the pkcs11js@1.0.19 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-01-12T22_30_01_834Z-debug.log
2020.01.12-19:30:01.898 error [caliper] [bind] Failed to execute "npm" with return code 1.
Error: Failed to execute "npm" with return code 1.
at ChildProcess.proc.on (/home/necos/caliper/caliper-benchmarks/node_modules/@hyperledger/caliper-cli/lib/utils/cmdutils.js:56:35)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
Command failed`
I tried node-gyp rebuild, but seems of no use. Anybody can clarify what's happening here?
Installation environment:
Ubuntu bionic on the server,
NodeJS v8.10
node-gyp v6.1.0
node-pre-gyp v0.14.0
Docker v19.03.1
Docker-compose v0.19.20
Has joined the channel.
did you install node as a root user?
yes
Help Us Help you! Attend the Developer Relationship Meeting with Myself and our Marketing Dept. tomorrow at 9:00am Pacific Time.
For the agenda and Dial in info
https://wiki.hyperledger.org/display/Marketing/2020-01-15+Meeting+notes
Calling all Projects! We will have a special Kiosk setup at Hyperledger Global Forum for Projects. We are asking that all projects sign up to do 10 minute presentations. https://wiki.hyperledger.org/display/HGF/Projects+Kiosk We will close this page on Feb 28 for printing reasons.
Calling all Projects, SIG, and WG!!! We will have a Video recording Studio setup at HGF (Hyperledger Global Forum). We are asking that all projects and groups help us create a 5 minute video about your group so that we can promote it afterward. Sign up Here!
https://wiki.hyperledger.org/display/HGF/Video+Recording+Schedule
hi all i am try to connect caliper with my own fabric network but did not any support please help @klenik
are you trying to connect to run a "standard" caliper test, or a test using a gateway?
I think we're a little weak on documentation for connecting to bespoke networks - i assume you have looked at the benchmark samples for the sample networks that are used?
@nk199 i want to configure cliper to test my own chaincode with my own network
do you want caliper to stand the network up as well, or is it already existing?
@nk199 my network already exist. please help if you any idea of setting it up
in which case you will need to gather all the crypto material required by the clients to interact with the network, and use the CLI flag `--caliper-flow-only-test`
yes i have all crypto metrial right now i am using below command ```npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml```
if the network is already up, you need the `--caliper-flow-only-test` flag too
thanks @nkl199 i will try
thanks @nkl199 i will try, reach you if found any issue again
Clipboard - January 16, 2020 12:22 PM
Does Caliper supported besu? I tried to bind caliper with besu but i am getting not supported error as you can see on the snapshot
Does Caliper support besu? I tried to bind caliper with besu but i am getting not supported error as you can see on the snapshot
Does Caliper support besu? I tried to bind caliper with besu but i am getting "not supported" error as you can see on the snapshot
Clipboard - January 16, 2020 12:24 PM
On the other hand, caliper documenation statesd that besu is also supported:
Clipboard - January 16, 2020 12:32 PM
Has joined the channel.
geeting below error whenever i am making omre than 100 tx simultaneously. i have network of 7rgs, 7 orderer
2019-12-23 09:52:01.856 UTC [orderer.consensus.etcdraft] logSendFailure -> ERRO 7657 Failed to send StepRequest to 6, because: send queue overflown channel=chpreferences node=2
hello all i am facing below error for fabric caliper
```2020-01-16T07:15:07.404Z - error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054], stack=Error: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]``` is it necessary to run the CA??
For Besu you need to bind to etherium. That's a good point tho, we should help users there with either binding to ethereum for you or providing a more helpful error
@nkl199 it didn't work for me even with Ethereum
Clipboard - January 17, 2020 10:38 AM
The same error
What version of caliper are you using? Ethereum was added in 0.2.0, along with besu and fisco-bcos, and composer was removed. Looks like you have 0.1.0
err. composer was removed post 0.2.0
@shemnon i am using version 0.2.0. I will re-install and try again
`
Followed the installation process with node, npm reinstalled without doing sudo.
But facing issues with grpc install, node-pre-gyp issues.
Anyone here int he chat group to give a little insight what I am doing wrong, the the root of the issue.
TIA
`
gyp ERR! cwd /home/necos/caliper-benchmarks/node_modules/fabric-network/node_modules/grpc
gyp ERR! node -v v13.0.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/home/necos/local/lib/node_modules/node/bin/node /home/necos/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --library=static_library --module=/home/necos/caliper-benchmarks/node_modules/fabric-network/node_modules/grpc/src/node/extension_binary/node-v79-linux-x64-glibc/grpc_node.node --module_name=grpc_node --module_path=/home/necos/caliper-benchmarks/node_modules/fabric-network/node_modules/grpc/src/node/extension_binary/node-v79-linux-x64-glibc --napi_version=5 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v79' (1)
node-pre-gyp ERR! stack at ChildProcess.
Hi Guys. I was trying to bind Caliper with besu on Windows machine. I run the following command and I receive the error:
Hi Guys. I was trying to bind Caliper with besu on Windows machine. I run the following command and I receive the error shown on the snapshot:
Clipboard - January 20, 2020 8:46 PM
Anyone whao can help solve this issue?
Anyone who can help solve this issue?
at a guess, it would be a node version issue perhaps - what you have locally to what you are trying to bind against?
@nkl199 i tried running different version of Node.js but didn't solvethe problem
@nkl199 i tried running different versions of Node.js but didn't solve the problem
@nkl199 i guess caliper is trying to call npm with the older version of web3 (version 1.2.0) but i guess web3.js 1.2.0 is no more available. The latest version of web3.js is 1.2.5
all previous versions of web3 will still be available from npm
Hello I am new to Caliper. I followed the docs in https://hyperledger.github.io/caliper/vLatest/installing-caliper/#the-caliper-cli. But when I run the following config npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml I get *Error: Error: Table must define at least one row.* error
In the error message I see also this: error [caliper] [monitor-docker] Error reading monitor statistics: TypeError: Cannot read property 'cpu_usage' of undefined
Update: downgrading the gRPC v to 1.1.1 and node to 8x seems to avoid the issues.
Still a bit unsure what caused the issue for the latest version of gRPC support within the node.
Has joined the channel.
In my effort to set up caliper, during the test-sample benchmark i get the Error: Error: Table must define at least one row. error, just as described above by Nabilel 1. I notice that this is an open issue on github since November. Is there any kind of information regarding this issue?
which benchmark(s) are you targeting?
I am running the following command (as it is is suggested in the official documentation):
npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
hmmm, running the npx command will essentially run the latest code that you have in your workspace. It could be that the more recent changes (which include changes to the configuration file structure) has made the two incompatible ... I'll check locally myslef, though you could also look into pulling down the npm based caliper module and installing that for use
Regarding to problem concerning ERROR: Table must define at least one row:
After thinking I realised that the config.yaml provided for the test (and also, almost every sample configuration file included) does not have a correct syntax. Thus, caliper cannot recognise it. The errors are multiple, for example:
txNumber is supposed to be an array, thus txNumber: 100 is wrong. You have to change it to:
txNumber:
- 100
Same things apply for rateControl.
Please consult the docs: https://hyperledger.github.io/caliper/vLatest/architecture/
Explaining what each field is supposed to be.
Yep, that will do it - if you are using the current code base locally and not the released version of caliper available on npm, you will need to consult the vNext docs, and not the vLatest as per your link above
Has joined the channel.
Can someone point me towards some Hyperledger Fabric benchmarks measuring transactions per second comparing the performance of the three different consensus/orderer types Solo, Raft and Kafka? Any links would be greatly appreciated, thanks in advance!
@yannikgold I haven't run into such a comparison yet. But since Raft is the obvious winner in that set regarding scalability, management, true decentralization, etc., the achievable TPS is probably not the most important factor when choosing between them. But if you find/do such a report, feel free to share it :)
Hi Everyone, We are hoping to hear from everyone as we assess the health of our open source community. Please take 2 minutes to respond here: https://www.surveymonkey.com/r/DCIWGsurvey
Thank you for the response!
The Linux Foundation’s CommunityBridge engineers are working on a tool to measure the health of critical open source projects and one of the key areas identified is QA Testing. They request that our communities provide honest and detailed information on testing tools and methodologies you use in your projects for us to come up with a detailed analysis, which they will share with all respondents and projects. https://www.surveymonkey.com/r/9H5G2GV. It’s only 5 questions long.
Has joined the channel.
Hello, can I please ask someone for help with setting Caliper for my Fabric blockchain network created by using Composer? I can't figure out a problem with Caliper. I doing my master thesis and I realy need help. Thank you
I am trying to follow instructions on https://hyperledger.github.io/caliper/vLatest/installing-caliper/. But I am getting errors even with samples.
Has joined the channel.
Hello, Can anyone help me to run caliper with ethereum. Is there any sample available
Clipboard - January 29, 2020 4:32 PM
I cloned a repository from https://github.com/hyperledger/caliper. Now I follow instructions on https://hyperledger.github.io/caliper/vLatest/composer-config/, but I dost see these folders.
because composer has been deprecated, we are no longer supporting it - it has been removed from the Caliper repository. The published npm release does contain the adaptor, but we will not be carrying it as debt going forwards
So what are you saying is, that it is no longer possible to make benchmarks with Caliper on blockchain (composer + fabric) network?
it is possible with caliper@0.1.0 from npm
Has joined the channel.
Has joined the channel.
Hi, has anyone tried to run Caliper with Iroha? I wonder if there is a network config example that I could use. Thanks
Has joined the channel.
https://github.com/hyperledger/caliper-benchmarks/tree/master/networks/iroha/simplenetwork
Good news all, thanks to @klenik, we are now publishing unstable releases of Caliper to npm .... so you can get a sneak preview of new features not yet in an official release :ok_hand: Please remember that the unstable releases *will* contain breaking changes, so consult the vNext docs when you hit issues ;-)
And the related documentation about the versions:
https://hyperledger.github.io/caliper/vNext/installing-caliper/
Has joined the channel.
Has joined the channel.
Howdy Contributors and Maintainers! Are you wondering about tapping into Developer marketing for your group or project? Do you have a blog post idea? An awesome announcement? Please attend our Contributor/marketing meeting! https://wiki.hyperledger.org/display/Marketing/2020-02-19+Meeting+notes
Hi Guys, I am trying to understand to understand why my TPS went up double when I added more orderers in my network. I am using raft consensus
Hi everyone,
has anyone go this error
```shell
error [caliper] [caliper-flow] Error: Error: Table must define at least one row.
```
while running benchmarks/scenario/simple/config.yaml
I was able to run this benchmark test around 2 or 3 weeks ago successfully but for some reason I am getting this error now
I pulled the code from this repo again today
https://github.com/hyperledger/caliper-benchmarks
I am able to run all other benchmarks fine such as smallbank and marbles
this is the config.yaml I edited to run, but the results do not make sense. All the test functions of open, query and transfer give me 1.0tps. Before I got around 16.0 tps with similar network config. Any help is much obliged.
```yaml
---
test:
name: simple
description: This is an example benchmark for caliper, to test the backend DLT's
performance with simple account opening & querying transactions
clients:
type: local
number: 1
rounds:
- label: open
description: Test description for the opening of an account through the deployed chaincode
txNumber:
- 100
rateControl:
type:
- fixed-rate
opts:
tps: 50
arguments:
money: 10000
callback: benchmarks/scenario/simple/open.js
- label: query
description: Test description for the query performance of the deployed chaincode
txNumber:
- 100
rateControl:
type:
- fixed-rate
opts:
tps: 100
callback: benchmarks/scenario/simple/query.js
- label: transfer
description: Test description for transfering money between accounts
txNumber:
- 100
rateControl:
type:
- fixed-rate
opts:
tps: 50
arguments:
money: 100
callback: benchmarks/scenario/simple/transfer.js
monitor:
type:
- docker
docker:
name:
- all
interval: 1
```
@Koushik and everyone struggling with the samples. Use the following commit version of the benchmark repo, which is from the time v0.2.0 was released: 68fd45900edfabbadc0f2c6215a08ee31e49a596
```
git clone https://github.com/hyperledger/caliper-benchmarks.git
cd caliper-benchmarks
git checkout 68fd45900edfabbadc0f2c6215a08ee31e49a596
```
We'll soon tag the repo explicitly with v0.2.0 (and also for later releases of course)
Hi everyone,
E0214 14:00:30.214656400 1 ssl_transport_security.cc:1229] Handshake failed with fatal error SSL_ERROR_SSL: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed.
I'm getting this error while running caliper benchmark:
`E0214 14:00:30.214656400 1 ssl_transport_security.cc:1229] Handshake failed with fatal error SSL_ERROR_SSL: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed.`
is there someone who can help me that issue please?
@Mozer18 that indicates a wrongly configured tls somewhere. Are you running an example benchmark from the repo, or your own? Please provide some more details about your setup
I'm running my own network. I created my network with two ICA(one for MSP and one for TLS).
I'm using fabric 1.4.3 currently.
@Mozer18 I haven't worked with ICAs yet, but there shouldn't be any magic on the client (Caliper) side if you pass the correct certs and keys for TLS. I suggest you try to make your network work first through the Fabric CLI (channel create, CC deploy, invoke, etc). Right now my guess is that the problem is with the Fabric side configuration, so maybe you can get more useful help in the #fabric or #fabric-ca channels. If you can get it working with the Fabric CLI, then you can easily configure Caliper based on that configuration (i.e., setting the correct crypto artifacts in the network configuration file)
Are you wondering about tapping into Developer marketing for your group or project? Do you have a blog post idea? An awesome announcement? Please attend TOMORROW! https://wiki.hyperledger.org/display/Marketing/2020-02-19+Meeting+notes
Has joined the channel.
does anybody know when Caliper will support Fabric 2.0 benchmarking? I am trying to use "--caliper-bind-sdk latest" but it fails on chaincode resolving step. I think it doesn't work with new chaincode lifecycle.
@RamanM There's definitely some experimental support, since the benchmark repo contains measurement results for Fabric 2. @nkl199 Any pointers to bind and run against Fabric 2?
If you use the latest unstable Caliper release, you could bind it yourself by providing a bindings file with the packages that you wish to bind to, but we can't support it fully as the node-sdk is still in beta, and every merge introduces breaking changes. I have local changes that enable testing on the current snapshot, which is itself an update on those already in the caliper code base... which supports snapshot level circa 250.
No worries about lifecycle, because you can still deploy using the 'old' lifecycle ... it does not impact the chaincode in operation.
--caliper-bind-sdk latest would give you 1.4.5 sdk at the moment
Has joined the channel.
Hi all..how to setup caliper for testing fabric network
https://hyperledger.github.io/caliper/vLatest/getting-started/
actually i tried to install caliper using docker images using this command:
docker run \
-v .:/hyperledger/caliper/workspace \
-e CALIPER_BIND_SUT=fabric \
-e CALIPER_BIND_SDK=1.4.0 \
-e CALIPER_BENCHCONFIG=benchmarks/scenario/simple/config.yaml \
-e CALIPER_NETWORKCONFIG=networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml \
--name caliper hyperledger/caliper:0.2.0
But after executing the above command i got this error:
docker: Error response from daemon: create .: volume name is too short, names should be at least two alphanumeric characters.
actually i tried to install caliper using docker images using this command:
docker run \
-v .:/hyperledger/caliper/workspace \
-e CALIPER_BIND_SUT=fabric \
-e CALIPER_BIND_SDK=1.4.0 \
-e CALIPER_BENCHCONFIG=benchmarks/scenario/simple/config.yaml \
-e CALIPER_NETWORKCONFIG=networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml \
--name caliper hyperledger/caliper:0.2.0
But after executing the above command i got this error:
docker: Error response from daemon: create .: volume name is too short, names should be at least two alphanumeric characters.
have you tried --volume instead of -v ?
no..
but i removed . before :/hyperledger
now it is like kind of installing
at last i got this error
Error: Benchmark configuration file "/hyperledger/caliper/workspace/benchmarks/scenario/simple/config.yaml" does not exist
In `-v .:/hyperledger/caliper/workspace` the `.:` syntax is wrong
either use the absolute path for the current directory, or use `$PWD` instead of `.`
ok
i got this error:
Error: Benchmark configuration file "/hyperledger/caliper/workspace/benchmarks/scenario/simple/config.yaml" does not exist
execute the command from the caliper-benchmarks directory
actually i didnt download the caliper-benchmark??
i thought the above command will do that !!!
so first need to sownload that benchmark right??
from where to download?
https://github.com/hyperledger/caliper-benchmarks
Hello All,
I am getting following error while running simple benchmark test
2020.02.26-01:23:01.998 info [caliper] [defaultTest] ####### Testing 'open' #######
2020.02.26-01:23:01.999 info [caliper] [caliper-flow] ---------- Finished Test ----------
2020.02.26-01:23:01.999 info [caliper] [report-builder] ### All test results ###
2020.02.26-01:23:02.000 error [caliper] [caliper-flow] Error: Error: Table must define at least one row.
at exports.default.rows (/home/intel/latest_caliper/caliper-benchmarks/node_modules/table/dist/validateTableData.js:25:11)
at Object.exports.default [as table] (/home/intel/latest_caliper/caliper-benchmarks/node_modules/table/dist/table.js:116:35)
at Report.printTable (/home/intel/latest_caliper/caliper-benchmarks/node_modules/@hyperledger/caliper-core/lib/report/report.js:133:23)
at Report.printResultsByRound (/home/intel/latest_caliper/caliper-benchmarks/node_modules/@hyperledger/caliper-core/lib/report/report.js:255:14)
at Object.module.exports.run (/home/intel/latest_caliper/caliper-benchmarks/node_modules/@hyperledger/caliper-core/lib/caliper-flow.js:119:20)
at
@klenik @nkl199 @FlyingTiger Please help to resolve this error
@rkrish82 Please give every detail about the benchmark: caliper version, benchmark repo version, command used to run the benchmark, etc. So we can reproduce it
@klenik benchmark repo version is master, caliper version is v0.2.0
command : npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config_long.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.0/2org2peergoleveldb/fabric-go-tls.yaml
I have created 2org2peergoleveldb/fabric-go-tls.yaml and docker-compose file with 2 orgs, 2peers and 1orderer with solo mode.
While starting the simple open test it is failing..
@rkrish82 Which Fabric SDK are you using/binding?
@rkrish82 Find the workaround here: https://github.com/hyperledger/caliper/issues/670#issuecomment-591841538
npm install --only=prod @hyperledger/caliper-cli
npx caliper bind --caliper-bind-sut fabric --caliper-bind-sdk 1.4.0
@rkrish82 The benchmark repo has been tagged at the correct places, so now you can checkout the correct/compatible version. See the above issue for details
Has joined the channel.
Has joined the channel.
Hi All,
First -- caliper is a really neat tool which is very useful. I've had a little play and I can get the 'simple' and 'smallbank' scenarios working for 'networks/fabric/fabric-v1.4.1/2org1peergoleveldb' from the caliper-benchmarks project. I've ran into a bit of an issue though when running 'networks/fabric/fabric-v1.4.1/2org1peergoleveldb_raft/fabric-go-tls.yaml' with both peers complaining the channel the chaincode is to be invoked does not exist:
2020-02-27 17:57:26.845 UTC [endorser] SimulateProposal -> ERRO 455 [mychannel][dd2ede41] failed to invoke chaincode name:"lscc" , error: API erro
r (404): network 2org1peergoleveldb_raft_default not found
Has anyone ran into this before and is there a workaround?
Also, what is the status of Caliper -- is it good for general use or is it in early stages? Same question for caliper-benchmarks.
I am using caliper v0.2.0 + the v0.2.0 tag in caliper-benchmarks.
The above is from a fresh checkout of v0.2.0 of caliper-benchmarks and then
npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/smallbank/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb_raft/fabric-go-tls.yaml
which results in
2020.02.27-18:28:21.233 info [caliper] [adapters/fabric] Fabric SDK version: 1.4.0; TLS: server
2020.02.27-18:28:21.980 info [caliper] [adapters/fabric] Org1's registrar enrolled successfully
2020.02.27-18:28:22.418 info [caliper] [adapters/fabric] Org2's registrar enrolled successfully
2020.02.27-18:28:22.442 info [caliper] [adapters/fabric] Org1's admin's materials are successfully loaded
2020.02.27-18:28:22.454 info [caliper] [adapters/fabric] Org2's admin's materials are successfully loaded
2020.02.27-18:28:22.463 info [caliper] [adapters/fabric] client0.org1.example.com's materials are successfully loaded
2020.02.27-18:28:22.473 info [caliper] [adapters/fabric] client0.org2.example.com's materials are successfully loaded
2020.02.27-18:28:22.474 info [caliper] [adapters/fabric] Channel 'mychannel' definiton being retrieved from file
2020.02.27-18:28:22.549 info [caliper] [adapters/fabric] Channel 'mychannel' successfully created
2020.02.27-18:28:22.549 info [caliper] [adapters/fabric] Sleeping 5s...
2020.02.27-18:28:28.140 info [caliper] [adapters/fabric] Org1's peers successfully joined mychannel: peer0.org1.example.com
2020.02.27-18:28:28.631 info [caliper] [adapters/fabric] Org2's peers successfully joined mychannel: peer0.org2.example.com
2020.02.27-18:28:28.632 info [caliper] [adapters/fabric] Sleeping 5s...
2020.02.27-18:28:33.636 info [caliper] [adapters/fabric] Installing chaincodes for mychannel...
2020.02.27-18:28:33.689 info [caliper] [adapters/fabric] marbles@v0 successfully installed on Org1's peers: peer0.org1.example.com
2020.02.27-18:28:33.708 info [caliper] [adapters/fabric] marbles@v0 successfully installed on Org2's peers: peer0.org2.example.com
2020.02.27-18:28:33.736 info [caliper] [adapters/fabric] drm@v0 successfully installed on Org1's peers: peer0.org1.example.com
2020.02.27-18:28:33.748 info [caliper] [adapters/fabric] drm@v0 successfully installed on Org2's peers: peer0.org2.example.com
2020.02.27-18:28:33.772 info [caliper] [adapters/fabric] simple@v0 successfully installed on Org1's peers: peer0.org1.example.com
2020.02.27-18:28:33.782 info [caliper] [adapters/fabric] simple@v0 successfully installed on Org2's peers: peer0.org2.example.com
2020.02.27-18:28:33.807 info [caliper] [adapters/fabric] smallbank@v0 successfully installed on Org1's peers: peer0.org1.example.com
2020.02.27-18:28:33.817 info [caliper] [adapters/fabric] smallbank@v0 successfully installed on Org2's peers: peer0.org2.example.com
2020.02.27-18:28:33.818 info [caliper] [adapters/fabric] Instantiating marbles@v0 in mychannel. This might take some time...
2020.02.27-18:29:17.168 error [caliper] [caliper-flow] Error: Error: Invalid endorsement for marbles@v0 in mychannel from peer0.org1.example.com:
error starting container: error starting container: API error (404): network 2org1peergoleveldb_raft_default not found
at proposalResponses.forEach (/home/gb/github/hyperledger/caliper-benchmarks/node_modules/@hyperledger/caliper-fabric/lib/fabric.js:1358:31)
at Array.forEach (
Hi,
Trying to run the following from caliper-benchmarks v0.2.0 tag:
npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/smallbank/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb_raft/fabric-go-tls.yaml
which results in
2020.02.27-18:28:21.233 info [caliper] [adapters/fabric] Fabric SDK version: 1.4.0; TLS: server
2020.02.27-18:28:21.980 info [caliper] [adapters/fabric] Org1's registrar enrolled successfully
2020.02.27-18:28:22.418 info [caliper] [adapters/fabric] Org2's registrar enrolled successfully
2020.02.27-18:28:22.442 info [caliper] [adapters/fabric] Org1's admin's materials are successfully loaded
2020.02.27-18:28:22.454 info [caliper] [adapters/fabric] Org2's admin's materials are successfully loaded
2020.02.27-18:28:22.463 info [caliper] [adapters/fabric] client0.org1.example.com's materials are successfully loaded
2020.02.27-18:28:22.473 info [caliper] [adapters/fabric] client0.org2.example.com's materials are successfully loaded
2020.02.27-18:28:22.474 info [caliper] [adapters/fabric] Channel 'mychannel' definiton being retrieved from file
2020.02.27-18:28:22.549 info [caliper] [adapters/fabric] Channel 'mychannel' successfully created
2020.02.27-18:28:22.549 info [caliper] [adapters/fabric] Sleeping 5s...
2020.02.27-18:28:28.140 info [caliper] [adapters/fabric] Org1's peers successfully joined mychannel: peer0.org1.example.com
2020.02.27-18:28:28.631 info [caliper] [adapters/fabric] Org2's peers successfully joined mychannel: peer0.org2.example.com
2020.02.27-18:28:28.632 info [caliper] [adapters/fabric] Sleeping 5s...
2020.02.27-18:28:33.636 info [caliper] [adapters/fabric] Installing chaincodes for mychannel...
2020.02.27-18:28:33.689 info [caliper] [adapters/fabric] marbles@v0 successfully installed on Org1's peers: peer0.org1.example.com
2020.02.27-18:28:33.708 info [caliper] [adapters/fabric] marbles@v0 successfully installed on Org2's peers: peer0.org2.example.com
2020.02.27-18:28:33.736 info [caliper] [adapters/fabric] drm@v0 successfully installed on Org1's peers: peer0.org1.example.com
2020.02.27-18:28:33.748 info [caliper] [adapters/fabric] drm@v0 successfully installed on Org2's peers: peer0.org2.example.com
2020.02.27-18:28:33.772 info [caliper] [adapters/fabric] simple@v0 successfully installed on Org1's peers: peer0.org1.example.com
2020.02.27-18:28:33.782 info [caliper] [adapters/fabric] simple@v0 successfully installed on Org2's peers: peer0.org2.example.com
2020.02.27-18:28:33.807 info [caliper] [adapters/fabric] smallbank@v0 successfully installed on Org1's peers: peer0.org1.example.com
2020.02.27-18:28:33.817 info [caliper] [adapters/fabric] smallbank@v0 successfully installed on Org2's peers: peer0.org2.example.com
2020.02.27-18:28:33.818 info [caliper] [adapters/fabric] Instantiating marbles@v0 in mychannel. This might take some time...
2020.02.27-18:29:17.168 error [caliper] [caliper-flow] Error: Error: Invalid endorsement for marbles@v0 in mychannel from peer0.org1.example.com:
error starting container: error starting container: API error (404): network 2org1peergoleveldb_raft_default not found
at proposalResponses.forEach (/home/gb/github/hyperledger/caliper-benchmarks/node_modules/@hyperledger/caliper-fabric/lib/fabric.js:1358:31)
at Array.forEach (
Did a search and could see anything related -- any information on it?
Did a search and couldn't see anything related -- any information on it?
@GBECBWP When the docker-compose file is "upped", it should create a network called `2org1peergoleveldb_raft_default`, since it is in the "2org1peergoleveldb_raft" directory. For some reason this isn't the case for you. Can you execute the start script in the network config file manually? Then list the docker networks (`docker network ls`). Older docker-compose versions handled the underscore in the dir name differently (removed it).
Or if you want to be sure, call docker-compose in the start script with the `-p 2org1peergoleveldb_raft` parameter. But it'd be interested in the answer for my above question :)
hi anyone knows how to test network of Fabric for transaction latency??
@SateeshBangarugiri The following docs pages are a good starting point:
- https://hyperledger.github.io/caliper/vLatest/installing-caliper/
- https://hyperledger.github.io/caliper/vLatest/fabric-config/
And check out the examples in the benchmark repo: https://github.com/hyperledger/caliper-benchmarks
i have fabric 1.4.6 installed in my machine....
@SateeshBangarugiri Then you can try the latest unstable 0.3.0 release, that has binding support for Fabric 1.4.6
https://hyperledger.github.io/caliper/vNext/installing-caliper/
where to download the caliper bechmarks
NPM package: https://www.npmjs.com/package/@hyperledger/caliper-cli/v/0.3.0-unstable-20200227121044
Docker image: https://hub.docker.com/layers/hyperledger/caliper/0.3.0-unstable-20200227121044/images/sha256-db1da9ff97238c6649ef7fc74a8fa23f103e57fbd7f7cf35043a81028b03e90a?context=explore
Clone the github repo above
how to clone??
command??
https://hyperledger.github.io/caliper/vNext/installing-caliper/#overview
git clone https://github.com/hyperledger/caliper-benchmarks.git
this one write
right
Yes
@klenik thanks for the pointer. I randomly checked this on my Catalina machine today (yesterday I was using latest Linux Mint) and there is no issue running: npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb_raft/fabric-go-tls.yaml
Probably it has a newer docker-compose version. But I'm glad the issue is gone
Did a quick check:
OSX -- docker-compose version 1.25.4, build 8d51620a
Linux: -- docker-compose version 1.17.1, build unknown
This all underscore management can be circumvented if you explicitly set the project/network name. But still a nasty move from docker-compose to change this behavior
Thanks bit odd -- although personally I had not encountered it before. Thanks for the quick help though.
Thanks, bit odd -- although personally I had not encountered it before. Thanks for the quick help though.
:thumbsup:
Just upgraded my docker-compose on Linux to the same version and got the same issue.
I was on the v0.2.0 branch in caliper-benchmarks. On OSX I was actually on master, so I changed to master in caliper-benchmarks and it runs fine.
Hmm, the compose file should be the same on both commit versions. Strange.
We should probably make the compose files more robust in the benchmark repos
For clarity I am using caliper v0.2.0 + caliber-benchmarks master as of commit 3630692eb2a80483b16f5ccc3dce39da2f5f4095.
docker -v = Docker version 19.03.6, build 369ce74a3c
docker-compose -v = docker-compose version 1.25.4, build 8d51620a
The following, after change to benchmarks/scenario/simple/config.yaml to read as
txNumber:
- 100
For clarity I am using caliper v0.2.0 + caliber-benchmarks master as of commit 3630692eb2a80483b16f5ccc3dce39da2f5f4095.
docker -v = Docker version 19.03.6, build 369ce74a3c
docker-compose -v = docker-compose version 1.25.4, build 8d51620a
The following, after change to benchmarks/scenario/simple/config.yaml to read as
txNumber:
- 100
npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb_raft/fabric-go-tls.yaml
Are the docker version the same?
yep
The change in config.yaml shouldn't cause a difference, it's just a change in Caliper syntax
I have docker 19.03.5 on OSX and docker 19.03.6 on Linux
From what I am seeing the key is to use master branch on the caliper-benchmarks repo rather than v0.2.0
docker-compose is 1.25.4 on my OSX and Linux machines
But then you have to use the master/unstable builds of Caliper, since benchmarks@master is not compatible with caliper@0.2.0 (due to the above config syntax change)
OK. I just had the benchmark for the command I posted in this thread complete fine. I have not used caliper from master yet -- I was going via npm.
Is master (0.3.0?) relatively stable?
Is caliper master (0.3.0?) relatively stable?
We're releasing 0.3.0 early next week, so yeah, we deem it stable enough. When using the unstable release, check the vNext version of the doc pages
OK, cheers. Will keep an eye on it.
Has left the channel.
@klenik @nkl199 @FlyingTiger I am using fabric 1.4.0, sdk 1.4.0 and caliper v0.2.0. While running the tests simple long run test for 1hr and in test config i specified 1000tps even then tool is submitting transactions with1tps
Here is command = npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config_long.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.0/2org2peergoleveldb/fabric-go-tls.yaml
content of config file for long run
---
test:
name: simple
description: This is an example benchmark for caliper, to test the backend DLT's
performance with simple account opening & querying transactions
clients:
type: local
number: 5
rounds:
- label: open
txDuration:
- 3600
rateControl:
type: fixed-rate
opts:
tps: 1000
arguments:
money: 10000
callback: benchmarks/scenario/simple/open.js
monitor:
type:
- docker
docker:
name:
- all
interval: 1
How did you solve your problem? I have the same one.
When I run Caliper by `docker-compose up`, I get an error:
` [monitor-docker] Error retrieving remote containers: Error: Parse Error`
My `config.yaml` monitor settings:
```
```
When I run Caliper by `docker-compose up`, I get an error:
` [monitor-docker] Error retrieving remote containers: Error: Parse Error`
My `config.yaml` monitor settings:
```
monitor:
type:
- docker
- process
docker:
name:
- http://138.201.245.77:7051/peer0.org3.example.com
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 1
```
When I run Caliper by `docker-compose up`, I get an error:
` [monitor-docker] Error retrieving remote containers: Error: Parse Error`
My `config.yaml` monitor settings:
```
monitor:
type:
- docker
- process
docker:
name:
- http://138.201.123.123:7051/peer0.org3.example.com
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 1
```
When I run Caliper by `docker-compose up`, I get an error:
` [monitor-docker] Error retrieving remote containers: Error: Parse Error`
My `config.yaml` monitor settings:
```
monitor:
type:
- docker
- process
docker:
name:
- http://138.201.123.123:7051/peer0.org3.example.com
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 1
```
What could be the problem?
When I run Caliper by `docker-compose up`, I get an error:
` [monitor-docker] Error retrieving remote containers: Error: Parse Error`
My `config.yaml` monitor settings:
```
monitor:
type:
- docker
- process
docker:
name:
- http://138.201.123.123:7051/peer0.org3.example.com
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 1
```
What could be the problem?
Снимок экрана (736).png
[ ](https://chat.hyperledger.org/channel/caliper?msg=qbJrGEcSCgBdvdTuH)
Снимок экрана (736).png
When I run Caliper by `docker-compose up`, I get an error:
` [monitor-docker] Error retrieving remote containers: Error: Parse Error`
My
hello everyone, how can i set up this flag --caliper-flow-only-test, to run caliper from docker
Set the `CALIPER_FLOW_ONLY_TEST=true` environment variable. This page has everything about setting runtime configurations: https://hyperledger.github.io/caliper/vLatest/runtime-config/
Hello! I have successful results of the fabcar test "Create a car", but no changes in my ledger, no new cars was added. Is it normal?
```
```
Hello! I have successful results of the fabcar test "Create a car", but no changes in my ledger, no new cars was added. Is it normal?
```
caliper | 2020.03.03-06:08:13.578 info [caliper] [local-client.js] Info: client 416 init test :Creating cars.
caliper | 2020.03.03-06:08:13.685 info [caliper] [local-client.js] Info: client 424 init test :Creating cars.
caliper | 2020.03.03-06:08:13.743 info [caliper] [local-client.js] Info: client 423 init test :Creating cars.
caliper | 2020.03.03-06:08:13.762 info [caliper] [local-client.js] Info: client 426 init test :Creating cars.
caliper | 2020.03.03-06:08:13.777 info [caliper] [local-client.js] Info: client 433 init test :Creating cars.
caliper | 2020.03.03-06:08:14.581 info [caliper] [local-client.js] Info: client 416 start test runDuration():Creating cars.
caliper | 2020.03.03-06:08:14.687 info [caliper] [local-client.js] Info: client 424 start test runDuration():Creating cars.
caliper | 2020.03.03-06:08:14.746 info [caliper] [local-client.js] Info: client 423 start test runDuration():Creating cars.
caliper | 2020.03.03-06:08:14.770 info [caliper] [local-client.js] Info: client 426 start test runDuration():Creating cars.
caliper | 2020.03.03-06:08:14.782 info [caliper] [local-client.js] Info: client 433 start test runDuration():Creating cars.
caliper | 2020.03.03-06:08:22.053 info [caliper] [report-builder] ### Test result ###
caliper | 2020.03.03-06:08:22.069 info [caliper] [report-builder]
caliper | +---------------+------+------+-----------------+-----------------+-----------------+-----------------+------------------+
caliper | | Name | Succ | Fail | Send Rate (TPS) | Max Latency (s) | Min Latency (s) | Avg Latency (s) | Throughput (TPS) |
caliper | |---------------|------|------|-----------------|-----------------|-----------------|-----------------|------------------|
caliper | | Create a car. | 282 | 0 | 54.5 | 2.15 | 0.08 | 0.28 | 38.9 |
caliper | +---------------+------+------+-----------------+-----------------+-----------------+-----------------+------------------+
caliper |
caliper | 2020.03.03-06:08:22.074 info [caliper] [defaultTest] ------ Passed 'Create a car.' testing ------
caliper | 2020.03.03-06:08:22.074 info [caliper] [caliper-flow] ---------- Finished Test ----------
caliper |
caliper | 2020.03.03-06:08:22.075 info [caliper] [report-builder] ### All test results ###
caliper | 2020.03.03-06:08:22.076 info [caliper] [report-builder]
caliper | +---------------+------+------+-----------------+-----------------+-----------------+-----------------+------------------+
caliper | | Name | Succ | Fail | Send Rate (TPS) | Max Latency (s) | Min Latency (s) | Avg Latency (s) | Throughput (TPS) |
caliper | |---------------|------|------|-----------------|-----------------|-----------------|-----------------|------------------|
caliper | | Create a car. | 282 | 0 | 54.5 | 2.15 | 0.08 | 0.28 | 38.9 |
caliper | +---------------+------+------+-----------------+-----------------+-----------------+-----------------+------------------+
caliper |
caliper | 2020.03.03-06:08:22.201 info [caliper] [caliper-flow] Generated report with path /hyperledger/caliper/workspace/report.html
caliper | 2020.03.03-06:08:22.203 info [caliper] [caliper-flow]
caliper |
caliper | #######################################
caliper | # Test summary: 1 succeeded, 0 failed #
caliper | #######################################
caliper |
caliper | 2020.03.03-06:08:22.204 info [caliper] [caliper-utils] Executing command: cd /hyperledger/caliper/workspace;echo "benchmark ended"
```
@gorbunovperm No, it's not. Can you check the peer logs whether you see TX/block commit logs?
@gorbunovperm Can you share more details about the example/commands you are using?
@gorbunovperm Can you share more details about the example/commands you are using?
thanks for helping
hello everyone, i successfully ran caliper on my network but i have a question, on the caliper.yaml config if i set discovery to true and usegateway to true it should enable discovery service right?, if this is the case when i start the caliper test with a peer down it fails saying that it cant connect to it, from what i understand discovery service generates a valid endorsing combination with the available peers so it shouldnt need all of them to be working
@icarrascol Hmm, maybe @nkl199 can shed some light on this behavior and requirements for the discovery service :thinking:
Hi, yeah - so assuming that you have configured the network for discovery (caliper does not to my knowledge perform the required anchor peer update transactions) then there is still the "which peer did you take down?" question as it is important with regards to the peer listed in the (minimal) connection profile, and the endorsement policy
@nkl199 but isnt that automatic? like how fabric node sdk manages discovery service, when u set up a minimal config with 4 peers and you take one down the service just "knows" by itself....
when i set up discovery on caliper.yaml file and do a test with one peer down it fails because it tries to connect to all the peers
@icarrascol Discovery information is maintained by Fabric, and needs server-side configuration. https://hyperledger-fabric.readthedocs.io/en/release-1.4/discovery-overview.html
@klenik i have discovery service enabled, with node sdk if i stop a peer it still generates endorsing combinations and it shows them on console, i thought caliper used a modified version of the node sdk to send the transactions, at least for node sdk discovery needs to be enabled on its network configuration and when you initialize the channel in the code itself like: channel.initialize({ discover: true, asLocalhost: true }
:tada: Caliper V0.3.0 has now been released at the Hyperledger Global Forum :tada:
Burrow
Has joined the channel.
Has joined the channel.
Hi can anyone guide , that how should be make clients pick up different transaction adapters. For Ex : If I have two txn adapters & I am configuring Local Clients - 2 in the config.yaml , then Client 1 - should pick up file 1 ( Call back file ) & client 2 - should file up file 2 ( Callback file) ?
Hi. Is there a way to access the v0.2.0 documentation? I am using this URL below and only vLatest and vNext are listed under *Versions*
https://hyperledger.github.io/caliper/vLatest/getting-started/
@obelix You need to checkout a commit from the gh-pages branch before the release, and build the documentation site locally. https://github.com/hyperledger/caliper/tree/gh-pages#building-locally
2020.03.09-01:39:29.659 info [caliper] [adapters/fabric] Instantiating marbles@v0 in mychannel. This might take some time...
2020.03.09-01:49:41.687 error [caliper] [adapters/fabric] The following errors occured while instantiating marbles@v0 in mychannel:
- Commit timeout for marbles@v0 in mychannel from peer0.org1.example.com
- Commit timeout for marbles@v0 in mychannel from peer1.org1.example.com
- Commit timeout for marbles@v0 in mychannel from peer0.org2.example.com
- Commit timeout for marbles@v0 in mychannel from peer1.org2.example.com
2020.03.09-01:49:41.690 error [caliper] [caliper-flow] Error: Error: Commit timeout for marbles@v0 in mychannel from peer1.org2.example.com
at Timeout.setTimeout [as _onTimeout] (/home/intel/caliper-benchmarks/node_modules/@hyperledger/caliper-fabric/lib/fabric.js:1376:41)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
2019 npm init -y
2020 npm install --only=prod @hyperledger/caliper-cli@0.2.0
2021 7.npx caliper bind --caliper-bind-sut fabric --caliper-bind-sdk 1.4.0
2022 npx caliper bind --caliper-bind-sut fabric --caliper-bind-sdk 1.4.0
2023 echo $no_proxy
2024 npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config_linear.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.0/2org2peergoleveldb/fabric-go-tls.yaml
caliper version 0.2.0
caliper-benchmarks - 0.2.0
You probably need to increase the timeout for waiting for the chaincode committed event: https://hyperledger.github.io/caliper/vLatest/runtime-config/#fabric-adapter-settings
The `caliper-fabric-timeout-chaincodeinstantiateevent` setting is what you need (since the endorsement was successful). See the docs on how to change its value
I did that
export CALIPER_FABRIC_SLEEPAFTER_INSTANTIATECHAINCODE=600000
export CALIPER_FABRIC_TIMEOUT_CHAINCODEINSTANTIATEEVENT=600000
export CALIPER_FABRIC_TIMEOUT_CHAINCODEINSTANTIATE=600000
even then i am getting timeout errors
@rkrish82 Can you try with a smaller network? Like 2org1peergoleveldb?
@klenik Yes i have tried with 2org1peergoleveldb as well
Same error
@rkrish82 Have you checked the peer logs for potential chaincode instantiate errors?
Has joined the channel.
Hi guys, I'm new to Caliper and I would like to benchmark JPM Quorum. So I'm starting to write my own blockchain adapter for Quorum but I'm quite disoriented, since the online guide https://hyperledger.github.io/caliper/vLatest/writing-adaptors/ is referencing folders and files that are not in the Caliper repository anymore. Is there any thorough tutorial or up-to-date documentation that I can follow? Thank you!
Hi @MarcoMazzoni - anything relating to 'benchmarks' is now in a separate repository https://github.com/hyperledger/caliper-benchmarks
Hi @MarcoMazzoni - anything relating to 'benchmarks' is now in a separate repository https://github.com/hyperledger/caliper-benchmarks and `caliper-core/lib/blockchain.js` is under `caliper-core/lib/core/blockchain.js` ... we don't have any more detailed tutorials though
Hi @MarcoMazzoni - anything relating to 'benchmarks' is now in a separate repository https://github.com/hyperledger/caliper-benchmarks and `caliper-core/lib/blockchain.js` is under `caliper-core/lib/core/blockchain.js` ... we don't have any more detailed tutorials though. The burrow adaptor is quite minimal, so would be a good one to look at for your adaptor
Hi Guys any updates ?
Currently this is not supported, because the workload module paths are received from the master process, so each worker loads the same workload module. We'll lift this restriction later, but it involves quite a few changes
Thank you Attila for your response, Do you know if there is a workaround for this ? As Same file being picked up by multiple clients returns MVCC_Read_Conflict ...
That originates from your workload implementation. It is your responsibility to mitigate it (using unique seeds for each worker) or live with it (it is possible that this scenario is valid for the expected workload)
This is the only workaround for now. However, if you're using the distributed setup, then you can use different implementations under the same filename. But I think that's not the core problem here
lerna
Hello, I'm trying to run the Ethereum benchmark and I'm following the configuration guide https://hyperledger.github.io/caliper/vLatest/ethereum-config/.
It says "Contract necessary for the benchmark are automatically deployed at benchmark startup while the special *registry* contract needs to be already deployed on the network. ABI and bytecode of the registry contract are reported in the *src/contract/ethereum/registry/registry.json*."
Does anybody know where can I find that file? I checked it out in both caliper and caliper-benchmarks repositories without success.
Thank you
@MarcoMazzoni I think that sentence is outdated. The adapter takes care of that automatically now (it was needed to keep track of the deployed contract addresses, but a more efficient method is used now).
Has joined the channel.
Thank you Attila, Let me think through what best can be done..
Does it take care of that by simply saving the deployed contract addresses in the Context object? Thank you for the answer
This is how the context variable looks like: https://github.com/hyperledger/caliper/blob/master/packages/caliper-ethereum/lib/ethereum.js#L102
You don't get addresses, because you can reference the contract by name, the adapter will do the translation for you. That way you don't have to worry about random generated addresses
Ok, thank you sir
Hi everybody, I'm trying to write a new blockchain adapter for Caliper but I don't understand what's the workflow to do it. For sure the fact that I'm new to the NodeJS world is not helping me at all. Can anybody help me to figure out how to successfully setup and publish (using Verdaccio) a new blockchain package? (The online official tutorials are somehow outdated and maybe they include some implicit steps that I'm missing out)
The steps I was thinking to take are the following:
1. Fork and clone the caliper repo locally
2. Open the caliper project in my IDE and add a *caliper-myblockchain* package in the *caliper/packages* directory
3. Create the *lib* in *caliper-myblockchain* with the following files: `caliper-myblockchain/lib/adapterFactory.js` and `caliper-myblockchain/lib/myblockchain.js`
4. Create the following files in the package directory: `caliper-myblockchain/index.js` and `caliper-myblockchain/package.json`
5. Run `npm install` inside the caliper-myblockchain directory to install dependencies and then publishj all the caliper repo on a local Verdaccio server
Could anyone tell me if this is the correct way? Or can anyone guide me through the correct steps? Thank you very much for your support.
Has joined the channel.
Hi all! I'm trying to test the v0.3.0 of caliper but (additionally to the entrypoint being changed to --version now) I'm getting an error, on the caliper-cli.
For now I just changed the docker image and the entrypoint of the docker image to test the new version. Are there any additional changes required in the new version? When are you planning to update the docs?
Thanks!!
I'm trying to run the ethereum and besu integration tests and they all fail. The first error I am seeing is
```
```
I'm trying to run the ethereum and besu integration tests and they all fail. The first error I am seeing is
```
2020.03.19-10:02:18.088 -0600 debug [mqtt-worker-messenger] ethereum worker sent message: {"to":["orchestrator"],"from":"41953","timestamp":"2020-03-19T16:02:18.088Z","data":{"error":"SyntaxError: Invalid or unexpected token","type":"prepared"}}
2020.03.19-10:02:18.089 -0600 debug [process-master-messenger] Processing worker message: {"to":["orchestrator"],"from":"41953","timestamp":"2020-03-19T16:02:18.088Z","data":{"error":"SyntaxError: Invalid or unexpected token","type":"prepared"}}
2020.03.19-10:02:18.110 -0600 debug [worker-orchestrator] Dealing with prepared message {"to":["orchestrator"],"from":"41953","timestamp":"2020-03-19T16:02:18.088Z","data":{"error":"SyntaxError: Invalid or unexpected token","type":"prepared"}}
2020.03.19-10:02:18.110 -0600 error [message-handler] Handled unsuccessful "prepare" message for worker 0 and test round 0 with error SyntaxError: Invalid or unexpected token
2020.03.19-10:02:18.110 -0600 debug [worker-orchestrator] Handling prepared message from 41953 with data {"error":"SyntaxError: Invalid or unexpected token","type":"prepared"}
```
Is there something in the ethereum adapter that needs to be updated?
Has joined the channel.
@shemnon will have a look
The docs is already up2date: https://hyperledger.github.io/caliper/vLatest/installing-caliper/#using-the-docker-image
The examples include setting the command to execute when the container is started. The entry point is `caliper`, the command should either be `launch master` or `launch worker`, plus any required setting you need (either as command line arguments or env variables, or config file)
Thanks i'll try with that
Has joined the channel.
I'm trying to run caliper v0.3.0 with the node debugger and running into a bit of trouble when it forks the worker process. The worker process attempts to listen on the same port as the parent process. Is their a known workaround for this? Alternatively is there a way to run a simple benchmark without forking?
You can separately start the worker process from the master, but you have to use mqtt messaging in that case. That way you can specify different inspection ports for the processes (or only debug the worker process). For details: https://hyperledger.github.io/caliper/vLatest/architecture/#process-distribution-models (and the reference messenger setup page)
You can separately start the worker process from the master, but you have to use mqtt messaging in that case. That way you can specify different inspection ports for the processes (or only debug the worker process). For details: https://hyperledger.github.io/caliper/vLatest/architecture/#process-distribution-models (and the referenced messenger setup page)
Thanks. I managed to get that working easily enough, though it would be nice if there was a single-process capability to ease debugging. Debugging friction often means more bugs.
I'm doing some work on caliper to benchmark Besu. If I get deep into the belly of the beast I'll see about submitting a PR for this, but I can't make any promises at this point
You're right, and I've already have ideas in this direction, maybe the next release will contain it :)
Can I please draw some attention to this issue? https://github.com/hyperledger/caliper/issues/776.
I've been working on validating caliper for benchmarking Besu, and this is a blocking issue. Before I proceed further with a fix it'd be good if the maintainer(s) weighed in.
@shemnon - would you be able to look at the above?
He and I have been in discussion about it already, actually
prior to me writing up the issue, that i
prior to me writing up the issue, that is
Yea, we discussed it on the contributor call this morning and your #2 approach is fine.
ok, I'll look into getting that done, then - something else I think we need to discuss though is backfilling in-flight transactions in cases where the transaction failed to be submitted (no txn hash returned) and nonce errors would otherwise be returned
should we replay those, or just let them die?
I suspect the latter?
I think once the request ordering is more consistent however this will be less of an issue, but intermittent connectivity problems, etc are still a concern
I think if we get no TXID we replay. Multiple TXes with the same nonce are tolerated, all but one will be discarded. If we have a hole in the nonces we have the Christmas light problem (one goes out they all go out).
Yeah, so the Christmas light problem is actually really easy to fix as long as we can detect it - we just reset the nonce in the context to the nonce of the first failed txn minus one
it's just a question of whether we maintain an internal list of outstanding transactions, tracking their state
I think that's likely the most robust solution, but it means higher memory consumption, and there's the question of the error and latency stats
do we count the errors for the lights that go out further down the chain? do we count the time spent in replaying those txns in the total latency?
I think it's probably more appropriate to count retries as separate from errors (except for the first failure, that should be an error), and let the latency figure accumulate the total time until success/failure, including replay time
problem with that is we'd need to introduce a new metric into the reporting scheme, but I suspect that's not all that difficult?
It will be lower consumption than what web3.js does, they keep a set of promises polling for the receipt so it' already consuming lots of memory.
Total latency is from time submitted via rawtx to the time it's reported as in a block, i.e. when we can get a receipt.
so I think it's time from first attempt to submit, including all re-submits.
unless we can move to a one account per tx model then we must re-try or all following txes fail.
> they keep a set of promises polling for the receipt so it' already consuming lots of memory.
good point, I forgot about this
btw, I'm also going to reach out to Dan Finlay re: MetaMask's nonce management - I loosely worked with them on it back in 2017 and I recall that they put quite a bit of effort into it - their code is mostly quite modular and reusable, so we might get a quick win there
@shemnon how do you feel about mandating use of websockets for caliper? I think it's best practice for users anyway, and would make the job quite a bit easier
@shemnon how do you feel about mandating use of websockets for caliper-ethereum? I think it's best practice for users anyway, and would make the job quite a bit easier
Dan pointed me a this module - I'll have a look at it in a bit.
https://www.npmjs.com/package/nonce-tracker
Has joined the channel.
Hello, I am attempting to benchmark a fabric network running on k8s. First time using the tool. Received this error "Error: Cannot find module 'fabric-ca-client/package'" it looks like there is a github issue for this but I didnt see solution. Could anyone assist? Thanks
During a fabric benchmark, is it possible to skip user registration and enrollment with CA? The user certs to run the test with have already been enrolled and the CA is not accessible to caliper
Is it possible to use caliper without access to CAs of SUT but do have access to the certs and keys? I have skipped all the phases leading up to test pahse but still fails trying to enroll with CA...
have you used the `caliper-flow-only-test` flag?
Yes I have. The logs indicate skipping `start` `init` and `install` as expected but the it looks like testing phase first step is enrollment
This is the error log `error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054], stack=Error: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]`
The network profile validation requires an entry for certificate authority so the config has a bogus certificate authority listed
ah, ok -it is also possible to use a file wallet approach and a gateway. Doing so assumes that the wallet contains everything reuired
ah, ok -it is also possible to use a file wallet approach and a gateway. Doing so assumes that the wallet contains everything required
uses an old version, but this should give the idea: https://developer.ibm.com/technologies/blockchain/tutorials/blockchain-performance-testing-smart-contracts-vscode-caliper
Ok thanks, so it looks like I just need to add a `wallet` with `wallet path` to the network config. Will give that a try.
Ok thanks, so it looks like I just need to add a wallet with wallet path to the network config. Will give that a try.
:thumbup:
[ ](https://chat.hyperledger.org/channel/caliper?msg=3KeEWB7uqswEYHFDa) @SaphiraBjartskular Are you sure about this?
[ ](https://chat.hyperledger.org/channel/caliper?msg=7g98WT2QbhbEcnk9y) It's listed as optional here: https://hyperledger.github.io/caliper/vLatest/fabric-config/#network-configuration-file-reference
And also during validation: https://github.com/hyperledger/caliper/blob/master/packages/caliper-fabric/lib/configValidator.js#L186 and https://github.com/hyperledger/caliper/blob/master/packages/caliper-fabric/lib/configValidator.js#L58
ahh I did further investigation after you asked: This is only because I listed
``` certificateAuthorities:
- ca.msp.org1```
in the orgs description. When I commented that out validation didn't require a CA entry
Yep, just remove every mention of CAs from the config and it should be good
thank you
and its working! Thank you this is awesome
excellent :thumbup:
I think I've made progress on the nonce/transaction reordering issues - testing it now and it's looking good so far.
I realized part way through the process of writing my own transaction handling that the reason why transactions are getting reordered is because during the transaction processing web3 is deciding that it needs to reach out and ask the gasPrice and chainId. This wasn't happening uniformly on all transactions (I'm not sure why) and as a result, some transaction requests would be sent ahead of others. To work around this I've explicitly set the chainId and gasPrice in the transaction params, and I no longer see extraneous requests for these things during benchmarks.
If someone could please review this change, I'd be much obliged. I've already run it past @shemnon, however he hasn't reviewed the code himself just yet.
https://github.com/hyperledger/caliper/pull/780/files
https://github.com/hyperledger/caliper/pull/780
Looks like I have a few lint errors - I'll fix those up
Looks like I have a few lint errors - I'll fix those up (edit: fixed, and I did a forced push, so checks should pass now)
Has joined the channel.
Hi.
I am planning to test on Hyperledger Besu with Hyperledger Caliper.
According to Doc( https://hyperledger.github.io/caliper/vLatest/installing-caliper/ ), it says that it supports Besu version up to 1.3.2.
In our project, we plan to launch the service before May by applying 1.4.0 or 1.4.1. So I ask if I can test Besu 1.4.0 or higher with Caliper before May.
It supports all current versions of Besu, even if the CLI isn't lined up. I'll submit a patch to get it reflected in the bind code and docs
Hi @jongyoon,
I'm afraid that I wouldn't use v0.3.0 of Caliper to test Besu. It will run, but the results you'll get out of it aren't indicative of real performance. I submitted a PR yesterday to address this issue. https://github.com/hyperledger/caliper/pull/780
If you test using that PR, be sure to set up your benchmark to connect to Besu via websockets, as otherwise you'll see poor performance and quite a few errors. This is because of a problem with a library that Caliper uses, not because of a problem with Besu.
Hope this helps!
Has joined the channel.
Hello Guys,
I have a question. Can we integrate hyperledger Iny with caliper?
If yes then can you please provide me some resources where I can get an idea about it.
Thanks,
Abhishek.
If you find a solution to your question, please share it with me. I also have the task of performance testing Indy.
Perhaps a tool can solve your task https://github.com/hyperledger/indy-node/tree/master/scripts/performance
Sure @gorbunovperm
Has joined the channel.
any sample for hyperledger fabric performance test ?
How to run the test?
do ./run.sh and get above error
Has joined the channel.
Hello,
My student is running into an issue with caliper and he posted his question on Gitgub as well:
https://github.com/hyperledger/caliper-benchmarks/issues/50
Please advise..
"I recently installed Caliper v2.0 on Ubuntu18 but when I'm running a sample benchmark on hyperledger 1.0.0 I keep getting this error: TypeError: Path must be a string. Received Undefined.
Apparently, the tool is not recognizing the path of the config files. Just so you know, the same syntax has worked before without any problem. All the versions of the prerequisite tools (nodejs, make, git, npm, etc) seem to be on point. I'm kinda new to Linux and the tool so your kind help would be very much appreciated!
Thank you!
angelo
OUTPUT LOG:
angelo@angelo-VirtualBox:~/Caliper/caliper-benchmarks$ npx caliper benchmark run --caliper-benchonfig config.yaml --caliper-networkconfig fabric-go.yaml --caliper-workspace .
TypeError: Path must be a string. Received undefined
at assertPath (path.js:28:11)
at Object.isAbsolute (path.js:1222:5)
at Function.handler (/home/angelo/Caliper/caliper-benchmarks/node_modules/@hyperledger/caliper-cli/lib/benchmark/lib/runBenchmark.js:39:32)
at Object.module.exports.handler (/home/angelo/Caliper/caliper-benchmarks/node_modules/@hyperledger/caliper-cli/lib/benchmark/runBenchmarkCommand.js:52:43)
at Object.runCommand (/home/angelo/Caliper/caliper-benchmarks/node_modules/yargs/lib/command.js:228:22)
at Object.parseArgs [as _parseArgs] (/home/angelo/Caliper/caliper-benchmarks/node_modules/yargs/yargs.js:1013:30)
at Object.runCommand (/home/angelo/Caliper/caliper-benchmarks/node_modules/yargs/lib/command.js:194:45)
at Object.parseArgs [as _parseArgs] (/home/angelo/Caliper/caliper-benchmarks/node_modules/yargs/yargs.js:1013:30)
at Object.get [as argv] (/home/angelo/Caliper/caliper-benchmarks/node_modules/yargs/yargs.js:957:21)
at Object. (/home/angelo/Caliper/caliper-benchmarks/node_modules/@hyperledger/caliper-cli/caliper.js:35:5)
Command failed"
@AhmedHussein you have a typo in your command.
`--caliper-benchonfig` -> `--caliper-benchconfig`
We really should turn on strict argument parsing...
@benjamincburns We can't really turn it on on the CLI level, since these options can be set from various sources. But v0.3.0 already includes checks/asserts for the above configuration file paths (every other setting has sensible defaults)
If you want to run tests with the cloned master repo (because you made some code modifications, for example), follow these setup steps: https://hyperledger.github.io/caliper/vLatest/installing-caliper/#installing-locally-from-source
If you want to run tests with a published NPM/Docker version, see the previous sections of the same doc page.
The above problem probably occurs because you didn't bootstrap the project (i.e., didn't wire the caliper package dependencies)
Has joined the channel.
Hi everyone:
Hi everyone:```
I'm running a problem running a sample marble test on Hyperledger Fabric. It seems to have something to do with Docker but I can't figure it out. I'm kinda new to the tool. Next is the output log I'm getting. Thank you in advance for your help!
```
Hello everyone:
I'm getting an error when running a sample marble test on Hyperledger Fabric. Apparently, it has something to do with Docker but can't figure it out, I'm kinda new to Linux and the tool. I've followed the instructions for Caliper installation, binding SDK and running the test. In the next message, I'm attaching the output log. Thank you in advance! - angelo.
```
```
Hello everyone:
I'm getting an error when running a sample marble test on Hyperledger Fabric. Apparently, it has something to do with Docker but can't figure it out, I'm kinda new to Linux and the tool. I've followed the instructions for Caliper installation, binding SDK and running the test. In the next message, I'm attaching the output log in a TXT file. Thank you in advance! - angelo.
```
```
[ ](https://chat.hyperledger.org/channel/caliper?msg=x7jgx37JJRhnGgT6t)
AngeloVera - Thu Apr 02 2020 18:59:57 GMT-0500 (CDT).txt
thank you . i may try
thanks again, everything goes well.
lauch command is missing?
you are on v2.0 - the `launch` command replace `benchmark run` which is present v2
you are on v0.2 - the `launch` command came in on v0.3 replaced `benchmark run` which is present v0.2
you are on v0.2 - the `launch` command came in on v0.3 and replaced `benchmark run` which is present v0.2
:joy: the official document let me install 0.2.0 。。。
Anyone know how to solve that problem
Refer to the docs on how to configure observers and monitors: https://hyperledger.github.io/caliper/vLatest/caliper-monitors/
I configure it follow the doc ,but the same error
Clipboard - April 3, 2020 7:38 PM
pushgateway and prometheus are access normally.
Could you share the exact command you're executing? Is it an example from the benchmark repo, or your own project?
Your TX stats are also strange/non-existent
Has joined the channel.
Hey guys, does anyone know if Hyperledger Fabric v2.0 might be supported from Caliper in a near future?
Hello. Trying to recreate the tests by N K Lincoln, I run benchmarks targeting the fixed-asset chaincode. running the create_asset benchmark, after multiple successful rounds i face this error:
error: [ChannelEventHub.js]: _connect - timed out after:45000
After a bit of research, this error has to do with the node sdk i am using.
My question is, does the sdk version has to match the fabric docker image version?
Right now i am using fabric 1.4.4 version, should I use SDK 1.4.4 or I can also use SDK latest?
After doing some tests, I have come to the conclusion that the error occurs when running create-asset.js with bytesize 64000. On any other round of the create-asset.yaml file succeeds.
After doing some tests, I have come to the conclusion that the error occurs when running create-asset.js with bytesize 64000. On any other round of the create-asset.yaml file succeeds. Any feedback would be very helpful.
You can test Fabric v2.0 using and sdk (ie the 1.4.x binding versions)
does anyone have benchmarks of fabric v2?
Clipboard - April 6, 2020 8:32 PM
Clipboard - April 6, 2020 8:32 PM
Clipboard - April 6, 2020 8:32 PM
Clipboard - April 6, 2020 8:32 PM
Clipboard - April 6, 2020 8:32 PM
Clipboard - April 6, 2020 8:32 PM
Clipboard - April 6, 2020 8:32 PM
Clipboard - April 6, 2020 8:32 PM
Clipboard - April 6, 2020 8:32 PM
Clipboard - April 6, 2020 8:32 PM
Clipboard - April 6, 2020 8:32 PM
Hi all, I'm trying to run a caliper (v0.3.0) benchmark using the launch command:``` ``` *_angelo@angelo-VirtualBox:~/caliper/caliper-benchmarks$ npx caliper launch master --caliper-bind-sut fabric:1.4.1 --caliper-workspace . --caliper-benchconfig benchmarks/samples/fabric/marbles/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml_*``` ``` However, I keep getting the error shown in the clipboard above. I really appreciate some guidelines. TY.
Hi all, I'm trying to run a caliper (v0.3.0) benchmark using the launch command:
*_angelo@angelo-VirtualBox:~/caliper/caliper-benchmarks$ npx caliper launch master --caliper-bind-sut fabric:1.4.1 --caliper-workspace . --caliper-benchconfig benchmarks/samples/fabric/marbles/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml_*
However, I keep getting the error shown in the clipboard above. I really appreciate your help. TY.
Hi all, I'm trying to run a caliper (v0.3.0) benchmark using the launch command:
*_angelo@angelo-VirtualBox:~/caliper/caliper-benchmarks$ npx caliper launch master --caliper-bind-sut fabric:1.4.1 --caliper-workspace . --caliper-benchconfig benchmarks/samples/fabric/marbles/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml_*
However, I keep getting the error shown in the clipboard below. I really appreciate your help. TY.
Clipboard - April 6, 2020 8:44 PM
https://github.com/Randyshu2018/caliper-test
Has joined the channel.
Clipboard - April 7, 2020 11:57 AM
caliper.log
I replaced it and everything goes well,but if there are some config can do it rather than edit source file
like this? https://hyperledger.github.io/caliper-benchmarks/fabric/performance/2.0.0/nodeJS/nodeSDK/configuration/
that's a connectivity issue with the CA, which means something is wrong within the configuration (URLs) or credentials. The logs within the containers might help track down the issue there
Clipboard - April 7, 2020 5:20 PM
Thank you so much for the feedback. I was checking the log and took the screens down below. Could the error be a compatibility issue between my actual node and nom versions and the required ones by caliper?
Thank you so much for the feedback. I was checking the log and took the screens down below. Could the error be a compatibility issue between the actual node and npm versions installed and the required ones by caliper?
Clipboard - April 7, 2020 9:56 PM
Clipboard - April 7, 2020 9:57 PM
Clipboard - April 7, 2020 9:57 PM
Clipboard - April 7, 2020 9:57 PM
is there a network mismatch on the docker components?
not sure
and why the succ + fail not equal txNum
hi,what's the best rateControl config , I use the Fixed Rate ,the tps can reach 300 while Fixed Backlog only 170
Has joined the channel.
they are use case specific, so depends entirely what you want to do
Clipboard - April 10, 2020 10:25 AM
Hi guys, is there any command to uninstall Caliper from a specific directory? Thank you. -a
```npx caliper launch master --caliper-workspace workspace/phase1```
I set caliper-workspace and it sames no use...
it also look for benchmark config from the current workspace
the caliper version is
```
shurenweideMacBook-Pro:caliper-test shurenwei$ npx caliper --version
2020.04.13-11:14:27.361 +0800 debug [blockchain] Constructed a winston logger with the specified settings
v0.3.0
```
Has joined the channel.
Hi, how to increase send tps ? I configure 10 worker ,but the send tps also below 500
Has joined the channel.
Clipboard - April 13, 2020 7:46 AM
Has joined the channel.
enroll
something wrong in the ubuntu manifest list - probably worth checking out the docker forums for that error, or try completely removing all traces of docker before reinstalling
When i try to run caliper tests (with --caliper-flow-only-test, against a running fabric network), I get the error for fabric compatibility mode, any reason why?
Error: Fabric 1.0 compatibility mode is detected, but SDK version 1.4.0 is used
When i try to run caliper tests (with --caliper-flow-only-test, against a running fabric network), I get the error for fabric compatibility mode, any reason why? I am using caliper version 0.3.0.
Error: Fabric 1.0 compatibility mode is detected, but SDK version 1.4.0 is used
@gauravgiri You're using a network configuration file that was intended for Fabric 1.0 networks (there's an `eventUrl` for the peer entries). Since there were significant/breaking changes after 1.0 in the eventing, we require the 1.0 SDK for 1.0 networks, so use a fabric:1.0.0 binding
https://hyperledger.github.io/caliper/v0.3/architecture/#process-distribution-models
This explains how you can scale Caliper to multiple machines if you run into the limitations of a single machine. But without further info about your settings, I don't know whether that's the problem. Increasing just the worker number won't increase the sending rate, you must also increase the sending rate of the rate controller
also, as part of client definition in connection profile, we need to provide clientPrivateKey, clientSignedCert. any way for caliper to enroll a registered user with provided with enrollid/enrollsecret, and use this user to perform tests?
also, as part of client definition in connection profile, we need to provide clientPrivateKey, clientSignedCert. any way for caliper to enroll a registered user with provided enrollid/enrollsecret, and use this user to perform tests?
thank you @kel
thank you @klenik, i will recheck the connection profile to make it 1.4.x compatible
Has joined the channel.
hi, how to achieve thousands of tps with fabric2.0 ? any ideas? tps is below 500 till now and my config is 8C 16G (single machine with test-network)
Thats quite a general question to which there are too many answers. What is the configuration? What is the peer targeting strategy? How complex is the chaincode? How many workers are you using? Are you using docker based workers? What rate limits are you setting? Are you maxing out the CPU/Memory/Network? What are the orderer settings? What state database are you using? If using CouchDB is it indexed? ... there is no "silver bullet"
1,machine config: 8C 16G
2,endorsement : OR('Org1MSP.member','Org2MSP.member')
3, endorsers: peer0.org1.example.com peer0.org2.example.com
4,databse : goleveldb
5, chaincode:fabcar
6,worker : 4
7,send rate:800
8:orderer : orderer.example.com with etcdraft
git repo : https://github.com/Randyshu2018/caliper-test
CPU/Memory/Network consumption on the machine as the test is running?
Clipboard - April 15, 2020 4:13 PM
looks like you are using marbles chaincode in the callbacks? And only calling the init function?
I specific --caliper-workspace workspace/local and init file is in this directory.
just ignore callbacks directory.
yes,now I only test the tps
and the callback is for "marble create"?
yes , actually for creating car...I gorget to submit init.js
yes , actually for creating car...I forget to submit init.js
OK - so for a single machine configuration, you are right in the ballpark for expected output TPS. To go higher, we would recommend moving the client drivers to a different machine (same network to minimise latency) and then scale them up -> 50+ workers is not uncommon. Having caliper workers on the same machine as the fabric network itself can really impact resources.
what clock speed is the machine?
Clipboard - April 15, 2020 4:57 PM
that's pretty substantial - are you running with "fixed tps" rate controllers?
yes. rateControl: { type: 'fixed-rate', opts: { tps: 800 } }
ok, increase the number of test clients locally first, see what impact that has on the resource consumption and getting closer to the target rate
thank for your advice and now the tps can be 800
Has joined the channel.
Hello, I want to know if I can use caliper with hyperledger fabric 2.0
Hello, I want to know if I can use caliper with hyperledger fabric 2.0, how can I do it please?
Hi @HelmiTrabelsi - have a look at Caliper's documentation here: https://hyperledger.github.io/caliper/v0.3/getting-started/
Personally I haven't ran it against Fabric, but if you look to the message directly above yours, you'll see that other users have.
Has left the channel.
if I can use multiple workers in different machines?
Has joined the channel.
Hi All, Can Caliper be used with AWS, IBM, Azure or SAP Services?
if yes is there any guide to use this?
This can be done using the "distributed" docker based workers that communicate using mqtt
yes, though no guides at the moment
I tried it, but it doesn't work :/ . In the documentation, caliper support Fabric 1.X only.
I bound to sdk version 1.4.5 and ran a test this morning on fabric 2.0.0 :shrug:
I am trying to setup Caliper with IBM VS Extension and i have the following error - Failed to activate extension: Failed to execute command "npm" with arguments "rebuild, grpc, --target=7.1.11, --runtime=electron, --update-binary, --fallback-to-build, --target_arch=x64, --dist-url=https://atom.io/download/electron" return code 1
Thank you @nkl199. Do you have any idea or tutoriel how i can use caliper with an existing fabric 2.0 network??
no tutorials out, but it is the same as any other fabric network - you just need the credentials and network configuration to match the target network. Oh, and make sure the chaincode containers are up already, becuase the new model is that they are not created until the first transaction hits the peer
Thank you :)
review request: https://github.com/hyperledger/caliper/pull/808
virtual
I have the following error while setting up caliper on VS Code:
C:\caliper-benchmarks\benchmarks> npx caliper bind --caliper-bind-sut fabric:1.4.4
2020.04.20-16:15:52.371 warn [caliper] [bind] Working directory for binding not specified. Using "C:\caliper-benchmarks\benchmarks"
2020.04.20-16:15:52.372 info [caliper] [bind] Binding for fabric@1.4.4. This might take some time...
2020.04.20-16:15:52.372 info [caliper] [bind] Binding working directory: C:\caliper-benchmarks\benchmarks
2020.04.20-16:15:52.373 info [caliper] [bind] Calling npm with: install grpc@1.14.2 fabric-ca-client@1.4.4 fabric-client@1.4.4 fabric-protos@2.0.0-snapshot.1 fabric-network@1.4.4
events.js:174
throw er; // Unhandled 'error' event
^
Error: spawn npm ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
at onErrorNT (internal/child_process.js:415:16)
at process._tickCallback (internal/process/next_tick.js:63:19)
at Function.Module.runMain (internal/modules/cjs/loader.js:834:11)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
Emitted 'error' event at:
at Process.ChildProcess._handle.onexit (internal/child_process.js:246:12)
at onErrorNT (internal/child_process.js:415:16)
[... lines matching original stack trace ...]
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
unable to proceed further, any help pls
what version of node, and is it compatible with what you are trying to install with the bootstrap?
node is v10.20.0
npm is v6.14.4
@NageshCR The called spawn function can't find the npm command for some reason. Based on your paths, I guess you're using Windows, which could cause the difference in behavior. As a workaround for now, try executing the "binding" manually in your benchmarks dir: `npm install grpc@1.14.2 fabric-ca-client@1.4.4 fabric-client@1.4.4 fabric-protos@2.0.0-snapshot.1 fabric-network@1.4.4`
Just wanted to bump this review request: https://github.com/hyperledger/caliper/pull/808
Apologies if this is the wrong channel for this - happy to direct this elsewhere if Caliper has a dedicated contributor channel.
Has joined the channel.
#hyperledger-caliper
We are using hyperledger fabric (v.1.4.2) with 1 Org 2 Peer 1 orderer setup running in different VM. Now I'm trying to analyze the performance using hyperledger caliper (v.0.3.0). Can this be done? Or hyperledger caliper testing can be done only in dockerized environment?
a) yes this can be done
b) can be done with or without the docker clients, that is a user architectural choice to make
c) Caliper "only" needs to have the correct credentials to connect to the system, where-ever it may be. If you can create a client connection, you can test it with Caliper
Thanks nkl199,
Currently in our network setup, I have already started the orderer and peers and peers have also been joined to the channel. I have installed and instantiated all the chaincode in my network.
This is the command that i have used to start the caliper,
npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
In this networkconfig yaml file, they are using docker-compose and their dockerized network configuration to start the network. As my network is already started, what are the changes that has to be done in the configuration files as well as the command to run the caliper in my network? and also do you have any reference for this?
Clipboard - April 22, 2020 4:36 PM
use remote communication , the send rate always 0 and the latency is much higher then before.
Has joined the channel.
Hi Everyone, I’m currently researching on how to go about automatically creating different sized Fabric networks (varying orgs, peers, channels) and testing those with Caliper. I have found a way to create the needed docker-compose config file and the crypto-assets for HLF using some basic scripts that require manual editing, but I was wondering if there was a more streamlined and automated approach for this.
Hi Everyone, I’m currently researching on how to go about automatically creating different sized Fabric networks (varying orgs, peers, channels) and testing those with Caliper. I have found a way to create the needed docker-compose config file and the crypto-assets for HLF using some basic scripts that require manual editing, but I was wondering if there was a more streamlined and automated approach for this especially considering the creation of the needed Caliper Config files.
Lots of ways, but I use Ansible: https://galaxy.ansible.com/ibm/blockchain_platform_manager
I want to benchmark my network by phase (Endorsement, ordering, validatio). Do you have any ideas how to do this with Caliper or another tool?
Client = 4, TxNumber=1000, fixed, tps=200 \\ VM1: 16 CPU, 16 vCPU, 16GB Mem, VM2: 12 CPU, 12 vCPU, 8GB Mem
Hello Everyone, I hope you all are keeping safe. I was wondering how do you figure out where is the bottleneck of your computing/network infrastructure that keeps the transaction throughput low? For example, Since I've moved my experiments from Google Cloud to a private cloud network the performance has degraded. So far I have realized that for one the network bandwidth is much lower in my private cloud compared to Google Cloud (Private Cloud: 500 Mbits/sec vs. GCloud: 9.6 Gbits/sec). However, when monitoring the network interfaces it does not seem that the benchmark uses more than 40-50 Mbits/sec tops. So I assume the network is not the bottleneck. The same goes for the memory and the CPU. Even at the highest peaks of the benchmarks, CPU and memory are not being fully utilized. Considering these, I do not seem to be able to get a TX throughput of more than 120 TPS on the simple benchmark open Tx (2org1peergoleveldb_Raft). And once I increase the send rate to 200+ I start getting plenty of failed TXs due to timeout. I was wondering if there is a systematic method of finding the bottleneck here.?
`Client = 4, TxNumber=1000, fixed, tps=200 \\ VM1: 16 CPU, 16 vCPU, 16GB Mem
VM2: 12 CPU, 12 vCPU, 8GB Mem`
Hello Everyone, I hope you all are keeping safe. I was wondering how do you figure out where is the bottleneck of your computing/network infrastructure that keeps the transaction throughput low? For example, Since I've moved my experiments from Google Cloud to a private cloud network the performance has degraded. So far I have realized that for one the network bandwidth is much lower in my private cloud compared to Google Cloud (Private Cloud: 500 Mbits/sec vs. GCloud: 9.6 Gbits/sec). However, when monitoring the network interfaces it does not seem that the benchmark uses more than 40-50 Mbits/sec tops. So I assume the network is not the bottleneck. The same goes for the memory and the CPU. Even at the highest peaks of the benchmarks, CPU and memory are not being fully utilized. Considering these, I do not seem to be able to get a TX throughput of more than 120 TPS on the simple benchmark open Tx (2org1peergoleveldb_Raft). And once I increase the send rate to 200+ I start getting plenty of failed TXs due to timeout. I was wondering if there is a systematic method of finding the bottleneck here.?
`Client = 4, TxNumber=1000, fixed, tps=200 \\ VM1: 16 CPU, 16 vCPU, 16GB Mem
VM2: 12 CPU, 12 vCPU, 8GB Mem`
This is the kind of Timeout errors I get:
`2020-04-27T07:40:19.136Z - error: [Orderer.js]: sendBroadcast - timed out after:45000
(node:7041) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 71)
(node:7042) UnhandledPromiseRejectionWarning: Error: REQUEST_TIMEOUT
at Timeout.setTimeout [as _onTimeout] (/home/nima/caliper-benchmarks/node_modules/fabric-client/lib/Orderer.js:148:19)
at ontimeout (timers.js:482:11)
at tryOnTimeout (timers.js:317:5)
at Timer.listOnTimeout (timers.js:277:5)`
Hello Everyone, I hope you all are keeping safe. I was wondering how do you figure out where is the bottleneck of your computing/network infrastructure that keeps the transaction throughput low? For example, Since I've moved my experiments from Google Cloud to a private cloud network the performance has degraded. So far I have realized that for one the network bandwidth is much lower in my private cloud compared to Google Cloud (Private Cloud: 500 Mbits/sec vs. GCloud: 9.6 Gbits/sec). However, when monitoring the network interfaces it does not seem that the benchmark uses more than 40-50 Mbits/sec tops. So I assume the network is not the bottleneck. The same goes for the memory and the CPU. Even at the highest peaks of the benchmarks, CPU and memory are not being fully utilized. Considering these, I do not seem to be able to get a TX throughput of more than 120 TPS on the simple benchmark open Tx (2org1peergoleveldb_Raft). And once I increase the send rate to 200+ I start getting plenty of failed TXs due to timeout. I was wondering if there is a systematic method of finding the bottleneck here.?
`Client = 4, TxNumber=1000, fixed, tps=200 \\ VM1: 16 CPU, 16 vCPU, 16GB Mem
VM2: 12 CPU, 12 vCPU, 8GB Mem`
This is the kind of Timeout errors I get:
`2020-04-27T07:40:19.136Z - error: [Orderer.js]: sendBroadcast - timed out after:45000
(node:7041) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 71)
(node:7042) UnhandledPromiseRejectionWarning: Error: REQUEST_TIMEOUT
at Timeout.setTimeout [as _onTimeout] (/home/nima/caliper-benchmarks/node_modules/fabric-client/lib/Orderer.js:148:19)
at ontimeout (timers.js:482:11)
at tryOnTimeout (timers.js:317:5)
at Timer.listOnTimeout (timers.js:277:5)`
Clipboard - April 27, 2020 9:07 AM
Another observation regarding this is that if I repeat the same benchmark with 300 tps, while all the raft orderers are located at the same host, the timeout errors do not occur but the throughput remains low.
Hi there. Can somebody clarify how Caliper Observers are used. This is not clear in the documentation. For example, what's the difference between these two declarations in the benchmark configuration file:
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
multiOutput: avg
interval: 10
Hi there. Can somebody clarify how Caliper Observers are used. This is not clear in the documentation. For example, what's the difference between these two declarations in the benchmark configuration file:
1)
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
2)
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
multiOutput: avg
interval: 10
Hi there. Can somebody clarify how Caliper Observers are used. This is not clear in the documentation. For example, what's the difference between these two declarations in the benchmark configuration file:
1)
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
2)
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
Hi there. Can somebody clarify how Caliper Observers are used. This is not clear in the documentation. For example, what's the difference between these two declarations in the benchmark configuration file:
1)
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
2)
`monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
observer:
type: local
interval: 10`
Hi there. Can somebody clarify how Caliper Observers are used. This is not clear in the documentation. For example, what's the difference between these two declarations in the benchmark configuration file:
1)
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
2)
`monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
observer:
type: local
interval: 10`
Hi there. Can somebody clarify how Caliper Observers are used? This is not very clear in the documentation. For example, what's the difference between these two declarations in the benchmark configuration file:
1)
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
2)
`monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
observer:
type: local
interval: 10`
Hi there. Can somebody clarify how Caliper Observers are used? This is not very clear in the documentation. For example, what's the difference between these two declarations (the first one without and the second one with Observers) in the benchmark configuration file:
1)
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
2)
`monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
observer:
type: local
interval: 10`
Hi there. Can somebody clarify how Caliper Observers are used? This is not very clear in the documentation. For example, what's the difference between these two declarations (the first one without and the second one with Observers) in the benchmark configuration file:
1)
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
2)
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
observer:
type: local
interval: 10
Hi there. Can somebody clarify how Caliper Observers are used? This is not very clear in the documentation. For example, what's the difference between these two declarations (the first one without and the second one with Observers) in the benchmark configuration file:
1)
```
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
```
2)
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
observer:
type: local
interval: 10
Hi there. Can somebody clarify how Caliper Observers are used? This is not very clear in the documentation. For example, what's the difference between these two declarations (the first one without and the second one with Observers) in the benchmark configuration file:
1)
```
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
```
2)
```
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
observer:
type: local
interval: 10
```
Hi there. Can somebody clarify how Caliper Observers are used? This is not very clear in the documentation. For example, what's the difference between these two declarations (the first one without and the second one with Observers) in the benchmark configuration file:
1)
```
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
```
2)
```
monitor:
type:
- process
process:
- command: node
arguments: fabricClientWorker.js
multiOutput: avg
interval: 10
observer:
type: local
interval: 10
```
A monitor is used to collate information into a report at the end of a benchmark, an observer is used to notify a user of the current transaction submission numbers during the benchmark
Hi Nick, thanks for your answer. This playbook was right what I was looking for. However, when trying to connect a caliper network to two-org-test network, I encountered a policy error.
Policy Error
https://gist.github.com/Schkai/aa6e258ad103b8548c06c9eef7f0e837 That's the caliper config I was using. I know that this is Fabric's intended policy behavior. However, I was wondering how i can circumvent this error when creating the playbook.
OK, so you will need to match the policy with how you are driving the tests - looks like the credentials you are using are not admin credentials (there's a difference between those and client credentials) You could modify the policy being used or change the user creds
Has joined the channel.
Hey, we just recently started working with caliper and really love the concept and think it is a great project.
I was just wondering, is there a way to specify the report format? So have something better machine readable than html? What I see, everything refers to HTML reports
I'm sure this could be possible :thumbup: I know that Atilla uses logging information that is output, but there's no reason an alternative export version couldn't be specified for tabular style information
something easily readable like JSON or XML would be great. Does the current architecture support different report generators?
not yet, but i'm sure it would be worth discussing on the maintainers call tomorrow
Is it open for everyone? Then I would also join to get in touch with the community :)
absolutely :thumbup: check the hyperledger calendar for links and time zone specific timings
https://wiki.hyperledger.org/display/HYP/Calendar+of+Public+Meetings
Has joined the channel.
How do I test Ethereum on Caliper?
Funny that you ask this, we (not affiliated with the project) are currently working on a dockerized ready to use example for this. But we are still new to Caliper, so might struggle ourselves :)
Great, will join, thanks!
I have a first working draft, using docker-in-docker, here in this branch:
https://github.com/internet-sicherheit/caliper-docker/tree/ethereum0.2.0
Has joined the channel.
Hey, I'm new to Caliper but a veteran in Fabric. I can't seem to get caliper to work with 2.0. It stops at the chaincode instantiaion.
Error while performing "install" step: Error: Invalid endorsement for marbles@v1.0 in channel from peer.cpqd.com.br: Channel 'channel' has been migrated to the new lifecycle, LSCC is now read-only
Isn't this a Fabric specific error?
I found out that caliper doesn't support the new cc lifecycle so I'm changing it in the configtx.yaml configs and from what I noticed, it needs to use the 1.4 sdk
You can use the 1.4.x binding to create channels, install/instantiate cc, and then switch to the 2.1 binding to test if desired. The 2.1 fabric-sdk no longer contains *any* admin actions and so we are unable to perform such actions
Hey, I have setup hyperledger fabric version 1.4.2 with 1 org 2 peers 1 orderer setup all are running in 3 different VMs natively. Now I am trying to implement caliper v0.3.0 in this fabric setup. Peers and Orderer are already up and peers are joined in the channel. I have already installed and instantiated chaincodes in the network. I have modified the network config file and benchconfig file in caliper according to my network. So I directly run the caliper using the flag "caliper-flow-only-test". While executing this, I am facing issues like
error: [Orderer.js]: sendBroadcast - on error: "Error: 14 UNAVAILABLE: failed to connect to all addresses\n at Object.exports.createStatusError (/home/xx/caliper-benchmarks/node_modules/grpc/src/common.js:91:15)\n at ClientDuplexStream._emitStatusIfDone (/home/xx/caliper-benchmarks/node_modules/grpc/src/client.js:233:26)\n at ClientDuplexStream._receiveStatus (/home/xx/caliper-benchmarks/node_modules/grpc/src/client.js:211:8)\n at Object.onReceiveStatus (/home/xx/caliper-benchmarks/node_modules/grpc/src/client_interceptors.js:1306:15)\n at InterceptingListener._callNext (/home/xx/caliper-benchmarks/node_modules/grpc/src/client_interceptors.js:568:42)\n at InterceptingListener.onReceiveStatus (/home/xx/caliper-benchmarks/node_modules/grpc/src/client_interceptors.js:618:8)\n at /home/xx/caliper-benchmarks/node_modules/grpc/src/client_interceptors.js:1123:18"
2020.04.29-12:22:12.094 error [caliper] [caliper-engine] Error while performing "install" step: Error: Orderer error for instantiating W1CC@v0 in composerchannelrest: SERVICE_UNAVAILABLE
Can you any one please suggest how to resolve this?
looks like the install is still being attempted, are you using the flag `--caliper-flow-only-test` (with the leading dashes?)
yes. caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/createPool.yaml --caliper-networkconfig networks/Azure_fabric-go.yaml --caliper-flow-only-install
This is the command that I am using
yes. caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/createPool.yaml --caliper-networkconfig networks/Azure_fabric-go.yaml --caliper-flow-only-test
This is the command that I am using
yes, sorry that error occurs during installation. caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/createPool.yaml --caliper-networkconfig networks/Azure_fabric-go.yaml --caliper-flow-only-install
while using caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/createPool.yaml --caliper-networkconfig networks/Azure_fabric-go.yaml --caliper-flow-only-test
The following errors are I am facing,
(node:44363) UnhandledPromiseRejectionWarning: Error: Could not find details for contract ID W1CC
at Fabric.invokeSmartContract (/home/xx/caliper-benchmarks/node_modules/@hyperledger/caliper-fabric/lib/adaptor-versions/v1/fabric-v1.js:2122:23)
at Fabric.invokeSmartContract (/home/xx/caliper-benchmarks/node_modules/@hyperledger/caliper-fabric/lib/fabric.js:113:34)
at Blockchain.invokeSmartContract (/home/xx/caliper-benchmarks/node_modules/@hyperledger/caliper-core/lib/common/core/blockchain.js:113:33)
at Object.module.exports.run (/home/xx/caliper-benchmarks/benchmarks/scenario/simple/addPool.js:115:15)
at setImmediatePromise (/home/xx/caliper-benchmarks/node_modules/@hyperledger/caliper-core/lib/worker/client/caliper-local-client.js:249:34)
at Immediate.setImmediate [as _onImmediate] (/home/xx/caliper-benchmarks/node_modules/@hyperledger/caliper-core/lib/worker/client/caliper-local-client.js:226:17)
at runCallback (timers.js:794:20)
at tryOnImmediate (timers.js:752:5)
at processImmediate [as _immediateCallback] (timers.js:729:5)
(node:44363) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 4)
(node:44363) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
yes, sorry that error occurs during installation. caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/createPool.yaml --caliper-networkconfig networks/Azure_fabric-go.yaml --caliper-flow-only-install
while using caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/createPool.yaml --caliper-networkconfig networks/Azure_fabric-go.yaml --caliper-flow-only-test
The following errors are I am facing,
(node:44363) UnhandledPromiseRejectionWarning: Error: Could not find details for contract ID W1CC
at Fabric.invokeSmartContract (/home/xx/caliper-benchmarks/node_modules/@hyperledger/caliper-fabric/lib/adaptor-versions/v1/fabric-v1.js:2122:23)
at Fabric.invokeSmartContract (/home/xx/caliper-benchmarks/node_modules/@hyperledger/caliper-fabric/lib/fabric.js:113:34)
at Blockchain.invokeSmartContract (/home/xx/caliper-benchmarks/node_modules/@hyperledger/caliper-core/lib/common/core/blockchain.js:113:33)
at Object.module.exports.run (/home/xx/caliper-benchmarks/benchmarks/scenario/simple/addPool.js:115:15)
at setImmediatePromise (/home/xx/caliper-benchmarks/node_modules/@hyperledger/caliper-core/lib/worker/client/caliper-local-client.js:249:34)
at Immediate.setImmediate [as _onImmediate] (/home/xx/caliper-benchmarks/node_modules/@hyperledger/caliper-core/lib/worker/client/caliper-local-client.js:226:17)
at runCallback (timers.js:794:20)
at tryOnImmediate (timers.js:752:5)
at processImmediate [as _immediateCallback] (timers.js:729:5)
(node:44363) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 4)
(node:44363) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Can you please suggest how to resolve this?
Thanks for the info. Gonna try that out
note you will need to remove the npm installed fabric-client package before running the test, as we first check for existence of that before picking what adaptor to use
Hello. I have setup 2 VMs that run a fabric network, using docker swarm. Prometheus observer is currently obtaining details only from the vm that runs the test (say vm1) and ignores containers in vm2. To deploy prometheus i used docker-compose file found in caliper-benchmarks: https://github.com/hyperledger/caliper-benchmarks/tree/master/networks/prometheus-grafana. Any ideas why this is happening?
Has joined the channel.
Hey, how do I test my composer network on caliper ?
is there any step to step guide for it ?
Has joined the channel.
Hi,
When running caliper bind command,I am facing the following issue.
Not enough arguments following: caliper-bind-args
I have updated the yargs version to 15.3.1, still am facing this issue. Can anyone suggest how to resolve this?
Hi,
When running caliper bind command,I am facing the following issue.
Not enough arguments following: caliper-bind-args
I have updated the yargs version to 15.3.1, still am facing this issue. Can you suggest how to resolve this?
composer has been deprecated, and the adaptor removed from caliper. It is still present in the first npm release for Caliper, though it is unsupported
Has joined the channel.
Has joined the channel.
Great! Can I send an email to exchange information about our projects?
```
Hi guys, I have a couple of software design questions about Caliper, specifically about the `caliper-core` module.
```
Hi guys, I have a couple of software design questions about the `caliper-core` module.
1. Why the *Blockchain class* in `lib/common/core/blockchain.js` does NOT extend the* BlockchainInterface class*?
2. Why the same *Blockchain class* does not call the *adapterFactory() method* for creating the blockchain Adapter directly in its own constructor (similar to the *Messenger class* referred in question 3)?
3. Why the *Messenger class* in `lib/common/messaging/messenger.js` does NOT extend the *MessengerInterface class*?
4. Why the several blockchain Adapters implemented in each SUT package, are called "Adapter"? I mean: if this refers to the *Adapter design pattern*, it deosn't sound quite correct. Since the *Blockchain class* in `lib/common/core/blockchain.js` wraps and calls the methods of the Adapter object, it seems more like the *Blockchain class* is the _Adapter_ (in the pattern terminology) and the *BlockchainAdapter* is the _Adaptee_
Hope they're not stupid questions. Thank you in advance!
Are you using an overlay network for your swarm?
yes
also, the same happens for any monitor, for example docker monitor obtains statistics only from docker containers inside vm1
Yes however, one of my old projects is based on composer and I require to do a performance analysis for the same
Do you have any links of the old docs or the production branch ?
What command do you use to init your Swarm and starting your services? Also, could you see all the services runing by typing this in the manager terminal? `$docker service ls`
i used docker swarm init, then created overlay network, docker stack deploy. All services are deployed, replicas are up and running
Has joined the channel.
Use the 0.2 release - the docs are versioned so select the 0.2 option
I don't have answers, but personally I'd like to know. Personally I'd love to see this whole codebase migrated over to TypeScript - would help to enforce certain design choices. If there's support for that among maintainers I might make it a project for some rainy weekend.
Yes I totally agree about migrating it to TypeScript. But I would also like to hear from mantainers about this, because I think software design is an important aspect to clarify so to avoid cargo cult programming. There is no doubt that JavaScript does not allow full expressivity on such a complex project.
MarcoMazzoni - Tue May 05 2020 00:58:46 GMT+0200 (Central European Summer Time).txt
Hy guys, I have a question about how Prometheus monitor looks for results.
I am testing a permissioned Ethereum network with Caliper, and I set up a Docker network with Prometheus (observer and monitor), MQTT broker, Caliper Master and *3 Workers*. The result I am getting is as follows:
1. Thebenchmark consists of sending *120 transactions* with *fixed-rate* rate control, hence each Worker has to submit 40 transactions.
2. Each Worker is indeed *successfully* submitting 40 transactions, and publish the *testResult* message on the MQTT broker
3. The *mqtt-master-messenger* gets correctly each testResult message from the Worker
4. The *RoundOrchestrator* on the Master, once it received the results from the WorkerOrchestrator, calls `await this.report.processPrometheusTPSResults({start, end}, roundConfig, index);` for the round index: this function makes *queries* on Prometheus using the *prometheus-query-client*
5. It asks for the *sum* of *caliper_txn_success* and it gets a response of *111*, whereas I'm expecting 120, since the Workers sent a msg with 40 successful transactions each.
I tested this many times, varying both the observer and monitor intervals, but the outcome is always the same.
I'm testing my network all in a local environment using Docker containers.
As follows, I attach the output of the Master's log, in order to show you what I just described.
[ ](https://chat.hyperledger.org/channel/caliper?msg=rePcfjFRvcgcLmpQA)
Output-Caliper.txt
That's likely to be a result of the frequency at which results are sent to Prometheus, the scrape frequency of Prometheus to the PushGateway, and the time segment used in the query (start/end) ... all of which contribute to clipped results
That's likely to be a result of the frequency at which results are sent to the Push Gateway, the scrape frequency of Prometheus to the PushGateway, and the time segment used in the query (start/end) ... all of which contribute to clipped results
The time segment used in the query {start, end} is taken by the framework itself, it is not settable by the user. The framework decides those time params in the `formatResults(results)` function of the *WorkerOrchestrator* class, by taking the maximum of all startTimes and the minimum of all worker endTimes. So, how do I change frequency of pushes and the scrape frequency of Prometheus? Thanks
I'm a fan of typescript too, however I suspect more than a single rainy weekend would be required to convert the entire project (using typings that are not 'any' everywhere). The current code base has evolved from the initial contribution from Huawei, we added with consistency to the original code base, including the manner in which the "adapters" have been implemented
Ok, thank you for the clarification!
yes - only the framework knows when a particular round has started/ended. The scrape frequency is within the docker compose files of Prometheus and is set when the containers are started
Of course, should you find yourself with many rainy weekends, or want to look into modifying the current adaptor hierarchy ... PRs are welcome!
Re: TS, I was being somewhat facetious about it taking a weekend, but I'd imagine that it could be done one module at a time with fairly minimal disruption to the active codebase.
That is true, and it is something I would welcome as my personal preference is for Typescript
That is true, and it is something I would welcome as my personal preference is for Typescript ... it is certainly something that should be scoped
I've done a bunch of TS conversions, anyway. The hardest part is just keeping the blinders on for the initial conversion and resisting the urge to improve the underlying code too much. I'll have a look at it. If typings exist for most dependencies, it might not be too bad.
I just tried changing the scrape interval of the prometheus-ethereum.yml file setting it to 1 sec (instead of 5 sec), but the issue is the same.
Thus, if the problem depends on how the framework takes the start and end times of a Round, it is not something the user can fix.
Is the scrape interval the only parameter that could fix this?
you can also increase the rate at which updates are sent to the push gateway (bench config setting)
I've set this in the *monitor* params to 1 second, like this:
`monitor:
interval: 1
type: prometheus
prometheus:
url: 'http://prometheus:9090'
push_url: 'http://pushGateway:9091'
metrics:
ignore: [prometheus, pushGateway, cadvisor, grafana, node-exporter]
include:
Avg Memory (MB):
query: sum(container_memory_rss{name=~".+"}) by (name)
step: 10
label: name
statistic: avg
multiplier: 0.000001`
:thinking: I would have thought that would capture them all - @klenik - any thoughts? Might need an issue to opened on this?
In a configuration with *local* Master and Workers, and a dockerized MQTT broker everything works fine.
yeah, each of those transactions are explicitly tracked, whereas the Prometheus operation registers execution and are later retrieved via an internal query against the prometheus server
Anyways, the *prometheus-query-client* inside `processPrometheusTPSResults({start, end}, roundConfig, index)` sends out a query with an *endTime* that is the EARLIEST of the endTimes of all workers (look at the `format(result)` function in WorkerOrchestrator). This implies that the maybe it is cutting off a time slice in which the other workers are not completed with their transactions yet.
Anyways, the *prometheus-query-client* inside `processPrometheusTPSResults({start, end}, roundConfig, index)` sends out a query with an *endTime* that is the EARLIEST of the endTimes of all workers (look at the `format(result)` function in WorkerOrchestrator). This implies that maybe it is cutting off a time slice in which the other workers are not completed with their transactions yet.
that could well be it :thumbup:
Therefore, it retrieves less transactions than actually have been submitted.
there's probably 2 requirements there:
- fix it to retrieve all
- enable trimming of results, ie ignore first and last x-seconds (user defined, default none), so that you are looking at the statistics when the SUT is being run at a steady state and not when the load is ramping up/down
How is that second bullet achieved? You mean to perform the last read just after the SUT "settled down"? This means performing a kind of "sleep" on the end of the last Round, and then make a query. Kind of?
You could define a "trim" setting in the bench config, and then modify the start/end times used in the query accordingly
start+trim, end-trim
that would explicitly throw away txns, but if you are running a benchmark for 15mins, you are mainly concerned with the steady state and not the beginning/end
But in this way I will not retrieve the same number of transactions that I specify in the `rounds` setting of bench config. So let's do a concrete example:
- For each query you suggest to trim the beginning and the last time slice, so to take only the "stable" part of the round
- In every "stable" time interval, the count of transactions will be less than the nominal one
- I will receive maybe "98 transactions completed" out of the "120" specified
correct - but in that case you could not specify a "trim" and the timing would be such that all txns are accounted for
the idea would be to enable a user to intentionally discard start/end txns to only register steady state, or let them include the ramp up/down phases
Maybe I'm not seeing your point. Unfortunately I'm not a JS developer, I'm just writing my Master thesis to show that Caliper is a good tool for running blockchain benchmarks in distributed environments
Oh ok I now see your point
Anyway, I will try to make the fix of the first bullet you suggested and let you know
I think you have come across a hidden design intention that is coming across as a defect - by issuing the query at the time when the first worker is complete, we ensure that the SUT is h=being hit the hardest. What you have revealed is that this is not always what someone want - in this case you want to know the total (exact) number of txns .. but we also need a new feature there to let a user interested in steady state operation select an "inner window" for the query to operate on so that they do not consider statistics for the start/end phase
Yes, I finally agree with that.
The problem right now is that, when I set 120 txns to be run, and I receive [ *111 txns successful* and *0 failed* ] I wonder what happened to the other 9 txns? But if we clarify that the benchmark is purposely accounting for a subset of them to ensure that during their submission the SUT was being hit the hardest, then everything makes more sense.
hello everyone! I´m working with caliper and besu and I don´t know if I am trying with the correct configuration. I sent to Caliper this -> npx caliper launch master --caliper-bind-sut ethereum --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/besu/1node-clique/networkconfig.json (the reason of why I set the bing with ethereum is because if I put "besu" the benchmark not working)
May I open an issue on this so that I can put it in the references in my master thesis?
absolutely :thumbup:
If you raise a PR that fixes it, i'm sure you will get extra credit too :joy:
I'll work on this and I'll let you know on this thread. If I come to a solution I'll publish both the issue and the PR
I am pretty sure I solved the problem.
So, the reason why the Caliper report won't print out ALL the transactions submitted by the Workers when using Prometheus is the following:
1. When the `CaliperLocalClient` (Worker) executes `doTest()`, at the beginning of the function it sets the *txUpdateTime*, which can be configured in `caliper.yaml` (otherwise the default is 1000ms)
2. The *txUpdateTime* is the frequency the `CaliperLocalClient` calls the `txUpdate()` function, which will *push* transactions statistics on the Prometheus push gateway
3. Inside `doTest()`, the Client will call either `runFixedNumber()` or `runDuration()`: these functions execute the workloads (submit txns) and when all the Promises resolve, they set the *endTime* variable
4. When these functions completed, some clean up is performed inside `doTest()` and `clearUpdateInter(txUpdateInter)` executes the last `txUpdate()` call
5. The *endTime* variable is sent along with the results to the Master, where it is returned to the `RoundOrchestrator`
6. The RoundOrchestrator now wants to build the report, and calls `await this.report.processPrometheusTPSResults({start, end}, roundConfig, index)`, where *end* is the *endTime* recorded above: through this function, queries are issued to Prometheus in order to retrieve the Caliper txn metrics at *time = endTime*
7. The problem is that *endTime* is an instant in time *PRIOR* to the *last txUpdate()* performed by the Worker, thus it's gonna retrieve the metrics about all transactions except the last bunch of them, that have been pushed by the `CaliperLocalClient` in the last `txUpdate()`.
Now, the higher is the update frequency from worker to Prometheus (set by the user through `txupdatetime` in `caliper.yaml`), the lower will be the probability of running into this issue.
But in the majority of cases this "inconsistency" can happen.
To make a concrete and trivial example, let's assume a Worker has to submit 20 txns at a fixed rate of 5 txns per second, and let's assume a *txUpdateTime* (frequency of pushes to Prometheus) of 3 sec:
START-TIME
[0 sec] push_to_Prometheus(Submitted: -, Succ: -, Failed: -)
[1 sec] 5 txn are submitted
[2 sec] 5 txn are submitted
[3 sec] 5 txn are submitted && push_to_Prometheus(Submitted: 15, Succ: 15, Failed: 0)
[4 sec] 5 txn are submitted
END-TIME
[5-sec] clearUpdateInterval() and make last push_to_Prometheus(Submitted: 20, Succ: 20, Failed: 0)
When all Workers are done with this process, the Master is going to choose the *earliest endTime* and the *latest startTime* among them, but this does not affect the occurrency of the issue.
As you can see, when the Master is gonna query Prometheus to retrieve metrics at END-TIME, it is going to receive *just 15* txns submitted, missing the last batch of 5 txns.
This can be solved by trivially tell the RoundOrchestrator to make a query at *endTime + txUpdateTime*: in this way, we can be sure that at this point in time the last push to Prometheus has been performed, and we have all the 20 txns in the report.
maintainers call tomorrow if you have any questions you wanna talk over
https://github.com/hyperledger/caliper/blob/master/packages/caliper-publish/caliper.Dockerfile
Is this the base for the caliper Dockerfile? It seems image 0.3.0 is missing docker-compose, so I'd like to raise an issue and provide PR if this is indeed the issue.
oh nevermind, this is probably intended, since docker-in-docker use cases are currently not supported in the exampels?
I am pretty sure I solved the problem.
So, the reason why the Caliper report won't print out ALL the transactions submitted by the Workers when using Prometheus is the following:
1. When the `CaliperLocalClient` (Worker) executes `doTest()`, at the beginning of the function it sets the *txUpdateTime*, which can be configured in `caliper.yaml` (otherwise the default is 1000ms)
2. The *txUpdateTime* is the frequency the `CaliperLocalClient` calls the `txUpdate()` function, which will *push* transactions statistics on the Prometheus push gateway
3. Inside `doTest()`, the Client will call either `runFixedNumber()` or `runDuration()`: these functions execute the workloads (submit txns) and when all the Promises resolve, they set the *endTime* variable
4. When these functions completed, some clean up is performed inside `doTest()` and `clearUpdateInter(txUpdateInter)` executes the last `txUpdate()` call
5. The *endTime* variable is sent along with the results to the Master, where it is returned to the `RoundOrchestrator`
6. The RoundOrchestrator now wants to build the report, and calls `await this.report.processPrometheusTPSResults({start, end}, roundConfig, index)`, where *end* is the *endTime* recorded above: through this function, queries are issued to Prometheus in order to retrieve the Caliper txn metrics at *time = endTime*
7. The problem is that *endTime* is an instant in time *PRIOR* to the *last txUpdate()* performed by the Worker, thus it's gonna retrieve the metrics about all transactions except the last bunch of them, that have been pushed by the `CaliperLocalClient` in the last `txUpdate()`.
Then, the higher is the update frequency from Worker to Prometheus (set by the user through `txupdatetime` in `caliper.yaml`), the lower will be the probability of running into this issue.
But in the majority of cases this "inconsistency" can happen.
To make a concrete and trivial example, let's assume a Worker has to submit 20 txns at a fixed rate of 5 txns per second, and let's assume a *txUpdateTime* (frequency of pushes to Prometheus) of 3 seconds:
START-TIME
[0 sec] push_to_Prometheus(Submitted: -, Succ: -, Failed: -)
[1 sec] 5 txn are submitted
[2 sec] 5 txn are submitted
[3 sec] 5 txn are submitted && push_to_Prometheus(Submitted: 15, Succ: 15, Failed: 0)
[4 sec] 5 txn are submitted
END-TIME
[5-sec] clearUpdateInterval() and make last push_to_Prometheus
As you can see, when the Master is gonna query Prometheus to retrieve metrics at END-TIME for that Worker, it is going to receive *just 15* txns submitted, missing the last batch of 5 txns.
This can be solved by trivially tell the RoundOrchestrator to make a query at *endTime + txUpdateTime*: in this way, we can be sure that at this point in time the last push to Prometheus has been performed, and we have all the 20 txns in the report.
Sorry for the long message, but it should be quite exhaustive. Thank you for the invitation, but I don't think I'll be brave enough to do that hahah, I'm just a student who can barely write JavaScript :)
Anyways I tried the fix I described, and it works!
good job! Please raise a github issue with the above copy/pasted in, and we can see about getting it fixed :thumbup:
Issue submitted with fix suggestions
Hope it's clear enough, otherwise I'm available for any clarifications
yes sure!
I send you a PM
You're right, it's intentional, as in a normal deployment scenario docker-in-docker is not needed. Caliper will be just another containerized service (managed by swarm, k8s, etc) next to the SUT services
That being said, it would be useful for the examples when using the Caliper image (the example network configs contain scripts to spin up a local docker network). But I wonder whether we can support that without putting docker into the image. For example, like the Fabric peer, which accesses a mounted docker socket to spin up chaincode containers.
Yes, we set it up like this, with docker socket mounting and custom image. Docker is not required in the caliper image, but access to docker socket (also user permission).
I'd like to contribute it to the examples, just to have a super easy way for new users to generate a report without setting up anything.
This is our current approach, not perfect yet, but a start:
https://github.com/internet-sicherheit/caliper-docker
How to upgrade caliper from v0.1.0 to 0.3.0?
Anyone in this group have experience in caliper with Besu? Thanks!
Has joined the channel.
@SergioTorres I will be experimenting with it this week, if you're interested we can work together
I have the same issue. I have installed Caliper 0.3.0 and yargs of 15.3.2. But still, I end up with same issue.
caliper bind --caliper-bind-sut fabric --caliper-bind-sdk 1.4.7 --caliper-bind-args="-g"
Usage:
caliper bind --caliper-bind-sut fabric:1.4.1 --caliper-bind-cwd ./ --caliper-bind-args="-g"
Options:
--help, -h Show usage information [boolean]
--version Show version information [boolean]
--caliper-bind-sut The name and version of the platform and its SDK to bind to [string]
--caliper-bind-cwd The working directory for performing the SDK install [string]
--caliper-bind-args Additional arguments to pass to "npm install". Use the "=" notation when setting this parameter [string]
--caliper-bind-file Yaml file to override default (supported) package versions when binding an SDK [string]
Not enough arguments following: caliper-bind-args
Please!
How did u install caliper?
also, please look at the "usage" hint, and compare it to what you provided (hint, there's a difference!)
also - check the difference between the usage hint, and what you provided ...
I used, npm install -g --only=prod @hyperledger/caliper-cli@0.3.0
righto - the command you are providing for the bind is incorrect
what is the correct command?
it is given in the error repsonse
I have tried that as well... nothing seems to be working
`caliper bind --caliper-bind-sut fabric:1.4.7 --caliper-bind-cwd ./ --caliper-bind-args="-g"`
?
yes
:thinking: that's odd - can u raise an issse in github and we'll track it from there
ok
any specific link to raise an issue
https://github.com/hyperledger/caliper/issues
ok
have u globally installed yargs too?
yes...
that might be interfering with the caliper core
is there a way to check that?
i would like to double check
npm uninstall yargs -g
should remove if there
i did run the uninstall
and then the bind cmd
same error
ok, we'll track it in the issue - please detail the version of caliper you have pulled from npm etc
ok
https://github.com/hyperledger/caliper/issues/837
done
When running caliper against Ethereum Parity I get:
`Error while performing "init" step: Error: Returned error: Method not found`
Maybe someone has an idea? Is Parity missing some methods in its API?
Probably @benjamincburns has
Might this happen in this method?
https://github.com/hyperledger/caliper/blob/master/packages/caliper-ethereum/lib/ethereum.js#L91
Can I change logging to give more detailed errors?
Hi @SergioTorres - sorry it has taken me a while to respond. I suggest that in forums like this, rather than asking to ask a question you just post your question into the channel and people will respond as time allows. You'll get an answer a lot quicker that way :-)
Also I generally try not to respond to questions via DM. It's better if people talk in the public channels so that the conversations are searchable
any suggestions on the following issue ?? https://github.com/hyperledger/caliper/issues/837
Has joined the channel.
Has joined the channel.
Hi all, I am seeing that the latest supported version of Caliper for Fabric is 1.4.7.
Is support for v2.x.x in the work and when will it be released or can we test already?
Has joined the channel.
Hello, I've been trying to use the prometheus monitor with the 0.3.0 Caliper image and having some issues with the report building. It is having trouble with querying the correct data for Caliper despite properly pushing. After looking into it a bit, I noticed that when prometheus pulled Caliper data from the Prometheus Push Gateway, the instance name was changed to the url of the gateway. Is there something I need to configure on prometheus to prevent this from happening?
Nvm, just realized that the honor_labels tag was missing from the job.
test client or fabric base images? Fabric V2.0.0 and 2.1.0 are able to be driven using the 1.4.7 SDK binding, though there is also a 2.1.0 Fabric SDK binding available ... but it is only capable to driving tests on an existing network as all admin operation has been removed from the 2.1.0 Fabric SDK
When I run caliper in multi-process mode (one master, one worker, communicating via MQTT), should I expect both processes to live until killed? That's the behavior I've been seeing lately when running Besu tests. If this is expected, is there a way that I can get them both to exit cleanly when the benchmark is finished?
that is the current behaviour, I think there is scope for some tidy-up there. The initial expectation was that MQTT would be used when using Dockerised workers, which would hang around for some time. Certainly worth a lifecycle discussion today on the maintainers call :thumbup:
Thanks for your answer, @nkl199, I am testing with the 1.4.7 SDK binding and 2.0.0 for fabric-protos now, and everything works, except for the private data. I have the transientMap correctly set in the tx settings, but the chaincode receives an empty transient map. And so I get an endorsement failure. Do you have any idea of problems with private data or can you point me to something I should check/change, please?
Thanks a lot!
Could it be that I am using a wrong gateway adapter that doesn't take the transientMap field?
What I see is that in the @hyperledger/caliper-fabric/lib/adaptor-versions/v2/fabric-gateway-v2.js they check for invokeSettings.transientData, instead of invokeSettings.transientMap:
```
// Add transient data if present
// - passed as key value pairing such as {"hello":"world"}
if (invokeSettings.transientData) {
const transientData = {};
const keys = Array.from(Object.keys(invokeSettings.transientData));
keys.forEach((key) => {
transientData[key] = Buffer.from(transientData[key]);
});
transaction.setTransient(transientData);
}
```
But I am not sure this is the reason, because I tried changing transientMap to transientData in my workload callback, but it also gave the same error...
I think there is definitely something wrong in the logic there, it does the Buffer.from on transientData instead of invokeSettings.transientData...
so I think two things should be fixed in this code, changing it to `invokeSettings.transientMap` and then using `invokeSettings.transientMap` in the `Buffer.from`. What do you think @nkl199 ?
eventhoug I bind to v2.0.0, the gateway version that is used is the v1:
`adaptor-versions/v1/fabric-gateway-v1.js^
eventhoug I bind to v2.0.0, the gateway version that is used is the v1:
`adaptor-versions/v1/fabric-gateway-v1.js`
and what I see in there is that invokeSettings.transientData is checked instead of invokeSettings.transientMap, could this be the issue?
Has joined the channel.
hello. I have setup my own fabric network. however, I don't know how to measure fabric network with multi-channel simultaneously through caliper. how can I write config.yaml file??
hello. I have setup my own fabric network. however, I don't know how to measure fabric network with multi-channel simultaneously through caliper. how can I write config.yaml or fabric-go..yaml file??
hello. I have setup my own fabric network. however, I don't know how to measure fabric network with multi-channel simultaneously through caliper. how can I write config.yaml or fabric-go.yaml file??
hello. I have setumy own fabric network. however, I don't know how to measure fabric network with multi-channel simultaneously through caliper. how can I write config.yaml or fabric-go.yaml file??
hello. I have set my own fabric network through VMs(2org 4peer 1orderer). however, I don't know how to measure fabric network with multi-channel simultaneously through caliper. I wanna set multi channel when Caliper executes a scenario measure how can I write config.yaml or fabric-go.yaml file??
hello. I have set my own fabric network through VMs(2org 4peer 1orderer). however, I don't know how to measure fabric network with multi-channel. I wanna set multi-channel which is executed simultaneously or alternately by caliper. how can I write config.yaml or fabric-go.yaml file? or Is there any file that I have to modify? Thanks.
Hi all, I did the v2.0.0 binding, but I see that when running the tests, fabric-gateway-v1.js is still used and it gives some errors. Where can I configure the use of fabric-gateway-v2 as the adapter, please?
@covepark The Fabric CI tests should be a good starting point: https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/fabric_tests/phase3/networkconfig.yaml
You just define multiple channels in your network configuration. From your callback file, you can refer to the desired contract ID which will automatically identify the target channel (https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/fabric_tests/init.js#L43). If you want the same chaincode instantiated on multiple channels then explicitely set the `contractID` in your network configuration (https://hyperledger.github.io/caliper/v0.3.1/fabric-config/#network-configuration-file-reference)
The correct adapter version automatically gets picked up based on the bound SDK version. You can see the detected SDK version in the logs. If it still shows 1.x, then clean your node_modules folder, probably a remnant 1.x SDK package causes the problem
Has joined the channel.
How can i run caliper on byfn?
Similar to this: https://developer.ibm.com/technologies/blockchain/tutorials/blockchain-performance-testing-smart-contracts-vscode-caliper but tailor it to the byfn resources
But, Global npm install has been depricated.
Has left the channel.
Thank you for answering. I totally understand what you said especially paragraph 2. but, I think that what you said in paragraph 2 means I can change 2 chaincode in 1 channel.
Thank you for answering. I totally understand what you said especially paragraph 2. but, I think that what you said in paragraph 2 means that I can change 2 chaincode in 1 channel. I want to change channel set in my network(e.g. one transaction for channel 1 and next one transcation for channel 2) whenever transaction is generated while caliper running. Is it possible?
Thank you for answering. I totally understand what you said especially paragraph 2.
but, I think that what you said in paragraph 2 means that I can change 2 chaincode in 1 channel.
I want to change channel set in my network(e.g. one transaction for channel 1 and next one transcation for channel 2) whenever transaction is generated while caliper running. Is it possible?
fabric-go.yaml channel.png
fabric-go.yaml channel.png
You need the following steps to accomplish that:
1. Every chaincode in the network config file needs a globally unique `contractID`. If you don't set one, then the `id` of the chaincode will be used. In your case that won't work, since both `id` is simple. So add a `contractID` to both chaincode, like `simple-ch1` and `simple-ch2`. Like theses lines:
https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/fabric_tests/phase3/networkconfig.yaml#L61
https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/fabric_tests/phase3/networkconfig.yaml#L79
You need the following steps to accomplish that:
1. Every chaincode in the network config file needs a globally unique `contractID`. If you don't set one, then the `id` of the chaincode will be used. In your case that won't work, since both `id` is simple. So add a `contractID` to both chaincode, like `simple-ch1` and `simple-ch2`. Like these lines:
https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/fabric_tests/phase3/networkconfig.yaml#L61
https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/fabric_tests/phase3/networkconfig.yaml#L79
2. In your workload module (aka callback file), you can reference the channel/chaincode pair using these `contractID`s. So `simple-ch1` will identify your `simple` contract on channel `ch1`. The following is an example of this selection: https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/fabric_tests/init.js#L43
3. You need to decide what you mean by "simultaneously". Caliper enables TXs according to the set rate controller. In the linked example the workload module submits a single TX when it's enabled, alternating between the two chaincodes/channels, hence the single `invokeSmartContract` call. The other way is to submit two TXs when the workload module is enabled, meaning two `invokeSmartContract` calls in your `run` function. In this case you must ensure that you concatenate their returned promise arrays and return that array. This second approach is closer to "simultaneously", but the first approach is simpler.
Thanks a lot!! I really appreciate your answer! :) I now can make it! really thanks!!
hello, I've been running example network in caplier-benchmark folder and my own fabric network by amending fabric-go.yaml. but All results indicate that Send Rate (TPS) is 1.0 even though I change TPS rate in config.yaml file. Always 1.0! I don't know why and I really want to measure real TPS by Caliper. Please help me again.
hello, I've been running example network in caplier-benchmark folder and my own fabric network by amending fabric-go.yaml. but All results indicate that Send Rate (TPS) is 1.0 even though I change TPS rate in config.yaml file. Always 1.0! I don't know why and I really want to measure real TPS by Caliper. Please help me!
Could you include the example files/commands you used for the test? Also a screenshot of the Caliper report might help. Can you reproduce the same with the original caliper-benchmarks example?
I solve it! It's the problem of config.yaml.file! I hit the space bar twice more than provided yaml.file!
Sorry for frequently asking and Thank you again!!! :grinning:
Has joined the channel.
Hello everyone, I am using Sawtooth as Deployment platform for my DAML Application. I want to know whether I can use Calliper for benchmark my application or not ?
*Error while installing fabric dependency*
i am using following command: npm run fabric-v1.1-deps
`npm ERR! missing script: fabric-v1.1-deps
npm ERR! A complete log of this run can be found in:
npm ERR! /home/nishchal/.npm/_logs/2020-06-01T18_21_30_854Z-debug.log
`
Does Caliper supported HLF 2.0 version? If not, when the caliper will update to support HLF2.0? or Do you have any idea to detour to test caliper on HLF2.0?
It is supported
Has joined the channel.
Has joined the channel.
Hello, does caliper support hyperledger Indy?
No, but we support PRs :wink: https://hyperledger.github.io/caliper/v0.3.1/getting-started/#supported-blockchain-solutions
ok, thank you
Hi all,
we had setup hyperledger fabric 1.4.2 version in kubernetes cluster with 6 org with 2 peers. Is it possible to use caliper in kubernetes setup? If yes how?
Added some guidelines to the issue you opened: https://github.com/hyperledger/caliper/issues/855
Hi all, are there any recomendations about the minimun specs of a machine to run a worker load on? Thanks!
Has joined the channel.
Hello everyone,
I get this error when running caliper
error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Could not parse enrollment response [Client sent an HTTP request to an HTTPS server.
any idea why and how to fix it?
@PamudithaNavaratne Based on the error message, I think TLS is configured on the CA but you set its address as HTTP. But we need a bit more context to determine the exact cause.
Take a single machine, and check the maximum send rate a single worker can produce (possibly affected by your workload logic). A worker will take up maximum a single CPU core (possibly less), so monitor your resource usages to determine how many workers can you fit on a machine. Then use as many machines as needed. The master process and the mqtt broker shouldn't need much. Since Caliper doesn't store much about the benchmark execution, there's no minimum required config.
Has joined the channel.
Hi, every one
I m developer of golang. Started to hands on the hyperledger Caliper tools. Can I post relevant questions in here later?
absolutely
I am trying to set up the remote worker modules and the container keeps stuck on initializing MQTT:
```2020.06.08-15:33:45.025 info [caliper] [mqtt-worker-messenger] Initializing MQTT messenger ... ```
I am trying to set up the remote worker modules and the container keeps stuck on initializing MQTT:
```2020.06.08-15:33:45.025 info [caliper] [mqtt-worker-messenger] Initializing MQTT messenger ... ```
Before that, I also get some warning:
```
home/node/.node-gyp/10.16.3/include/node/v8.h: In instantiation of 'void v8::PersistentBase
I am trying to set up the remote worker modules and the container keeps stuck on initializing MQTT:
```
2020.06.08-15:33:45.025 info [caliper] [mqtt-worker-messenger] Initializing MQTT messenger ...
```
Before that, I also get some warning:
```
home/node/.node-gyp/10.16.3/include/node/v8.h: In instantiation of 'void v8::PersistentBase
I am trying to set up the remote worker modules and the container keeps stuck on initializing MQTT:
```
2020.06.08-15:33:45.025 info [caliper] [mqtt-worker-messenger] Initializing MQTT messenger ...
```
Before that, I also get some warning:
```
home/node/.node-gyp/10.16.3/include/node/v8.h: In instantiation of 'void v8::PersistentBase
that's not normal - not sure about the latter, but I have witnessed the former by using the incorrect mqtt url (try container-name:port)
Thank you @nkl199 , but I still got the same problem.
I am trying to run the worker like this:
```
docker run \
-p 1883:1883 \
-v $PWD:/hyperledger/caliper/workspace \
-e CALIPER_BIND_SUT=fabric:2.1.0 \
-e CALIPER_BENCHCONFIG=benchmarks/query.yaml \
-e CALIPER_NETWORKCONFIG=networks/poc.yaml \
-e CALIPER_WORKER_REMOTE=true \
-e CALIPER_WORKER_COMMUNICATION_METHOD=mqtt \
-e CALIPER_WORKER_COMMUNICATION_ADDRESS=mqtt://caliper_1:1883 \
--name caliper_1 hyperledger/caliper:0.3.1 launch worker
```
Do you see something wrong with the way I run it?
Thank you @nkl199 , but I still got the same problem.
I am trying to run the worker like this:
```
docker run \
-p 1883:1883 \
-v $PWD:/hyperledger/caliper/workspace \
-e CALIPER_BIND_SUT=fabric:2.1.0 \
-e CALIPER_BENCHCONFIG=benchmarks/query.yaml \
-e CALIPER_NETWORKCONFIG=networks/poc.yaml \
-e CALIPER_WORKER_REMOTE=true \
-e CALIPER_WORKER_COMMUNICATION_METHOD=mqtt \
-e CALIPER_WORKER_COMMUNICATION_ADDRESS=mqtt://caliper_1:1883 \
--name caliper_1 hyperledger/caliper:0.3.1 launch worker
```
Do you see something wrong with the way I run it?
Has joined the channel.
hello everyone, i'm still very beginning in learning caliper. I'm trying to implement caliper on my existing fabric network. In the documentation, it stated line like this "--caliper-networkconfig networks/fabric/v1/v1.4.4/2org1peerleveldb_rFT/fabric-go-tls.yaml" so does that mean i need to convert my currently working network's yaml file to caliper yaml file? i'm quite confused as in fabric, the implementation of fabric network is quite long and i have multiple file for yaml file. what i don't understand is:
1. does network implementation in caliper stop before initiating chaincode?
2. Can i use my fabric's yaml file as it is without changing anything (i use npm caliper, not the docker one)?
3. Does chaincode on fabric network doesn't affect caliper at all then? (i can't see anything related to chaincode in caliper-benchmarks)
Thanks, I was doing the distributed deployment and I hadn't set op my mqtt broker correctly, but now it is working.
I have another question though, and that is if it is normal that my worker container exits after having executed a workload or is there some way to keep the container running?
`2020.06.09-19:50:07.220 info [caliper] [message-handler] Handling "exit" message`
this is currently by design
(helps in kubernetes configs)
Ok, got it, thanks @nkl199 ! I don't know Kubernetes yet, so I will try to just restart the containers with systemd automatically every time they exit, or do you know a better way from your experience?
Ok, got it, thanks @nkl199 ! I don't know Kubernetes yet, so for now I will try to just restart the containers with systemd automatically every time they exit, or do you know a better way from your experience?
not yet - though if you would benefit with being able to keep the containers alive upon benchmark completion, someone else might ... so a config option there would be handy => feel free to raise an issue for it
ok, i managed to build caliper based on my fabric and it all run well until i instantiated existing marble chaincode in caliper-benchmark, whatever i do it always return "Failed to generate platform-specific docker build: Error returned from build: 1 "/opt/go/pkg/tool/linux_amd64/link: signal: killed" anyone can help me with it? i searched on forums and they say it was memory issue but i checked on activity monitor and my memory still have 5 gb left (i'm running on macos catalina, is that an issue maybe?)
I started them with ```docker run -dit --restart always```, so like this:
```
docker run \
-dit \
--restart always \
-v $PWD:/hyperledger/caliper/workspace \
-e CALIPER_BIND_SUT=fabric:2.1.0 \
-e CALIPER_BENCHCONFIG=benchmarks/query.yaml \
-e CALIPER_NETWORKCONFIG=networks/poc.yaml \
-e CALIPER_WORKER_REMOTE=true \
-e CALIPER_WORKER_COMMUNICATION_METHOD=mqtt \
-e CALIPER_WORKER_COMMUNICATION_ADDRESS=mqtt://52.269.295.130:1883 \
--name caliper_1 hyperledger/caliper:0.3.1 launch worker
```
and that makes them restart every time after exiting again, so it's all good, I don't think a configuration option is really needed then, or what do you think?
I started them with `docker run -dit --restart always`, so like this:
```
docker run \
-dit \
--restart always \
-v $PWD:/hyperledger/caliper/workspace \
-e CALIPER_BIND_SUT=fabric:2.1.0 \
-e CALIPER_BENCHCONFIG=benchmarks/query.yaml \
-e CALIPER_NETWORKCONFIG=networks/poc.yaml \
-e CALIPER_WORKER_REMOTE=true \
-e CALIPER_WORKER_COMMUNICATION_METHOD=mqtt \
-e CALIPER_WORKER_COMMUNICATION_ADDRESS=mqtt://52.269.295.130:1883 \
--name caliper_1 hyperledger/caliper:0.3.1 launch worker
```
and that makes them restart every time after exiting again, so it's all good, I don't think a configuration option is really needed then, or what do you think?
Has joined the channel.
Hi, I just opened a PR on caliper repo: https://github.com/hyperledger/caliper/pull/861. Can I get some help from the maintainers to review it?
@braduf What is your use case for keeping a worker running once it's done its job?
it will be looked at, there's a growing back log for us to process ... but we will get there!
okay, thanks
Hi, What does Caliper consider a transaction (specifically for writes): is it the entire data flow from proposal, transaction to orderer and finally the block being written, or is it something else?
@GBECBWP The TX is measured from the time Caliper submits it to the time a result is returned to Caliper (for non-queries, when the block is written and the event notification arrives).
I assume you are referring to Fabric here, which results in a slightly more complicated answer to what you might be hoping for! In all cases, Caliper considers the entire data flow, so you can consider it to be client centric ... ie it will be what a client using the SDK would also observe from their own application
- if not using a gateway, the transaction timing is started and the point at which the transaction body is constructed and stopped after the orderer event has been detected
- if using a gateway, the transaction timing is bound to either side of the gateway.submit/evaluate and this will depend on the event/query strategy that is being used
Has joined the channel.
Hi, I don't knof if someone can help me with this problem trying to launch caliper benchmark over one contract I am trying to test instead of simple.json, when I launch it I have the next error error [caliper] [ethereum.js] TypeError: contractInfo.contract.methods[methodCall.verb] is not a function. I have a contract called saturator with two simple functions
Hi, I don't knof if someone can help me with this problem trying to launch caliper benchmark over one contract I am trying to test instead of simple.json, when I launch it I have the next error error [caliper] [ethereum.js] TypeError: contractInfo.contract.methods[methodCall.verb] is not a function. I have a contract called saturator with two simple functions. I am doing it over etherum
resolved now
@klenik well, I am not using Kubernetes to deploy worker loads, I am manually creating some virtual machinges in AWS and starting the worker load containers on them. I am then launching the master from my local machine. SInce I am still figuring out how to set up and connect everything, I have to do the benchmarking every time I make some chance to see if everything still works. How I got it to work is first starting the all worker loads, and then launching the master with the benchmarking configuration I want to execute. So after every time It executed a benchmarking, I don't want to have to start every worker load again before being able to execute another benchmarking configuration to try other things out, so it is handy that the containers start automatically again instead of me having to start them. Or is it not normal that I have to start them manually? Should they being start automatically when the master is launched maybe? But how then?
@klenik well, I am not using Kubernetes to deploy worker loads, I am manually creating some virtual machinges in AWS and starting the worker load containers on them. I am then launching the master from my local machine. SInce I am still figuring out how to set up and connect everything, I have to do the benchmarking every time I make some change to see if everything still works. How I got it to work is first starting the all worker loads, and then launching the master with the benchmarking configuration I want to execute. So after every time It executed a benchmarking, I don't want to have to start every worker load again before being able to execute another benchmarking configuration to try other things out, so it is handy that the containers start automatically again instead of me having to start them. Or is it not normal that I have to start them manually? Should they being start automatically when the master is launched maybe? But how then?
@klenik well, I am not using Kubernetes to deploy worker loads, I am manually creating some virtual machinges in AWS and starting the worker load containers on them. I am then launching the master from my local machine. SInce I am still figuring out how to set up and connect everything, I have to do the benchmarking every time I make some change to see if everything still works. How I got it to work is first starting all worker loads, and then launching the master with the benchmarking configuration I want to execute. So after every time It executed a benchmarking, I don't want to have to start every worker load again before being able to execute another benchmarking configuration to try other things out, so it is handy that the containers start automatically again instead of me having to start them. Or is it not normal that I have to start them manually? Should they being start automatically when the master is launched maybe? But how then?
@klenik well, I am not using Kubernetes to deploy worker loads, I am manually creating some virtual machinges in AWS and starting the worker load containers on them. I am then launching the master from my local machine. SInce I am still figuring out how to set up and connect everything, I have to do the benchmarking every time I make some change to see if everything still works. How I got it to work is first starting all worker loads, and then launching the master with the benchmarking configuration I want to execute. So after every time It executed a benchmarking, I don't want to have to start every worker load again before being able to execute another benchmarking configuration to try other things out, so it is handy that the containers start automatically again instead of me having to start them. Or is it not normal that I have to start them manually? Should they be started automatically when the master is launched maybe? But how then?
@klenik well, I am not using Kubernetes to deploy worker loads, I am manually creating some virtual machinges in AWS and starting the worker load containers on them. I am then launching the master from my local machine. SInce I am still figuring out how to set up and connect everything, I have to do the benchmarking every time I make some change to see if everything still works. How I got it to work is first starting all worker loads, and then launching the master with the benchmarking configuration I want to execute. So after every time It executed a benchmarking, I don't want to have to start every worker load again before being able to execute another benchmarking configuration to try other things out, so it is handy that the containers start automatically again instead of me having to start them. Or is it not normal that I have to start them manually? Should they be started automatically when the master is launched maybe? But how then?
Thanks a lot for the time you are taking for this, very much appreciated!
If you use the distributed setup, then the master can't launch them. So you have to start them manually (whatever that means depends on your deployment method). Keeping the workers running is a nice trick to save some time during development :)
@klenik Ok, great, thanks a lot for the clarification. So I am not doing anything too weird then hahaha.
For the moment I am still in development indeed and so its handy to keep them running. What would be the recommended way in production? Just deploying everything automatically in the moment you want to do a benchmarking and then cleaning up everything afterwards again? So having good automatic deployment seems important then, right? Do you advise Kubernetes for it or any other tools?
Thanks a lot!
docker swarm and kubernetes are popular
Yep, swarm or k8s is an easy way to manage containers/services. You only have to initialize your cluster once, then k8s/swarm will handle the deployment of services for you. Take a look at this thread: https://github.com/hyperledger/caliper/issues/855
Great, that thread is very helpful, thanks a lot!
Yes, I meant Fabric - apologies for not stating.
Using the following: https://hyperledger.github.io/fabric-sdk-node/release-1.4/tutorial-listening-to-events.html
So when (2) is emitted? (I'm assuming that transaction commit here implies the block has been written?)
Thank you @klenik
Has joined the channel.
Hello guys, hope you are doing well.
Can anybody share the resources on testing Ethereum performance using caliper except official documentation.?
Thanks in advance.
Has joined the channel.
H All,
I'm trying with "Distributed message broker communication" But while launching worker, I received below error.. Any one help to resolve this error ?
Error: Process-based communication is configured for the worker, but it does not have a parent process
at Function.handler (/home/ubuntu/caliper/caliper-benchmarks/node_modules/@hyperledger/caliper-cli/lib/launch/lib/launchWorker.js:62:19)
at
looks like you might be missing a few configuration settings, in this case worker communication method and address (https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/fabric_tests/caliper.yaml)
Thanks a lot for your information.. Let me look it
Has joined the channel.
Hello everyone,
I am trying to run the installation tutorial for caliper available here: https://hyperledger.github.io/caliper/v0.3.1/installing-caliper/
So, the steps that I completed successfully are the following:
cloned the caliper-benchmarks repository,
cd-ed into it,
checked out v0.3.0
Hello everyone,
I am trying to run the installation tutorial for caliper available here: https://hyperledger.github.io/caliper/v0.3.1/installing-caliper/
So, the steps that I completed successfully are the following:
cloned the caliper-benchmarks repository,
cd-ed into it,
checked out v0.3.0
ran npm init -y,
ran npm install --only=prod @hyperledger/caliper-cli@0.3.0
cd-ed into networks/fabric/config-solo and ran /.generate.sh
Lastly, I ran the command: npx caliper launch master \
--caliper-bind-sut fabric:1.4.0 \
--caliper-workspace . \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
But the following error appears:
error [caliper] [caliper-engine] Error while performing "install" step: Error: Invalid endorsement for marbles@v0 in mychannel from peer0.org1.example.com: error starting container: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "/chaincode/input/src/fabric/samples/marbles/go/marbles.go:110:2: cannot find package "github.com/hyperledger/fabric/core/chaincode/shim" and the benchmark fails with error code 5. Any help would be appreciated
I tried to clone the fabric repository v1.4 into /usr/local/go/ but the problem still persists. Any ideas how it could be solved?
Has joined the channel.
does caliper support hyperledger fabric v.2.0.1
you can use either the 1.4.8 or 2.1.0 binding to interact with the v2 versions of Fabric. Please note administrative actions are only possible with the 1.4.8 binding
:tada: *Caliper 0.3.2 has now been released* :tada: The maintainers are putting effort into a 0.4 version next, which will come with (as the semver should indicate) some substantial breaking changes, but it is all aimed at making Caliper even better :thumbsup:
thank you
Hello everyone,
Can you point me to some resources on how to benchmark an existing fabric network using caliper? How can I attach caliper to an existing network?
whilst out of date, this is still a relatively good guide: https://developer.ibm.com/technologies/blockchain/tutorials/blockchain-performance-testing-smart-contracts-vscode-caliper
Thank you very much! I will look into it.
Has joined the channel.
Hello everyone, we are maintaining a besu network with 4 nodes using IBFT2.0. Lately, i'm trying to benchmark it with caliper but i'm not able to attach caliper with the network. I tried to apply steps in the guide you shared before "Performance testing smart contracts developed within VS Code using Hyperledger Caliper" but it is still confusing when it comes to Besu and its Caliper test assets?
the integration tests might offer more relevant information: https://github.com/hyperledger/caliper/tree/master/packages/caliper-tests-integration/besu_tests
Thank you i will look into it.
Has joined the channel.
Has joined the channel.
Hi team, I am trying to deploy caliper using ethereum. When I run `npx caliper launch master --caliper-bind-sut ethereum --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/ethereum/1node-clique/ethereum.json --caliper-workspace ./
` the output is: `Ethereum benchmarks must not use http(s) RPC connections, as there is no way to guarantee the order of submitted transactions when using other transports`. Does anyone know how to fix it ? Thank you
ah, willing to bet the current samples are doing exactly what is now not permitted! We do run samples in our builds though, so if you check out the material here: https://github.com/hyperledger/caliper/tree/v0.3.2/packages/caliper-tests-integration/ethereum_tests you should see a better example. ONce you solve it, feel free to raise a PR on the benchmarks repo ;-)
Hello, does anybody know how I could calculate the transaction and read latency manually? I can't seem to get caliper to work, so I'm wondering how to do that through a script or a program.
You can check the source code how caliper does this. AFAIK it is a bit more involved with regards to specifying finality.
Has joined the channel.
Hello,
I am getting error as below:
Caliper currently only supports gateway based operation using the 2.1.0 Fabric-SDK. Please retry with the gateway flag
Where I have to provide gateway flag?
COnfiguration:
services:
caliper:
container_name: caliper
image: hyperledger/caliper:0.3.1
command: launch master
environment:
- CALIPER_BIND_SUT=fabric:2.1.0
- CALIPER_BENCHCONFIG=benchmarks/scenario/simple/pavan/config.yaml
- CALIPER_NETWORKCONFIG=networks/fabric/pavan/network-config.yaml
volumes:
- ./caliper-benchmarks:/hyperledger/caliper/workspace
network_mode: host
Please let me know for more information.
Thanks in advance.
Has joined the channel.
Were you able to fix it? I am facing similar issues as well
Hey, i was setting up caliper using the docker image and run the following command:
user@ubuntu:~/caliper-benchmarks$ docker run \
-v $PWD:/hyperledger/caliper/workspace \
-e CALIPER_BIND_SUT=fabric:1.4.0 \
-e CALIPER_BENCHCONFIG=benchmarks/scenario/simple/config.yaml \
-e CALIPER_NETWORKCONFIG=networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml \
--name caliper hyperledger/caliper:0.3.0 launch master
I got the following error:
2020-06-20T14:20:29.617Z - error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054], stack=Error: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]
at ClientRequest.request.on (/home/node/.npm-global/lib/node_modules/fabric-ca-client/lib/FabricCAClient.js:487:12)
at ClientRequest.emit (events.js:198:13)
at Socket.socketErrorListener (_http_client.js:392:9)
at Socket.emit (events.js:198:13)
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
2020.06.20-14:20:29.618 error [caliper] [caliper-engine] Error while performing "init" step: Error: Couldn't enroll Org1's registrar or set it as user context: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]
2020.06.20-14:20:29.618 info [caliper] [caliper-engine] Executed "init" step in 0.406 seconds
2020.06.20-14:20:29.618 info [caliper] [caliper-utils] Executing command: cd /hyperledger/caliper/workspace; docker-compose -f networks/fabric/docker-compose/2org1peergoleveldb/docker-compose.yaml down;(test -z \"$(docker ps -aq)\") || docker rm $(docker ps -aq);(test -z \"$(docker images dev* -q)\") || docker rmi $(docker images dev* -q);rm -rf /tmp/hfc-*
/bin/sh: docker-compose: not found
/bin/sh: docker: not found
/bin/sh: docker: not found
/bin/sh: docker: not found
/bin/sh: docker: not found
/bin/sh: docker: not found
/bin/sh: docker: not found
2020.06.20-14:20:29.625 info [caliper] [caliper-engine] Executed end command in 0.007 seconds
2020.06.20-14:20:29.626 error [caliper] [cli-launch-master] Benchmark failed with error code 4
Usage:
caliper launch master --caliper-bind-sut fabric:1.4.1 [other options]
Options:
--help, -h Show usage information [boolean]
--version Show version information [boolean]
--caliper-bind-sut The name and version of the platform to bind to [string]
--caliper-bind-cwd The working directory for performing the SDK install [string]
--caliper-bind-args Additional arguments to pass to "npm install". Use the "=" notation when setting this parameter [string]
--caliper-bind-file Yaml file to override default (supported) package versions when binding an SDK [string]
Error: Benchmark failed with error code 4
at Function.handler (/home/node/.npm-global/lib/node_modules/@hyperledger/caliper-cli/lib/launch/lib/launchMaster.js:70:23)
at process._tickCallback (internal/process/next_tick.js:68:7)
Can someone please help?
ECONNREFUSED - connection error. Either the network does not exit, or the credentials you are trying to use are incorrect
As noted by the end of the following doc section, spinning up a docker network inside the caliper container won't work currently. You need to add the caliper service to the compose file.
https://hyperledger.github.io/caliper/v0.3.2/installing-caliper/#using-the-docker-image
Take a look at the following Docker compose file (using the official image instead of the test image) and related artifacts.
https://github.com/hyperledger/caliper/tree/master/packages/caliper-tests-integration/fabric_docker_local_tests
Hello team, I am trying to use caliper to benchmark iroha. Open and Query give me 100ù
Hello team, I am trying to use caliper to benchmark iroha. Open and Query give me 100% success, but 0% transfer. I am having this error:
`error [caliper] [iroha.js] TypeError: Cannot read property 'charAt' of undefined
Error: Unknown verb for "simple" contract`
Can someone help to fix it please.
Thank you!
Hey,
I am running the benchmarking command from the installation tutorial, namely this:
npx caliper launch master \
--caliper-bind-sut fabric:1.4.0 \
--caliper-workspace . \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
At the end, the report is generated but the resource utilization for the rounds is empty. Any idea why this happens?
The only things that I modified were the txNumber, the tps and the money for each round.
Thank you.
Hey,
I am running the benchmarking command from the installation tutorial, namely this:
npx caliper launch master \
--caliper-bind-sut fabric:1.4.0 \
--caliper-workspace . \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
At the end, the report is generated but the resource utilization for the rounds is empty. Any idea why this happens?
The only things that I modified were the txNumber, the tps and the money for each round.
Could this be due to the fact that I perform the tests inside a virtual machine?
Thank you.
Has joined the channel.
Hi everyone, Please to join you all here!
I was wondering if anyone can point me to tutorial or guide on how to setup & run Caliper on a private ethereum multi-node network? Thanks!
hey can you please give more detailed instructions
Also, does caliper support injecting load through multiple nodes? How do I set it up? Thanks
Has joined the channel.
Hi,
I just started using Caliper to test a Hyperledger Fabric network. I am having a problem with Caliper using my network config file.
In my network I have one channel common to both organizations and one channel with only one organization, as follows:
channel0 including only Org0
channel2 including Org0 and Org1
In the network config file I have therefore defined two clients: one for each organization:
client0 from Org0
client1 from Org1
I set CALIPER_FABRIC_GATEWAY_USEGATEWAY, CALIPER_FABRIC_GATEWAY_DISCOVERY and CALIPER_FLOW_ONLY_TEST to true.
So I get an error at the beginning of the benchcmark because Caliper is trying to interact with channel0 using client 0.
Is there a solution other than creating two different network files? One for each channel? There is no way to indicate that client 0 should only interact with channel 1?
Hi,
I just started using Caliper to test a Hyperledger Fabric network. I am having a problem with Caliper using my network config file.
In my network I have one channel common to both organizations and one channel with only one organization, as follows:
channel0 including only Org0
channel2 including Org0 and Org1
In the network config file I have therefore defined two clients: one for each organization:
client0 from Org0
client1 from Org1
I set CALIPER_FABRIC_GATEWAY_USEGATEWAY, CALIPER_FABRIC_GATEWAY_DISCOVERY and CALIPER_FLOW_ONLY_TEST to true.
So I get an error at the beginning of the benchcmark because Caliper is trying to interact with channel0 using client 0.
Is there a solution other than creating two different network files? One for each channel? There is no way to indicate that client 0 should only interact with channel 1?
Hi,
I just started using Caliper to test a Hyperledger Fabric network. I am having a problem with Caliper using my network config file.
In my network I have one channel common to both organizations and one channel with only one organization, as follows:
channel0 including only Org0
channel1 including Org0 and Org1
In the network config file I have therefore defined two clients: one for each organization:
client0 from Org0
client1 from Org1
I set CALIPER_FABRIC_GATEWAY_USEGATEWAY, CALIPER_FABRIC_GATEWAY_DISCOVERY and CALIPER_FLOW_ONLY_TEST to true.
So I get an error at the beginning of the benchcmark because Caliper is trying to interact with channel0 using client 0.
Is there a solution other than creating two different network files? One for each channel? There is no way to indicate that client 0 should only interact with channel 1?
Hi,
I just started using Caliper to test a Hyperledger Fabric network. I am having a problem with Caliper using my network config file.
In my network I have one channel common to both organizations and one channel with only one organization, as follows:
channel0 including only Org1
channel1 including Org0 and Org1
In the network config file I have therefore defined two clients: one for each organization:
client0 from Org0
client1 from Org1
I set CALIPER_FABRIC_GATEWAY_USEGATEWAY, CALIPER_FABRIC_GATEWAY_DISCOVERY and CALIPER_FLOW_ONLY_TEST to true.
So I get an error at the beginning of the benchcmark because Caliper is trying to interact with channel0 using client 0.
Is there a solution other than creating two different network files? One for each channel? There is no way to indicate that client 0 should only interact with channel 1?
Hi,
I just started using Caliper to test a Hyperledger Fabric network. I am having a problem with Caliper using my network config file.
I'm using Fabric 1.4.6.
In my network I have one channel common to both organizations and one channel with only one organization, as follows:
channel0 including only Org1
channel1 including Org0 and Org1
In the network config file I have therefore defined two clients: one for each organization:
client0 from Org0
client1 from Org1
I set CALIPER_FABRIC_GATEWAY_USEGATEWAY, CALIPER_FABRIC_GATEWAY_DISCOVERY and CALIPER_FLOW_ONLY_TEST to true.
So I get an error at the beginning of the benchcmark because Caliper is trying to interact with channel0 using client 0.
Is there a solution other than creating two different network files? One for each channel? There is no way to indicate that client 0 should only interact with channel 1?
Hi,
I just started using Caliper to test a Hyperledger Fabric network. I am having a problem with Caliper using my network config file.
I'm using Fabric 1.4.6.
In my network I have one channel common to both organizations and one channel with only one organization, as follows:
channel0 including only Org0
channel1 including Org0 and Org1
In the network config file I have therefore defined two clients: one for each organization:
client0 from Org0
client1 from Org1
I set CALIPER_FABRIC_GATEWAY_USEGATEWAY, CALIPER_FABRIC_GATEWAY_DISCOVERY and CALIPER_FLOW_ONLY_TEST to true.
So I get an error at the beginning of the benchcmark because Caliper is trying to interact with channel0 using client 0.
Is there a solution other than creating two different network files? One for each channel? There is no way to indicate that client 0 should only interact with channel 1?
Hi,
I just started using Caliper to test a Hyperledger Fabric network. I am having a problem with Caliper using my network config file.
I'm using Fabric 1.4.6.
In my network I have one channel common to both organizations and one channel with only one organization, as follows:
channel0 including Org0 and Org1
channel1 including only Org1
In the network config file I have therefore defined two clients: one for each organization:
client0 from Org0
client1 from Org1
I set CALIPER_FABRIC_GATEWAY_USEGATEWAY, CALIPER_FABRIC_GATEWAY_DISCOVERY and CALIPER_FLOW_ONLY_TEST to true.
So I get an error at the beginning of the benchcmark because Caliper is trying to interact with channel1 using client0.
Is there a solution other than creating two different network files? One for each channel? There is no way to indicate that client 0 should only interact with channel 1?
Hi,
I just started using Caliper to test a Hyperledger Fabric network. I am having a problem with Caliper using my network config file.
I'm using Fabric 1.4.6.
In my network I have one channel common to both organizations and one channel with only one organization, as follows:
channel0 including Org0 and Org1
channel1 including only Org1
In the network config file I have therefore defined two clients: one for each organization:
client0 from Org0
client1 from Org1
I set CALIPER_FABRIC_GATEWAY_USEGATEWAY, CALIPER_FABRIC_GATEWAY_DISCOVERY and CALIPER_FLOW_ONLY_TEST to true.
So I get an error at the beginning of the benchcmark because Caliper is trying to interact with channel1 using client0.
Is there a solution other than creating two different network files? One for each channel? There is no way to indicate that client 0 should only interact with channel0?
Has joined the channel.
Hi guys, I'm running a caliper with an existing fabric 2.1.0 as SUT. My command is `
npx caliper launch master --caliper-bind-sut fabric:2.1.0 --caliper-workspace caliper/ --caliper-benchconfig benchmarks/fabcar/config.yaml --caliper-networkconfig fabric-go-tls.yaml --caliper-flow-only-test --caliper-fabric-gateway-usegateway --caliper-fabric-gateway-discovery` and I'm getting Benchmark failed with error code 6. I looked at the code and as far as I understand, error code 6 is something broad, and the error message I'm getting is `error [caliper] [caliper-engine] Error while performing "test" step: TypeError: Cannot read property 'length' of undefined`
Can anyone give me a pointer on where to check / debug this error code?
Thanks
Hi guys, I'm running a caliper with an existing fabric 2.1.0 as SUT. My command is `
npx caliper launch master --caliper-bind-sut fabric:2.1.0 --caliper-workspace caliper/ --caliper-benchconfig benchmarks/fabcar/config.yaml --caliper-networkconfig fabric-go-tls.yaml --caliper-flow-only-test --caliper-fabric-gateway-usegateway --caliper-fabric-gateway-discovery` and I'm getting Benchmark failed with error code 6.
looked at the code and as far as I understand, error code 6 is something broad, and the error message I'm getting is `error [caliper] [caliper-engine] Error while performing "test" step: TypeError: Cannot read property 'length' of undefined`
Can anyone give me a pointer on where to check / debug this error code?
Thanks
Hey guys,
While binding fabric 2.1.0 using docker compose, it tells me to use a gateway flag. How exactly do I do that?
what version are you using?
Hey,
I made a couple of changes and was using setting up caliper 0.3.2 using docker images for fabric 2.1.0
I got the following error:
caliper | 2020.06.22-19:30:14.572 info [caliper] [adapters/fabric] Initializing administrators
caliper | 2020.06.22-19:30:14.572 info [caliper] [adapters/fabric] No admin.Org1 found in caliper configuration file - unable to perform admin options
caliper | 2020.06.22-19:30:14.572 info [caliper] [adapters/fabric] No admin.Org2 found in caliper configuration file - unable to perform admin options
caliper | 2020-06-22T19:30:14.647Z - error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054], stack=Error: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]
caliper | at ClientRequest.request.on (/home/node/.npm-global/lib/node_modules/fabric-ca-client/lib/FabricCAClient.js:484:12)
caliper | at ClientRequest.emit (events.js:198:13)
caliper | at TLSSocket.socketErrorListener (_http_client.js:392:9)
caliper | at TLSSocket.emit (events.js:198:13)
caliper | at emitErrorNT (internal/streams/destroy.js:91:8)
caliper | at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
caliper | at process._tickCallback (internal/process/next_tick.js:63:19)
caliper | 2020.06.22-19:30:14.647 error [caliper] [message-handler] Handled unsuccessful "init" message for worker 0, with error: Error: Couldn't enroll 'user' admin: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]
caliper | at RegistrarHelper.enrollUser (/home/node/.npm-global/lib/node_modules/@hyperledger/caliper-cli/node_modules/@hyperledger/caliper-fabric/lib/adaptor-versions/v2/registrarHelper.js:212:19)
caliper | at process._tickCallback (internal/process/next_tick.js:68:7)
caliper | 2020.06.22-19:30:14.648 error [caliper] [round-orchestrator] Failed round 3 (transfer): Error: Error: Couldn't enroll 'user' admin: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]
caliper | at WorkerOrchestrator.updateWorkerPhase (/home/node/.npm-global/lib/node_modules/@hyperledger/caliper-core/lib/master/orchestrators/worker-orchestrator.js:198:49)
caliper | at WorkerOrchestrator.processWorkerUpdate (/home/node/.npm-global/lib/node_modules/@hyperledger/caliper-core/lib/master/orchestrators/worker-orchestrator.js:120:18)
caliper | at ChildProcess.
Hey,
I made a couple of changes and was using setting up caliper 0.3.2 using docker compose for fabric 2.1.0
I got the following error:
caliper | 2020.06.22-19:30:14.572 info [caliper] [adapters/fabric] Initializing administrators
caliper | 2020.06.22-19:30:14.572 info [caliper] [adapters/fabric] No admin.Org1 found in caliper configuration file - unable to perform admin options
caliper | 2020.06.22-19:30:14.572 info [caliper] [adapters/fabric] No admin.Org2 found in caliper configuration file - unable to perform admin options
caliper | 2020-06-22T19:30:14.647Z - error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054], stack=Error: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]
caliper | at ClientRequest.request.on (/home/node/.npm-global/lib/node_modules/fabric-ca-client/lib/FabricCAClient.js:484:12)
caliper | at ClientRequest.emit (events.js:198:13)
caliper | at TLSSocket.socketErrorListener (_http_client.js:392:9)
caliper | at TLSSocket.emit (events.js:198:13)
caliper | at emitErrorNT (internal/streams/destroy.js:91:8)
caliper | at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
caliper | at process._tickCallback (internal/process/next_tick.js:63:19)
caliper | 2020.06.22-19:30:14.647 error [caliper] [message-handler] Handled unsuccessful "init" message for worker 0, with error: Error: Couldn't enroll 'user' admin: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]
caliper | at RegistrarHelper.enrollUser (/home/node/.npm-global/lib/node_modules/@hyperledger/caliper-cli/node_modules/@hyperledger/caliper-fabric/lib/adaptor-versions/v2/registrarHelper.js:212:19)
caliper | at process._tickCallback (internal/process/next_tick.js:68:7)
caliper | 2020.06.22-19:30:14.648 error [caliper] [round-orchestrator] Failed round 3 (transfer): Error: Error: Couldn't enroll 'user' admin: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]
caliper | at WorkerOrchestrator.updateWorkerPhase (/home/node/.npm-global/lib/node_modules/@hyperledger/caliper-core/lib/master/orchestrators/worker-orchestrator.js:198:49)
caliper | at WorkerOrchestrator.processWorkerUpdate (/home/node/.npm-global/lib/node_modules/@hyperledger/caliper-core/lib/master/orchestrators/worker-orchestrator.js:120:18)
caliper | at ChildProcess.
within the callback, you can explicitly name the client to use to issue the transaction (`invokerIdentity` as an args parameter) otherwise caliper will pick one for you. Since you will likely be using the same callback for both clients, it would probably make sense to assign clients within the init stage of the callback, since you will have access to the zero based worker index (ie odd worker numbers use clientID0, even use clientID1)
Is the network created already?
I created the network using ./startFabric.sh command in fabcar of fabric-samples
I created the network using "./startFabric.sh javascript"command in fabcar of fabric-samples
This was my docker compose file
version: '2'
services:
caliper:
container_name: caliper
image: hyperledger/caliper:0.3.2
command: launch master --caliper-flow-only-test --caliper-fabric-gateway-usegateway
environment:
- CALIPER_BIND_SUT=fabric:latest
- CALIPER_BENCHCONFIG=benchmarks/scenario/simple/config.yaml
- CALIPER_NETWORKCONFIG=networks/fabric/v2/v2.1.0/2org1peercouchdb_raft/fabric-node-tls-solo.yaml
volumes:
- ~/caliper-benchmarks:/hyperledger/caliper/workspace
OK, and did you then create a network file using the mapped credentials for that network? The `ECONNREFUSED 127.0.0.1:7054` on an existing network would imply that the wrong certificates are being used
teh caliper network config file describes the network to connect to, seems that you used an alternative script to create a network and install smart contracts?
nope....how exactly do i map the credentials?
how do i create a test network using caliper?
we have some samples in https://github.com/hyperledger/caliper-benchmarks
hopefully the readme there will help you create and use a test network ... dont forget to generate the credentials though!
i have created all credentials using ./generate.sh in the four folders....how do i start the test network using caliper-benchmarks?
`caliper launch master --caliper-benchconfig benchmarks/samples/fabric/marbles/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml --caliper-workspace
something like that - ie pick the benchmark (test) the network (target) and specify the root directory comon to those as the workspace
i dont think this starts a test network
it will start the one specified under `--caliper-networkconfig`. Make sure the credentials for it exist, and there are no other networks already "up"
All right, I'll try that.
Thanks!
I think it's a bug in the benchconfig file, where the docker monitor is configured. See the docs for the current syntax: https://hyperledger.github.io/caliper/v0.3.2/caliper-monitors/#docker-monitor
Caliper is added to the docker-compose file as any other service:
https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/fabric_docker_local_tests/docker-compose.yaml#L265
Then in the Caliper network config, you can simple reference the service names of the Fabric nodes:
https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/fabric_docker_local_tests/networkconfig.yaml#L116
Does the doc page help? https://hyperledger.github.io/caliper/v0.3.2/ethereum-config/
Also, there is a sample in the repo: https://github.com/hyperledger/caliper/tree/master/packages/caliper-tests-integration/ethereum_tests
I think the Ethereum/Besu adapter only supports a single target node
The above error log is from the master process. There should be error logs from the worker processes that include detailed stack traces
I defined invokerIdentity to client1 in the approriate callback, but I notice that I got the error well before the execution of the first round in fact, during the preparation phase:
```
2020.06.23-14:54:14.418 info [caliper] [adapters/fabric] Retrieving and persisting contract map for identity admin.Org0
2020.06.23-14:54:14.420 info [caliper] [adapters/fabric] Connecting user admin.Org0 to a Network Gateway
2020.06.23-14:54:14.431 info [caliper] [adapters/fabric] Generating contract map for user admin.Org0
2020-06-23T14:54:14.436Z - error: [Channel.js]: Channel:channel-org1 received discovery error:access denied
2020-06-23T14:54:14.438Z - error: [Channel.js]: Error: Channel:channel-org1 Discovery error:access denied
2020-06-23T14:54:14.459Z - error: [Channel.js]: Channel:private-channel-org1 received discovery error:access denied
2020-06-23T14:54:14.460Z - error: [Channel.js]: Error: Channel:private-channel-org1 Discovery error:access denied
2020-06-23T14:54:14.461Z - error: [Network]: _initializeInternalChannel: Unable to initialize channel. Attempted to contact 2 Peers. Last error was Error: Channel:channel-org1 Discovery error:access denied
2020.06.23-14:54:14.462 info [caliper] [caliper-local-client.js] Client[1] encountered an error during prepare test phase: Error: Unable to initialize channel. Attempted to contact 2 Peers. Last error was Error: Channel:private-channel-org1 Discovery error:access denied
at Network._initializeInternalChannel (/home/node/.npm-global/lib/node_modules/fabric-network/lib/network.js:117:12) ```
It seems he is trying to discover the exclusive channel of Org1 with the admin of Org0
It seems it is trying to discover the exclusive channel of Org1 with the admin of Org0
Hmm, the implementation could be that each client is assumed to have access (would have to check). Permissioned access across channels seems like something we would need to explicitly add as a new feature
Okay. I'll stay tuned if you find something new.
For now I will use one network configuration file per channel.
Thanks.
:thumbup: I do intend to have a good look at the multi-channel story for the fabric adaptors ... if you have any specific requirments, just let us know!]
Unfortunately not
Hello,
I read in the comments above that you can benchmark a fabric network v2.x using caliper and you can issue administrative commands if you bind to v1.4.8
So, the following commands should do the trick:
npx caliper bind --caliper-bind-sut fabric:1.4.0
followed by:
npx caliper launch master \
--caliper-workspace . \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/v2/v2.0.0/2org1peergoleveldb_raft/fabric-go-tls.yaml
However, when trying to install the chaincode, the benchmark crashes like so:
Error returned from build: 1 cannot find package "github.com/hyperledger/fabric/core/chaincode/shim" in any of: ....
This works fine for the 2org1peergoleveldb_raft network from the example in /v1/v1.4.1/ Are there any workarounds?
Hello,
I read in the comments above that you can benchmark a fabric network v2.x using caliper and you can issue administrative commands if you bind to v1.4.8
So, the following commands should do the trick:
npx caliper bind --caliper-bind-sut fabric:1.4.8
followed by:
npx caliper launch master \
--caliper-workspace . \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/v2/v2.0.0/2org1peergoleveldb_raft/fabric-go-tls.yaml
However, when trying to install the chaincode, the benchmark crashes like so:
Error returned from build: 1 cannot find package "github.com/hyperledger/fabric/core/chaincode/shim" in any of: ....
This works fine for the 2org1peergoleveldb_raft network from the example in /v1/v1.4.1/ Are there any workarounds?
Thank you, at the moment the config file is configured like so:
docker:
-all
In order for redsource consumption reports to work, I have to explicitly write the name and the ip of every container?
Hey all. I ran into this issue, when both v1 and v2 Fabric images were present on my machine. The problem is the underlying ccenv image, which doesn't contain the usual shim packages anymore. v1 images somehow try to use the v2 ccenv image when building the chaincode (probably that's the `latest` image) that's why the build fails. Clean up the new ccenv images and try again. If you want to install v2 CCs with Caliper using v1 bindings, then make sure that your installed CC is v2 compatible (vendors the correct shim packages, etc)
No, `all` is a special keyword, so every container will be monitored. So just use the snippet from the docs:
```yaml
docker:
containers:
- all
```
If you have remote containers, then yes, you must list the remote host names (and configure the remote dockerd to allow remote connections)
Thank you! In my configuration I had name: instead of containers: It now displays the resource monitor statistics for all my docker containers
Hi,
I have some questions. I'm using Caliper 0.3.2 with Fabric 1.4.6.
Is it normal that only the metrics of the process monitor appear in the html report and not those of Docker and Prometheus?
Is it also normal that I only have the metric on the CPU usage and not the metric on the memory usage with the process monitor?
Thanks
this would all depend on the configuration files that you pass to caliper
this would all depend on the configuration files/settings that you pass to caliper
this would all depend on the configuration files/settings that you pass to caliper - what are you passing and what would you like?
thanks for the pointers. apparently it's a configuration difference. I used 0.3.2 and the sample configuration that I used is somehow not compatible
Since I have the Docker, Prometheus and process monitor metrics in the benchmark runtime logs, I expected to see them all in the html report, not just the process monitor metrics. And I also wonder why the memory usage metric is blank with the process monitor.
Here is the configuration I have:
```
monitor:
type:
- docker
- process
- prometheus
docker:
containers:
- all
charting:
bar:
metrics: [Memory(avg), CPU%(avg)]
polar:
metrics: [all]
process:
processes:
- command: node
arguments: caliper
charting:
bar:
metrics: [all]
prometheus:
url: "http://localhost:9090"
push_url: "http://localhost:9091"
metrics:
ignore: [prometheus, pushGateway, cadvisor, grafana, node-exporter]
include:
Max Memory (MB):
query: sum(container_memory_rss{name=~".+"}) by (name)
step: 10
label: name
statistic: max
multiplier: 0.000001
charting:
polar:
metrics: [Max Memory (MB)]
bar:
metrics: [all]
interval: 1
observer:
type: prometheus
interval: 1
```
Since I have Docker, Prometheus and process monitor metrics in the benchmark runtime logs, I expected to see them all in the html report, not just the process monitor metrics. And I also wonder why the memory usage metric is blank with the process monitor.
Here is the configuration I have:
```
monitor:
type:
- docker
- process
- prometheus
docker:
containers:
- all
charting:
bar:
metrics: [Memory(avg), CPU%(avg)]
polar:
metrics: [all]
process:
processes:
- command: node
arguments: caliper
charting:
bar:
metrics: [all]
prometheus:
url: "http://localhost:9090"
push_url: "http://localhost:9091"
metrics:
ignore: [prometheus, pushGateway, cadvisor, grafana, node-exporter]
include:
Max Memory (MB):
query: sum(container_memory_rss{name=~".+"}) by (name)
step: 10
label: name
statistic: max
multiplier: 0.000001
charting:
polar:
metrics: [Max Memory (MB)]
bar:
metrics: [all]
interval: 1
observer:
type: prometheus
interval: 1
```
Since I have Docker, Prometheus and process monitor metrics in the benchmark execution logs, I expected to see them all in the html report, not just the process monitor metrics. And I also wonder why the memory usage metric is blank with the process monitor.
Here is the configuration I have:
```
monitor:
type:
- docker
- process
- prometheus
docker:
containers:
- all
charting:
bar:
metrics: [Memory(avg), CPU%(avg)]
polar:
metrics: [all]
process:
processes:
- command: node
arguments: caliper
charting:
bar:
metrics: [all]
prometheus:
url: "http://localhost:9090"
push_url: "http://localhost:9091"
metrics:
ignore: [prometheus, pushGateway, cadvisor, grafana, node-exporter]
include:
Max Memory (MB):
query: sum(container_memory_rss{name=~".+"}) by (name)
step: 10
label: name
statistic: max
multiplier: 0.000001
charting:
polar:
metrics: [Max Memory (MB)]
bar:
metrics: [all]
interval: 1
observer:
type: prometheus
interval: 1
```
so in the process arg, you probably need to be more specific with the process name as it will only pick up on process names that are visible `arguments: fabricClientWorker.js` for example.
so in the process arg, you probably need to be more specific with the process name as it will only pick up on process names that are visible `arguments: fabricClientWorker.js` for example.... hmm, just re-read and you say you are getting cpu but not memory information
so in the process arg, you probably need to be more specific with the process name as it will only pick up on process names that are visible `arguments: fabricClientWorker.js` for example.... hmm, just re-read and you say you are getting cpu but not memory information for the process
looks like you might have grafana in the mix, i'd have a look to see if you are able to see the specified queries there - caliper uses the same Prometheus gateway for queries. I've seen missing data before, and it was a result of the platform I was running on - fixed by changing the volume mounts
looks like you might have grafana in the mix, i'd have a look to see if you are able to see the specified queries there - caliper uses the same Prometheus gateway for queries. I've seen missing data before, and it was a result of the platform I was running on - fixed by changing the volume mounts for docker data
looks like you might have grafana in the mix, i'd have a look to see if you are able to see the specified queries there - caliper uses the same Prometheus gateway for queries. I've seen missing data before, and it was a result of the platform I was running on - fixed by changing the volume mounts for docker data (i was on RHEL)
With "fabricClientWorker.js" as argument, I don't have any metrics, that's why I put "caliper", with that I have at least the metric on the CPU.
Here is the command launching a worker:
```
virtual+ 7006 9.0 0.5 687296 57644 pts/5 Sl+ 16:18 0:00 /home/virtualbox/.nvm/versions/node/v10.15.3/bin/node /home/virtualbox/dev/hyperledger-fabric-minimal-configuration/src/caliper-benchmark/node_modules/.bin/caliper launch worker --caliper-workspace . --caliper-benchconfig benchmarks/trace_detail_cc_benchmark_config.yaml --caliper-networkconfig networks/private_channel_network_config.yaml --caliper-fabric-gateway-usegateway --caliper-fabric-gateway-discovery --caliper-flow-only-test
```
With "fabricClientWorker.js" as argument, I don't have any metrics, that's why I put "caliper", with that I have at least the metric on the CPU.
Here is the command launching a worker:
```
virtual+ 7006 9.0 0.5 687296 57644 pts/5 Sl+ 16:18 0:00 /home/virtualbox/.nvm/versions/node/v10.15.3/bin/node /home/virtualbox/dev/caliper-benchmark/node_modules/.bin/caliper launch worker --caliper-workspace . --caliper-benchconfig benchmarks/trace_detail_cc_benchmark_config.yaml --caliper-networkconfig networks/private_channel_network_config.yaml --caliper-fabric-gateway-usegateway --caliper-fabric-gateway-discovery --caliper-flow-only-test
```
With "fabricClientWorker.js" as argument, I don't have any metrics, that's why I put "caliper", with that I have at least the metric on the CPU.
Here is the command launching a worker:
```
virtual+ 7006 9.0 0.5 687296 57644 pts/5 Sl+ 16:18 0:00 /home/virtualbox/.nvm/versions/node/v10.15.3/bin/node /home/virtualbox/dev/caliper-benchmark/node_modules/.bin/caliper launch worker --caliper-workspace . --caliper-benchconfig benchmarks/benchmark_config.yaml --caliper-networkconfig networks/network_config.yaml --caliper-fabric-gateway-usegateway --caliper-fabric-gateway-discovery --caliper-flow-only-test
```
Yes, I took the example which is in the caliper-benchmark project (version 0.3.0) for prometheus-grafana stack: https://github.com/hyperledger/caliper-benchmarks/tree/master/networks/ prometheus-grafana
wondering if virtualbox in the mix is causing issues
definitely worth logging into the grafana instance that you have and seeing if it displays anything
Has joined the channel.
I'm using virtual-box with Ubuntu desktop 18.04.4
Apart from the points I mentioned above, prometheus-grafana seems to be working well for the moment.
Would you like me to check for the presence of a specific metric in Grafana?
OK, and you can see monitored stats on grafana?
Clipboard - 25 juin 2020 16:50
container_memory_rss ?
that's the query being issued by caliper
Sorry, I had to reboot the computer
no worries
Here is the graph of container_memory_rss:
Clipboard - 25 juin 2020 17:09
how many distinct containers are showing at the current time index?
(not sure if `sum(container_memory_rss{name=~".+"}) by (name)` will help here)
about 10 containers
hmm, ok, so they should certainly be getting detected
and you are running the caliper command via CLI on the ubuntu VM?
with this screenshot, I launched from the Caliper container
and in this case Caliper does not detect the other containers
ah!
ok, yes - in which case it is a networking issue
yes
kinda surprised there were no errors telling you that
ok - so instead of localhost you will need the explicit container name, and all containers should be on the same docker network
I think I have a message like "no container detected" in the logs
ok, that is probably due to the containers being on different networks
yes, i plan to modify the networking
`docker network ls` will tell you the ones being used
then docker netw
`docker network inspect
I launch Caliper container with " --network="host" " so I can reference the others containers with localhot and also launch Caliper from npx
:thinking:
but I'm going to configure the Caliper container to use Faric's container network
for that I will also have to modify grpc urls of the containers of Fabric in the e network config file I suppose, by putting in place of "localhost" the name of the container
target name override in the network config should sort that for you automagiclly
alright
I relaunched the benchmark, this time with npx directly, and here is the graph of container_memory_rss:
Clipboard - 25 juin 2020 17:38
ok
All metrics now appear in the html report: process, Docker and Prometheus
yay!
that's a big gotchya
Would an easy to find fully dockerized example have helped here?
Thanks :)
Yes absolutely, it would have helped
hmm, ok - time to get busy with some tutorials!
Ok :)
Hello,
I'm trying to benchmark the fabric-go.yaml network v1.1 in the caliper-benchmarks. However, when trying to bind to sut v1.1 using the following command:
npx caliper bind \
--caliper-bind-sut fabric:1.1.0
I get the following npm error:
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn sh
npm ERR! file sh
npm ERR! path sh
npm ERR! errno ENOENT
npm ERR! pkcs11js@1.0.21 install: `node-gyp rebuild`
npm ERR! spawn sh ENOENT
npm ERR!
npm ERR! Failed at the pkcs11js@1.0.21 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/username/.npm/_logs/2020-06-25T15_51_30_010Z-debug.log
2020.06.25-18:51:30.030 error [caliper] [bind] Failed to execute "npm" with return code 1.
Any ideas how to deal with this?
Hello,
I'm trying to benchmark the fabric-go.yaml network v1.1 in the caliper-benchmarks. However, when trying to bind to sut v1.1 using the following command:
npx caliper bind \
--caliper-bind-sut fabric:1.1.0
I get the following npm error:
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn sh
npm ERR! file sh
npm ERR! path sh
npm ERR! errno ENOENT
npm ERR! pkcs11js@1.0.21 install: `node-gyp rebuild`
npm ERR! spawn sh ENOENT
npm ERR!
npm ERR! Failed at the pkcs11js@1.0.21 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/username/.npm/_logs/2020-06-25T15_51_30_010Z-debug.log
2020.06.25-18:51:30.030 error [caliper] [bind] Failed to execute "npm" with return code 1.
I'm using caliper v0.3.0
Any ideas how to deal with this?
did you change the caliper version or the config file?
Hello,
I ran the following commands:
npm init -y
npm install --only=prod @hyperledger/caliper-cli@0.3.2
npx caliper bind --caliper-bind-sut fabric:1.1.0
npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/v1/v1.1/2org1peergoleveldb/fabric-go.yaml using caliper v.03.2
The benchmark starts, but I get some errors in each of the three rounds of the benchmark
In round 1:
2020.06.25-20:55:43.653 info [caliper] [caliper-local-client] Info: client 0 start test runFixedNumber():opening accounts
2020.06.25-20:55:43.692 error [caliper] [adapters/fabric] Transaction[7283b4dfae] unexpected error: TypeError: channel.getOrderer is not a function
at Fabric._submitSingleTransaction (/home/username/Desktop/caliperV3/caliper-benchmarks/node_modules/@hyperledger/caliper-fabric/lib/adaptor-versions/v1/fabric-v1.js:1809:35)
at
I changed the configuration file to fit my use case (benchmarking existing Fabric 2 network)
how exactly did u do that?
Sharing Caliper Benchmarking Infrastructure Experiences
Dear Caliper Community,
I have been personally struggling with finding the best Infrastructure setup for Caliper Experiments, Including Cloud resources, Container orchestration options, Resource allocation etc. I created this discussion so the members can share their experimental setups along with the TPS/Latencies they have achieved.
Hey this error just doesn't seem to go away.
I started a network using "./startFabric.sh javascript" in fabcar in fabric-samples. It used fabric version 2.1.0.
I mapped the credentials in peerOrganizations and ordererOrganizations.
I used docker-compose to run caliper and got the following error
caliper | 2020.06.26-14:15:31.398 info [caliper] [adapters/fabric] No admin.Org1 found in caliper configuration file - unable to perform admin options
caliper | 2020.06.26-14:15:31.398 info [caliper] [adapters/fabric] No admin.Org2 found in caliper configuration file - unable to perform admin options
caliper | 2020-06-26T14:15:31.749Z - error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054], stack=Error: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]
caliper | at ClientRequest.request.on (/home/node/.npm-global/lib/node_modules/fabric-ca-client/lib/FabricCAClient.js:484:12)
caliper | at ClientRequest.emit (events.js:198:13)
caliper | at TLSSocket.socketErrorListener (_http_client.js:392:9)
caliper | at TLSSocket.emit (events.js:198:13)
caliper | at emitErrorNT (internal/streams/destroy.js:91:8)
caliper | at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
caliper | at process._tickCallback (internal/process/next_tick.js:63:19)
Can someone pls help?
there is a caliper-benchmark for the fabcar (https://github.com/hyperledger/caliper-benchmarks/tree/master/benchmarks/samples/fabric) that comes complete with a 2.1 network for instant use (https://github.com/hyperledger/caliper-benchmarks/tree/master/networks/fabric/v2/v2.1.0)
What is your actual intent? `./startFabric.sh` is used in the CI pipeline in the samples ... it looks like it also creates a wallet with identities in it fr you to use directly as part of the output. Which means you could "just" use that wallet within caliper and perform a `--caliper-flow-only-test` interaction once you have created the required config and test files. So, kinda like this: https://developer.ibm.com/technologies/blockchain/tutorials/blockchain-performance-testing-smart-contracts-vscode-caliper but using the benchmark and callback files from the caliper-benchmarks repo I linked to above
so first of all, I modify the config.yaml from their github https://github.com/hyperledger/caliper-benchmarks/blob/master/benchmarks/samples/fabric/fabcar/config.yaml but apparently their configuration for `monitor` is not applicable for 0.3.2 - I know this by going through the source code and debug the process. Then I change the configuration to fit the requirement ( previously `monitor.process.command` to `monitor.process.processes.command` )
My intent is to test a blockchain network that I made using fabcar(javascript version)
I am getting this error after following the website.
2020.06.26-19:58:38.398 error [caliper] [cli-launch-master] Unexpected error during benchmark execution: TypeError: Cannot read property 'credentialStore' of undefined
Screenshot from 2020-06-27 01-37-13.png
Screenshot from 2020-06-27 01-37-09.png
My intention is to test fabcar chaincode written in javascript.
After following the instructions given in the lonk, I created the following network-config file and benchmark-config . I used the following docker-compose file to run caliper. Still getting a similar error.
net_conf1.png
net_conf2.png
net_conf.png
net_conf3.png
bench_config.png
docker-comp.png
error.png
Hi all, I am using the distributed deployment of workers and it works until a certain TPS (200 tps) with a throughput of 200 and no failed txs, when I increase the TPS, to 250 for example, the tests also seem to go wel with success in the logs of the workers, but on the moment the tests finish and the client should be disconnected, the workers crash with the following error:
```
node[1]: ../src/node_http2.cc:893:ssize_t node::http2::Http2Session::ConsumeHTTP2Data(): Assertion `(flags_ & SESSION_STATE_READING_STOPPED) != (0)' failed.
```
Does anyone know the reason for this?
Thanks a lot in advance.
Hi all, I am using the distributed deployment of workers and it works until a certain TPS (200 tps) with a throughput of 200 and no failed txs, when I increase the TPS, to 250 for example, the tests also seem to go well with success in the logs of the workers, but on the moment the tests finish and the client should be disconnected, the workers crash with the following error:
```
node[1]: ../src/node_http2.cc:893:ssize_t node::http2::Http2Session::ConsumeHTTP2Data(): Assertion `(flags_ & SESSION_STATE_READING_STOPPED) != (0)' failed.
```
Does anyone know the reason for this?
Thanks a lot in advance.
have you tried connecting your docker container with fabric network? I have a feeling that that's the problem. I used to have connection refused problem because the containers are not in the same docker network
hey, how do I connect the container with the fabric network?
in the docker compose definition, use external network and specify the fabric network name ( in case of test network, the network name is net_test )
I've come across that one as well - it's an internal node error that has hot other projects too. There's some investigation ongoing at the moment, with some projects "fixing" it by upgrading the node version. Is the TPS you are setting a global TPS, ie not a "per worker" TPS?
Screenshot from 2020-06-29 14-01-33.png
I added the network part but it still shows the same error
in the caliper service you need to specify the network as well
after that please inspect docker network to make sure all containers are in the same network. if the error still persists, the problem might lies elsewhere
try changing localhost to docker hostname
or check if the address is accessible using telnet, etc
how do i specify network in caliper service?
Screenshot from 2020-06-29 14-35-02.png
Screenshot from 2020-06-29 14-35-28.png
i made the following chnages but still no luck
you're just listing the network names. please inspect the network using docker inspect
Screenshot from 2020-06-29 15-31-53.png
Screenshot from 2020-06-29 15-35-51.png
the two networkMode seem to difffer....could that be the reason?
check if your container is included in net_test
Screenshot from 2020-06-29 17-40-39.png
the container isnt included in net_test...how do i fix the problem?
specify net_test as external network in your docker compose
it was running in net_test but the problem still persists
try changing localhost to docker hostname, also check if the address is accessible using telnet
how do i find out the docker hostname?
how do i find out the docker hostname?
Screenshot from 2020-06-30 13-24-57.png
Screenshot from 2020-06-30 13-26-07.png
i changed localhost to hostname but it shows that ca does not exist
Has joined the channel.
Can we have Go SDK for testing with Hyperledger Caliper
No, Caliper (currently) is only implemented in JS, so the Fabric adapter uses the Node SDK. The long-term plans include workers implemented in different languages, so adapters can also be implemented using different SDKs.
Hello,
I was looking through the resource utilization statistics reported by caliper. In a six peer network, the report says that each peer uses 25% of CPU on average.
What does this mean precisely? Why do the percentages go beyond 100%?
Docker CPU stats can go beyond 100% if you have a multicore CPU. So your 6 peers use 1,5 CPU core in average during the benchmark
Ok, thank you
Hi @nkl199 Thanks for your answer. What I want is a global TPS, but I don't know how to specify if it is global or per worker. Where can I specify that, please?
So if I use the inbuilt rate controllers, it can not be the problem?
I guess the node version is also a bit dificult, because I use the docker images, so I guess node with its version is already in there...
the inbuilt rate controllers consider it as a global setting
Do yo have any other idea what could be wrong or what I could do to solve it?
how many worker containers are you using?
8, on two machines with both 4 CPU
I tried also lowering the number of workers, using only 4 workers, but got the same error
ok, was the TPS threshold the same there too?
yeah, using the same TPS
which connector?
It all works until 200 TPS, if I try more, it fails
I use the fabric 2.1.0
ok, do you get any stack trace relating to where the error came from - for instance if it was in teh fabric-sdk?
ok, do you get any stack trace relating to where the error came from - for instance if it was in the fabric-sdk?
Not really, it executes the transactions and logs the results and at a certain moment it just throws this error:
```
node[1]: ../src/node_http2.cc:893:ssize_t node::http2::Http2Session::ConsumeHTTP2Data(): Assertion `(flags_ & SESSION_STATE_READING_STOPPED) != (0)' failed.
```
Is there a way to set the DEBUG level of the workers maybe to get more information?
Not really, it executes the transactions and logs the results and at a certain moment it just throws the node error:
```
TX [0b8cac9102f7876989199c368cb16cb578fb6f54f26d9f6786679efe] took 7940ms to execute. Result: success with data with keys: [object Map Iterator] and values: [object Map Iterator]
TX [d9eae44c3c5d835dafb5b757126fe4d2a279e2a2500390c271378282] took 7838ms to execute. Result: success with data with keys: [object Map Iterator] and values: [object Map Iterator]
TX [9aada999d792a65d84dbd42b774d24f6ee2f6aef3feb5e6540aed5a6] took 7676ms to execute. Result: success with data with keys: [object Map Iterator] and values: [object Map Iterator]
TX [5d75cf828ef519cdc6eb32a4e417bb6a1fced92ac2ec684f3619c65f] took 7895ms to execute. Result: success with data with keys: [object Map Iterator] and values: [object Map Iterator]
TX [dc393094925536e39ef72f107c77518fdf694754d5f653db5e50cfd7] took 7575ms to execute. Result: success with data with keys: [object Map Iterator] and values: [object Map Iterator]
TX [91c050a810e5c9d6b3582a9f29739d60452d00dc6c365e778fad4ad1] took 7628ms to execute. Result: success with data with keys: [object Map Iterator] and values: [object Map Iterator]
node[1]: ../src/node_http2.cc:893:ssize_t node::http2::Http2Session::ConsumeHTTP2Data(): Assertion `(flags_ & SESSION_STATE_READING_STOPPED) != (0)' failed.```
Is there a way to set the DEBUG level of the workers maybe to get more information?
the workers inherit the caliper debug settings
the workers inherit the caliper debug settings - which you could specify in a volume mounted file or a command arg
ok, i will raise the debug level and I will try again to see if I find more info there, thanks a lot for your guidance!
No worries, if you are still having issues - i can give you a few files to help build your own image using node-12
hislaine maxwell
Has left the channel.
Has joined the channel.
Hello everyone,
When I try to run caliper I get this error in the output:
```
Client 0: Creating asset 0_0
2020-07-03T13:47:01.804Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:7050
2020-07-03T13:47:01.807Z - error: [Orderer.js]: Orderer grpcs://localhost:7050 has an error Error: Failed to connect before the deadline URL:grpcs://localhost:7050
```
The port `7050` of orderer is mapped to the `7050` of the host machine, and even using the orderes's container IP woun't solve the problem,
Here is my orderer configuration in the `networkconfig` file:
```
orderers:
orderer.uite.org:
url: grpcs://localhost:7050
tlsCACerts:
path: /home/yashar/msc/yasharne/crypto-config/ordererOrganizations/test.org/orderers/orderer.test.org/msp/tlscacerts/tlsca.test.org-cert.pem
```
I'm using caliper version `0.2.0`
Hi! I understand that Fabric v2.0.0 is the latest stable I can use with Caliper. Can someone point me to a guide or tutorial on how to set it up with that?
I was following the existing tutorial and it was downloading v1.4.1 binaries (even when I've configured caliper to bind to v2.0.0:
caliper-benchmarks/networks/fabric/config_raft$ ./generate.sh
Pull Hyperledger Fabric binaries
===> Downloading version 1.4.1 platform specific fabric binaries
And why is support for v2+ appears to be so thin in Caliper, when Fabric v2.1 is the latest stable (apologies if this is a misconception, but reading the docs that what it seems like).
And I'm trying to run an example, and get the following error:
*Command:*
npx caliper launch master --caliper-benchconfig benchmarks/samples/fabric/marbles/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb_raft/fabric-go-tls.yaml --caliper-workspace ../caliper-benchmarks-v1/
And I'm trying to run an example, and get the following error:
*Command:*
npx caliper launch master --caliper-benchconfig benchmarks/samples/fabric/marbles/config.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb_raft/fabric-go-tls.yaml --caliper-workspace ../caliper-benchmarks-v1/
[ I'm running from a directory named "caliper". the caliper benchmarks repo is at ../caliper-benchmarks-v1 ]
*I get the following error:*
2020.07.06-04:14:28.335 error [caliper] [caliper-engine] Error while performing "install" step: Error: Invalid endorsement for marbles@v0 in mychannel from peer0.org1.example.com: error starting container: error starting container: API error (404): network 2org1peergoleveldb_raft_default not found
DT.Kernel - Mon Jul 06 2020 04:22:46 GMT+0530 (India Standard Time).txt
Has joined the channel.
there are some sample networks in https://github.com/hyperledger/caliper-benchmarks that include Fabric 2.0, and 2.1. The only "issue" relating to support for v2+ is that the admin client was removed in the fabric-sdk-node API for v2+. That being said, it is still possible to bind to the 1.4.x API to build the network, then change to the 2.1.0 API to perform the test phase
Hello,
Is there any section in the caliper documentation that explains the purpose of the workers? I know that their number is configurable but what do they actually do?
they submit transactions to the System Under Test. These transactions are measured (timing information), the information from all workers is aggregated to determine transaction statistics
https://hyperledger.github.io/caliper/v0.3.2/architecture/#the-worker-process
Thank you. So what is the purpose of the clients then? I've seen clients in the configuration file for the network and I thought the clients were responsible for generating the transactions, because they seem to have wallets.
clients === workers
in the configuration file an client is an entity that has an identity within the system being tested, a worker uses that identity
Oh, I understand. And if I specify in the benchmark configuration file that there will be 10 workers, but in the network file only two clients are configured, the system will be tested with two workers (clients), right?
correct
mostly correct - 10 workers will be used, but they will pick from the available client identities
mostly correct - 10 workers will be used, but they will pick from the available (2) client identities
Ok. One final question. If a fixed rate controller were to be used in an attempt to generate let's say 800 tps (to stress the network), is using only one worker a bottleneck?
yes, the workers are currently nodeJS based, and that means they are single threaded - as soon as the CPU limit is hit, you have reached a rate driving bottleneck
Ok, this was very helpful, thank you very much
When running the simple benchmark, (benchmarks/scenario/simple/config.yaml) is it normal that in the transfer round, some transactions fail or am I doing something wrong? Also, in the transfer round there are errors such as commit timeouts for transactions and MVCC_READ_CONFLICTS.
yes, this is "expected" if the driving rate is too high. MVCC_READ_CONFLICTS is due to a transaction trying to be processed when the information it is based on has changed. ie transaction a and b read information and then submit a transaction to change some information in the world state rev0 -> rev1, transaction a completes before before transaction b ... when b is applied to try and change rev0 -> rev1, it is already at rev1 ... so invalid (that's the jist of it, a quick google will give more info)
Ok. Thank you.
Hi @nkl199 , I've checked the debug logs and there is not any more information than the one shared here already. What I did see is that it are only a couple of workers that have this error, while others did terminate correctly after sending the tx results back.
I am running different workers on the same machine and they use the same directory of the host machine as their workspace volume, could this be something that is wrong or shouldn't it make no diference?
And yeah, I think building an own image using node 12 would be something good to try. Can you share the files you mentioned, please? Thanks a lot!
Trying to install caliper for fabric version 1.4.4. I am getting the error: Failed to execute "npm" with return code 1. Any help?
node v10.20.1 and npm v6.14.5
Has joined the channel.
what command are you running?
Hello,
Does anyone know some resources / tutorials on how to benchmark a v2.1.0 caliper networks from the samples?
caliper acts as client using SDKs that target a SUT platform (such as Fabric) - you bind to SDK versions, not a platform. The target platform itself is a separate concern. The samples available for Caliper include V2.1 for fabric: https://github.com/hyperledger/caliper-benchmarks/tree/master/networks/fabric/v2 ... which essentially just call a basic docker-compose file to create a network `export FABRIC_VERSION=2.1.0;export FABRIC_CA_VERSION=1.4.4;docker-compose -f networks/fabric/docker-compose/2org1peercouchdb_solo_raft/docker-compose-tls.yaml up -d;` the export sets the version of the network created for you.
use these resources: https://github.com/hyperledger/caliper-benchmarks
bind to 1.4.8 SDK and perform start, init, install phases
bind to 2.1.0 SDK and perform test phase
more details here: https://hyperledger.github.io/caliper/v0.3.2/installing-caliper/#caliper-test-phase-control
Has joined the channel.
I am unable to perform the install step on the v2.1.0 network even when binding to v1.4.8, because the chaincodes cannot be deployed on peers. Can you tell me how to solve this?
is there an error message? First point of call would be to remove *all* images from your system using something like `docker rmi $(docker image ls -q)` ... sometimes there is a container conflict
Hello guys, I'm new to Caliper and I'm trying to put it to work.
After struggling a bit, currently I have the following error:
error [caliper] [caliper-engine] Error while performing "install" step: Error: Invalid endorsement for marbles@v0 in mychannel from peer0.org1.example.com: error starting container: error starting container: Failed to generate platform-specific docker build: Failed to pull hyperledger/fabric-ccenv:latest: API error (404): manifest for hyperledger/fabric-ccenv:latest not found: manifest unknown: manifest unknown
is is after running npx caliper launch master
any clue of how to fix it?
any clue on how to fix it?
@dporto This error is returned by the Fabric peer, and seems to be a docker pull issue. Try searching for the last part of the error message, might be docker-related
thanks, I will do.
So, the command is thisȘ
npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/samples/fabric/fabcar/config.yaml --caliper-networkconfig networks/fabric/v2/v2.1.0/2org1peercouchdb_raft/samples/fabric-go-solo-samples.yaml
and the error is this:
Could not install marbles@v0 on some peers of mychannel:
- Install proposal error for marbles@v0 on peer0.org1.example.com: could not build chaincode: docker build failed: docker image build failed: docker build failed: Error returned from build: 1 "/chaincode/input/src/fabric/samples/marbles/go/marbles.go:110:2: cannot find package "github.com/hyperledger/fabric/core/chaincode/shim" in any of:
/usr/local/go/src/github.com/hyperledger/fabric/core/chaincode/shim (from $GOROOT)
/chaincode/input/src/github.com/hyperledger/fabric/core/chaincode/shim (from $GOPATH)
/go/src/github.com/hyperledger/fabric/core/chaincode/shim
/chaincode/input/src/fabric/samples/marbles/go/marbles.go:111:2: cannot find package "github.com/hyperledger/fabric/protos/peer" in any of:
/usr/local/go/src/github.com/hyperledger/fabric/protos/peer (from $GOROOT)
/chaincode/input/src/github.com/hyperledger/fabric/protos/peer (from $GOPATH)
/go/src/github.com/hyperledger/fabric/protos/peer
"
- Install proposal error for marbles@v0 on peer0.org2.example.com: could not build chaincode: docker build failed: docker image build failed: docker build failed: Error returned from build: 1 "/chaincode/input/src/fabric/samples/marbles/go/marbles.go:110:2: cannot find package "github.com/hyperledger/fabric/core/chaincode/shim" in any of:
/usr/local/go/src/github.com/hyperledger/fabric/core/chaincode/shim (from $GOROOT)
/chaincode/input/src/github.com/hyperledger/fabric/core/chaincode/shim (from $GOPATH)
/go/src/github.com/hyperledger/fabric/core/chaincode/shim
/chaincode/input/src/fabric/samples/marbles/go/marbles.go:111:2: cannot find package "github.com/hyperledger/fabric/protos/peer" in any of:
/usr/local/go/src/github.com/hyperledger/fabric/protos/peer (from $GOROOT)
/chaincode/input/src/github.com/hyperledger/fabric/protos/peer (from $GOPATH)
/go/src/github.com/hyperledger/fabric/protos/peer
it doesnt seems to point to docker though :-/ https://pastebin.com/rGzky2A6
Failed to pull hyperledger/fabric-ccenv:latest
looks like an error in the goLang contract - try using the node one instead, that would confirm it
I tried using the javascript smartcontracts by issuing the following command:
npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/samples/fabric/fabcar/config.yaml --caliper-networkconfig networks/fabric/v2/v2.1.0/2org1peercouchdb_raft/samples/fabric-javascript-solo-samples.yaml
I tried using the javascript smartcontracts by issuing the following command:
npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/samples/fabric/fabcar/config.yaml --caliper-networkconfig networks/fabric/v2/v2.1.0/2org1peercouchdb_raft/samples/fabric-javascript-solo-samples.yaml
And I get a different error:
2020-07-09T15:21:42.154Z - error: [Peer.js]: sendProposal - timed out after:45000
2020.07.09-18:22:19.187 error [caliper] [adapters/fabric] Could not install marbles@v0 on some peers of mychannel:
- Install proposal error for marbles@v0 on peer0.org1.example.com: REQUEST_TIMEOUT
2020.07.09-18:22:19.188 error [caliper] [caliper-engine] Error while performing "install" step: Error: Could not install marbles@v0 on some peers of mychannel
2020.07.09-18:22:19.188 info [caliper] [caliper-engine] Executed "install" step in 82.121 seconds
good catch, that escaped my sight ...
that one is a timeout on the request ... system limitation your side
Oh wait, I ran it a second time and it managed to install the chaincodes.
Is there a way to increase the timeout?
yh, there's a 2 step process for node contracts as it needs to perform the `npm install` to create the image ... takes a while
that is a fabric container setting .. but can't remember which one
I'm kind lost here..
I need to make it work with fabric 1.3 I started just running the simple example following the tutorial from the website and I already had to do lots of minor adjustments. From the specific npm version to the hardcoded fabric version found in the generated.sh file. Unfortunately the quick start guide is not updated nor smooth for beginners (even those with some systems experience)
2020.07.09-18:54:17.715 error [caliper] [caliper-engine] Error while performing "test" step: TypeError: Cannot read property 'length' of undefined
2020.07.09-18:54:17.715 info [caliper] [caliper-engine] Skipping end command due to benchmark flow conditioning
2020.07.09-18:54:17.715 error [caliper] [cli-launch-master] Benchmark failed with error code 6
Do you know how to fix this?
use the tagged repo, not the unstable
I'm trying the config_solo fabric network, I thought it was the simplest one. am I right? shall I try another?
I'm going down one version (v0.3.0) to see if I have better luck.
wow, the repo looks a lot different from 0.3.2, network dir has more options, seems promising!
2020.07.09-17:27:33.414 error [caliper] [caliper-engine] Error while performing "install" step: Error: Invalid endorsement for marbles@v0 in mychannel from peer0.org1.example.com: error starting container: error starting container: Failed to generate platform-specific docker build: Failed to pull hyperledger/fabric-ccenv:latest: API error (404): manifest for hyperledger/fabric-ccenv:latest not found: manifest unknown: manifest unknown
:-(
I did issue the command: git checkout v0.3.2
I did issue the command: git checkout v0.3.2 but the problem is still there
hmm, ok ... what version of caliper are you using?
0.3.2
yup, that matches
any errors above the above Type error?
No
can you use pastebin or similar to capture the full output?
https://pastebin.com/h3CeXWgi
this is a full output of all the steps i did from cloning to running the test
`2020.07.09-19:41:02.976 error [caliper] [cli-launch-master] Unexpected error during benchmark execution: Error: Incompatible benchmark flow parameters specified, caliper-flow-skip-x and caliper-flow-only-x flags may not be mixed`
only use `--caliper-flow-only-test`
Guys, sorry the stubborn questions... I'm following this (https://hyperledger.github.io/caliper/v0.3.2/installing-caliper/#local-npm-install) down to each character. This time, I did not generate the crypto material and I got the following error after running the command:
npx caliper launch master \
--caliper-workspace . \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
......
error [caliper] [caliper-engine] Error while performing "init" step: Error: ENOENT: no such file or directory, open '/home/dporto/devel/caliper-benchmarks/networks/fabric/config_solo/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/key.pem'
......
when I go to the config_solo dir, there are 2 folders, crypto-config amd mychannel.tx
I must call ./generate.sh from this directory right?
yes, that will create the required crypto material (and download tooling to do so if required)
yes, that will download and run tooling to generate crypto material
unfortunatelly I bump into the same problem again:
error [caliper] [caliper-engine] Error while performing "install" step: Error: Invalid endorsement for marbles@v0 in mychannel from peer0.org1.example.com: error starting container: error starting container: Failed to generate platform-specific docker build: Failed to pull hyperledger/fabric-ccenv:latest: API error (404): manifest for hyperledger/fabric-ccenv:latest not found: manifest unknown: manifest unknown
O noticed here (https://github.com/hyperledger/caliper-benchmarks) that the benchconfig path is different.
I tried both, but no success. same error
did you clean all images from the machine?
I managed to obtain a report on the marbles chaincode. Thank you very much for your time.
images no, but containers yes. let me clean everything
and give another shot
and give it another shot
do i need to unbind if I remove the directory ??
once the crypto material ha been generated you can keep it
if you jump between fabric versions the ccenv image becomes incorrect, and they just released another version 4hrs ago ... which might also be tripping you up
ok, I just clean up everything. docker prune volume/network/system and also to make sure, docker images -aq | xargs docker rmi.
I will check out the code again
yh, it's mainly the images that will be the issue, but won't hurt to clean volumes too
I'm using node 8.9.4 (later i need to make it work with fabric 1.3 so it has to be this node version)
ok, that will restrict the SDK you can bind to
(1.4.8 max)
no prob. I first want to see some output with whatever works with this version. later I make it work with 1.3 (I later have to twick with the orderer server with BFTSmart, which is designed to work to 1.3)
ok, fresh checkout caliper. now change branch to 0.3.0
building caliper with Local NPM install
npm install --only=prod @hyperledger/caliper-cli@0.3.0
built.
...would recomend 0.3.2 caliper
will it work with fabric 1.3 ?
yes - you bind to SDKs, not platforms
ok checking out again. no prob thanks
question:
here https://hyperledger.github.io/caliper/v0.3.2/installing-caliper/#local-npm-install
the comand states: npm install --only=prod \
@hyperledger/caliper-cli@0.3.0
shall I change it to 0.3.2 ??
yes
i usually do a global instll, but that's me
ok built
next one also has a difference:
npx caliper bind \
--caliper-bind-sut fabric:1.4.0
but the following command says 1.4.1
they must match right ?
it's a 2 parter: >platform>:
it's a 2 parter:
so fabirc:1.4.8 would bind caliper to a fabric connector, sdk version 1.4.8
so `fabric:1.4.8` would bind caliper to a fabric connector, sdk version 1.4.8
ok let's go with `1.4.1`
bind, done. next, before running the second command i will go to config_solo to generate the crypto material. no changes made to any file, just pain run generate.sh
bind, done. next, before running the second command i will go to config_solo to generate the crypto material. no changes made to any file, just plain run generate.sh
ok, so long as it is there, it doesn't need to be regenerated
(just don't change it between tests :wink: )
I've started clean. to prevent any risk of old stuff messing up
ok
ok mychannel.tx created, orgs.genesis.block created and 3 other dirs
back to last command:
npx caliper launch master \
--caliper-workspace . \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
for this version of caliper, the network config path changed. this path does not exsits.
I'm changing it to networks/fabric/v1/v1.4.1/2org1peergoleveldb/fabric-go.yaml
finger crossed
what tagged version of the benchmarks are you using?
0.3.2
ok
error [caliper] [caliper-engine] Error while performing "install" step: Error: Invalid endorsement for marbles@v0 in mychannel from peer0.org1.example.com: error starting container: error starting container: Failed to generate platform-specific docker build: Failed to pull hyperledger/fabric-ccenv:latest: API error (404): manifest for hyperledger/fabric-ccenv:latest not found: manifest unknown: manifest unknown
omg >.<
same error 2 machines. centos8 debian buster
ok, i'll look to see if i can recreate that
:pray:
ok, i've recreated that error
nice. thanks
wow, found a work around
:pray:
Did you find what's happening ?
so it seems that the issue is within the chaincode containers - when they build, thay always look for ccev:latest ... and, well ... now latest is at 2.2, not 1.4
so it seems that the issue is within the chaincode containers - when they build, thay always look for ccenv:latest ... and, well ... now latest is at 2.2, not 1.4
when really they should look for the version they relate too
when really they should look for the version they relate to
so it's actually a bug.
yes, but in fabric :wink:
work around is to pull the required container: `docker pull hyperledger/fabric-ccenv:1.4.1` in this case
then re-tag it as latest
docker image ls to get image ID of the above
fair ahahah
then `docker image tag d7433c4b2a1c hyperledger/fabric-ccenv:latest`
but make sure the image ID is correct for you
i was able to instantiate chaincode then :thumbup:
we never noticed this one before as we alway add with the latest versions
super cool, thanks a lot @nkl199 It was really life saving.
no worries
Now I will dive deep to make it work back with 1.3 in a distributed deployment
keep in mind that you will have to manually keep the imagess lined up tho
sure, thanks a lot
no worries
let me see if i can reproduce the fix
#success !!!! thanks a lot!!!
excellent :thumbup:
only the last one failed:
2020.07.09-19:15:50.335 info [caliper] [caliper-local-client] txUpdateTime: 5000
2020.07.09-19:15:50.336 info [caliper] [caliper-local-client] Info: client 0 start test runFixedNumber():transfering money
2020.07.09-19:15:51.088 error [caliper] [adapters/fabric] Transaction[18dbf5621a] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer0.org2.example.com with code MVCC_READ_CONFLICT
2020.07.09-19:15:51.457 error [caliper] [adapters/fabric] Transaction[c5b1e4385d] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer0.org2.example.com with code MVCC_READ_CONFLICT
2020.07.09-19:15:51.457 error [caliper] [adapters/fabric] Transaction[d5fa4175bd] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer0.org2.example.com with code MVCC_READ_CONFLICT
2020.07.09-19:15:51.457 error [caliper] [adapters/fabric] Transaction[0e7d1fa9c1] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer0.org2.example.com with code MVCC_READ_CONFLICT
2020.07.09-19:15:51.458 error [caliper] [adapters/fabric] Transaction[8387db41e2] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer0.org2.example.com with code MVCC_READ_CONFLICT
2020.07.09-19:15:51.458 error [caliper] [adapters/fabric] Transaction[0e494a1ae8] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer0.org2.example.com with code MVCC_READ_CONFLICT
2020-07-09T18:15:51.740Z - error: [Channel.js]: compareProposalResponseResults - read/writes result sets do not match index=1
2020.07.09-19:15:51.742 error [caliper] [adapters/fabric] Transaction[db11287e4d] life-cycle errors:
- Read/Write set mismatch between endorsements
2020.07.09-19:15:51.910 error [caliper] [adapters/fabric] Transaction[277b169769] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
that's actually "fine"
nice.
so everything worked, it just means the rate was so high, you were modifying things with out of date information
and fabric complained
I will now try to make it run in the distributed deployment and with v 1.3
thanks again!!!
enjoy, i'm off for a beer :D
Whenever you stop by Lisbon! Or by any chance I come by wherever you are.
:joy: noted!
I modified a v2.1.0 network by adding more organizations, multiple peers per organization and multiple orderers. Does caliper know about the orderers and does it distribute transactions to more than one of them?
I modified a v2.1.0 test network by adding more organizations, multiple peers per organization and multiple orderers. Does caliper know about the orderers and does it distribute transactions to more than one of them?
If not using discovery, caliper is told about the architecture using the network configuration file
Is there any guidelines on how to deploy caliper with fabric in a distributed setting? I
Is there any guidelines on how to deploy caliper with fabric in a distributed setting?
I can see there are some ansible-playbooks in network/fabric/ansible-playbooks folder. But I'm not sure if that's their intent.
https://medium.com/@nima.afraz/hyperledger-caliper-on-multiple-hosts-6bcd07492e07 this seems a good starting point :-)
Has joined the channel.
Hello. I'm trying to run the benchmark of ethereum1node, but i ca'
Hello. I'm trying to run the benchmark of ethereum1node, but i always get an error. Do any of you guys have a step-by-step guide on how to run the Ethereum benchmark?
Hello. I'm trying to run the benchmark of ethereum1node, but i always get an error. Do any of you guys have a step-by-step guide on how to run the Ethereum benchmark? (I'm using Ubuntu 18)
Has anyone managed to benchmark the "simple" chaincode on a v2.1.0 network? I tried to benchmark it using the following command:
npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/v2/v2.1.0/2org1peergoleveldb_raft/fabric-node-tls.yaml
and the chaincode installs correctly in the network but it fails to instantiate with the following error:
2020.07.12-18:56:20.792 error [caliper] [caliper-engine] Error while performing "install" step: Error: Invalid endorsement for simple@v0 in mychannel from peer0.org2.example.com: error in simulation: could not launch chaincode simple:v0: chaincode registration failed: container exited with 254
Is there any way to bypass this?
Has anyone managed to benchmark the "simple" chaincode on a v2.1.0 network? I tried to benchmark it using the following command:
npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/v2/v2.1.0/2org1peergoleveldb_raft/fabric-node-tls.yaml
and the chaincode installs correctly in the network but it fails to instantiate with the following error:
2020.07.12-18:56:20.792 error [caliper] [caliper-engine] Error while performing "install" step: Error: Invalid endorsement for simple@v0 in mychannel from peer0.org2.example.com: error in simulation: could not launch chaincode simple:v0: chaincode registration failed: container exited with 254
The simple chaincode container for peer0.org1 is up, but the simple chaincode container for peer0.org2 is down and the logs for peer0.org2 simple chaincode container state the following:
+ CHAINCODE_DIR=/usr/local/src
+ cd /usr/local/src
+ npm start -- --peer.address peer0.org2.example.com:7052
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /usr/local/src/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/usr/local/src/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
Is there any way to bypass this?
Has anyone managed to benchmark the "simple" chaincode on a v2.1.0 network? I tried to benchmark it using the following command:
npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/v2/v2.1.0/2org1peergoleveldb_raft/fabric-node-tls.yaml
and the chaincode installs correctly in the network but it fails to instantiate with the following error:
2020.07.12-18:56:20.792 error [caliper] [caliper-engine] Error while performing "install" step: Error: Invalid endorsement for simple@v0 in mychannel from peer0.org2.example.com: error in simulation: could not launch chaincode simple:v0: chaincode registration failed: container exited with 254
The simple chaincode container for peer0.org1 is up, but the simple chaincode container for peer0.org2 is down and the logs for peer0.org2 simple chaincode container state the following:
+ CHAINCODE_DIR=/usr/local/src
+ cd /usr/local/src
+ npm start -- --peer.address peer0.org2.example.com:7052
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /usr/local/src/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/usr/local/src/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
No files from the caliper-benchmarks repository were modified
Is there any way to bypass this?
did you checkout a stable version ? the repo version is not stable.
Yes, I did a git checkout v0.3.2, and I installed caliper v0.3.2
And there seems to be no configuration variable in the peers section of the docker compose with regards to chaincodes so I do not understand how one peer's chaincode works while the other's chaincode doesn't.
The variables pointing to chaincodes seem to be shared by all the peers (being outside of peer configurations)
I'm also struggling here to make a simple distributed deployment in swarm mode....
Can't help, because I have never tried doing that
How does Caliper determine finality of a transaction? Especially asking about my use case, where we run it against an Ethereum network with Aura consensus.
I know there is this whitepaper on the website, but didn't find anything in the actual code (and I would assume this is specific to the Ethereum adapter? And it should know the consensus protocol?)
I'm making progress deploying caliper with docker swarm. Currently all 3 Orgs, 3 orderers and 3 peers are deployed in 3 nodes. I can see their docker logs and they are connected when I call the docker stack deploy command directly. However when I invoke via caliper I get an error.
2020-07-13T12:09:57.521Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:7050
2020-07-13T12:09:57.521Z - error: [Orderer.js]: Orderer grpcs://localhost:7050 has an error Error: Failed to connect before the deadline URL:grpcs://localhost:7050
2020.07.13-13:09:57.522 error [caliper] [caliper-engine] Error while performing "init" step: Error: Couldn't create Channel 'mychannel': Failed to connect before the deadline URL:grpcs://localhost:7050
I'm not sure if i need o change the fabric-go-tls.yaml definiton where the endpoint localhost is set ... the other old swarm example didn't.
here is a detailed pastbin of the output https://pastebin.com/hqUuCN7g
OMG #success !! caliper + fabric + docker swarm :-)
:woo: now I have to write down all the changes to make systematic steps to deploy this again.
@nkl199 did you find the reason why we need to re-tag the image? I remember you mentioned it was due to a fabric bug.
@nkl199 did you find the reason why we need to re-tag the ccenv image (from any to latest)? I remember you mentioned it was due to a fabric bug.
@nkl199 did you find the reason why we need to re-tag the ccenv image (from any to latest) in order to be able t run caliper 0.3.2 with previous versions? I remember you mentioned it was due to a fabric bug.
@nkl199 did you find the reason why we need to re-tag the ccenv image (from any to latest) in order to be able t run caliper 0.3.2 with previous versions of fabric? I remember you mentioned it was due to a fabric bug.
there had been some recent publishes of the fabric images to dockerhub, which caused a breakage as the peer was unable to find the required image during chaincode build
Hyperledger v2.2 was released today, and some changes were made which stop me from running the example from https://hyperledger.github.io/caliper/v0.3.2/installing-caliper/ (local npm install)
When running
npx caliper launch master \
--caliper-workspace . \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
I get the error
2020.07.13-19:24:49.846 error [caliper] [caliper-engine] Error while performing "install" step: Error: Invalid endorsement for marbles@v0 in mychannel from peer0.org1.example.com: error starting container: error starting container: Failed to generate platform-specific docker build: Failed to pull hyperledger/fabric-ccenv:latest: API error (404): manifest for hyperledger/fabric-ccenv:latest not found: manifest unknown: manifest unknown
I know that this is because of the :latest tag, but I couldn't find the configuration file where it is specified (in order to replace it). Can you tell me what should be changed for the example to work again?
if you using fabric v2.2, use ccenv:2.2.
I'm using the 2org1peergoleveldb version 1.4.1 but what configuration file must be changed for it to work?
sorry, what version exactly you are deploying? 1.4.1 ?
then you must do:
docker pull hyperledger/fabric-ccenv:1.4.1
then
docker image tag hyperledger/fabric-ccenv:1.4.1 hyperledger/fabric-ccenv:latest
I wonder how can I customize my benchmark now (increase the load, duration...).
modify the benchmark configuration file
Has joined the channel.
Hi Everyone!
Is it possible to pass argument in init function of the go chaincode in caliper?
The chaincode I am using requires arguments to be passed in the init function
If anyone knows how to do that in caliper please let me know. Thanks in advance
:)
nice, i'm looking into it.
Do you know any CPU intensive workload?
Has anyone tried to measure differences between the same smart contract written in different programming languages? I have done some measurements on a v1.4.1 network and on a v2.1.0 network on the "simple" benchmark. For v1.4.1 I used the go version of "simple", but for v2.1.0 the go smartcontract did not work so the node version was used. There is quite a difference in throughput and latency between the results and I wonder if it's because of the language. The workload was the same in both cases, but it seems that way more transactions fail on the newer version because of peer timeouts and reaching some cocurrency limit, and this did not happen in 1.4.1.
---
test:
name: simple
description: This is an example benchmark for caliper, to test the backend DLT's
performance with simple account opening & querying transactions
workers:
type: local
number: 2
rounds:
- label: open
description: Test description for the opening of an account through the deployed chaincode
txNumber: 1500
rateControl:
type: fixed-rate
opts:
tps: 200
arguments:
money: 1000000
callback: benchmarks/scenario/simple/open.js
- label: query
description: Test description for the query performance of the deployed chaincode
txNumber: 3000
rateControl:
type: fixed-rate
opts:
tps: 300
callback: benchmarks/scenario/simple/query.js
- label: transfer
description: Test description for transfering money between accounts
txNumber: 1500
rateControl:
type: fixed-rate
opts:
tps: 100
arguments:
money: 10
callback: benchmarks/scenario/simple/transfer.js
monitor:
type:
- docker
docker:
containers:
- all
interval: 1
Hi there, I'm a bit confused where are the clients placed in caliper. The docker-compose file doesnt not instantiate the clients. Only peers, ca and orderers. My question is that I want to instantiate more clients to increase the load.
hum... I guess the clients are created at the workers, so I need to deploy caliper workers to distribuite/increase the load..
depends what mode you are in - if you are using a single container, or "local" - then you specify the number of clients/workers to spawn in the benchmark file
I'm using swarm. peers, cas, orderers are correctly distributed amongest 3 servers. but i suspect that all clients are spawn at the caliper manager host
unless you specify dockerized workers, they spawn within the master container
caliper itself is not containerized. I used npm local install. thus what you says confirms what I thought
ah, ys - so it will spawn all workers locally as separate processes
So i will look into dockerized caliper next.
It's being a long battle... :-)
using docker almost worked out but it didnt.. there is an issue with the docker image.
problem is: the caliper launch command invokes the network's start command. this one boots up the docker swarm deployment. therefore there is a need to access docker inside the caliper container. which has no docker installed. and it fails.
alternatives are: start the workers without docker, or rebuild the image such that the docker command is available.
I think my deployment is complex enough to put docker inside docker and I will try out running the workers directly to see if it's cleaner
could you:
- provide command to the container (`launch manager --caliper-flow-only-test`)
- map a caliper.yaml file that has an `only test` flag
basically you need the manager to pick up on a flow flag
I dont get it, sorry. what file are you referring to? the network or the benchmark configuration?
I still dont understand caliper very well. sorry. I'm also kind of new to fabric as well
either a `caliper.yaml` file that is in a mapped volume (https://hyperledger.github.io/caliper/v0.3.2/runtime-config/#configuration-files) or a command line flow flag (https://hyperledger.github.io/caliper/v0.3.2/installing-caliper/#caliper-test-phase-control)
basically you can use flow control flags to perform specific phases only
you could also just remove the `start` and `end` commands from the configuration file
hum... let me think about it a minute
if I remove `start` and `end`, how can i invoke them later?
otherwise the experiment wont run
start and end create/destroy the network - you mentioned you don't want/need that?
no.
my current deployment has caliper installed locally.
when i invoke caliper launch master .... --network-config ..../fabric.yaml it starts the experiment. inside this file, the caliper block command invokes docker swarm deploy --compose file. this starts the experiment.
oh, ok
if i create another docker-compose file to start the master/workers in a swarm, if fails because the master cannot invoke the start command of the fabric.yaml
if i create another docker-compose file to start the master/workers in a swarm, it fails because the master cannot invoke the start command of the fabric.yaml (due to not having access to docker)
what about volume mounting the docker socket?
I can do that. but the caliper image that is pulled has no docker installed inside.
https://pastebin.com/u4tfweHr
here is the docker-swarm file for starting the master (and possible the workers)
i think you are stretching the limits for network creation using caliper there. I've always targeted existing networks using caliper containers
i think you are stretching the limits for network creation using caliper there. I've always targeted existing networks using caliper containers in an 'only test' mode
my goal is just to create multiple workers to split the load.
the rest is working.
it's possible for create your own bespoke caliper image that includes docker, but i'd probably be looking more towards a distributed use-case similar to https://github.com/hyperledger/caliper/tree/master/packages/caliper-tests-integration/fabric_docker_distributed_tests
that's probably true. (although unintentional).
the image caliper publishes is based on https://github.com/hyperledger/caliper/blob/master/packages/caliper-publish/caliper.Dockerfile
I will give a try to running workers baremetal. I would have to have the experiment configuration deployed anyways. a few ansible playbooks would possible make this cleaner. as you said I also feel that im stretching a bit
yh, i use ansible to create fabric networks, then format the network configuration file based on the playbook output
thanks a lot @nkl199 !
Hi, can someone give me a basic operation document? Thank you
@kiview
Yes, if you instantiate the chaincode through Caliper, then it's possible to set the `channels/
Quick question: What is the appropriate rate controller to determine a network's maximum TPS?
The upcoming (currently unstable) release will contain the rate controller you're looking for: https://hyperledger.github.io/caliper/vNext/rate-controllers/#maximum-rate
Feel free to take it for a spin :)
@dporto Some additional insights, since I've been using Caliper with Swarm for a while now.
1. The start/end commands should be lightweight commands for basic init/cleanup tasks. Since Caliper has its own container, these won't be necessary probably. The commands are definitely **not** for swarm deployments.
2. You'll need the distributed deployment model of Caliper:https://hyperledger.github.io/caliper/v0.3.2/architecture/#distributed-message-broker-communication
3. Once the Fabric services are deployed, then you can deploy your MQTT broker, your Caliper Worker services (using the `launch worker` command for the service), and the Caliper master service (using the `launch master` command for the service).
4. Once the Caliper master service starts up, that will be the automatic start of your benchmark, targeting an already running Fabric (as Nick said).
So I wouldn't touch the Caliper image, since you won't need docker-in-docker in a well-designed scenario. Especially not in a managed swarm cluster, where manager node access is needed for deployment.
Thank you :)
worth noting that at the moment Caliper will report average TPS, which mean the "ramp" nature of the mentioned controlled will result in an average ... we plan to provide a "max TPS" output in the reporting to account for this
worth noting that at the moment Caliper will report average TPS, which means the "ramp" nature of the mentioned controlled will result in an average ... we plan to provide a "max TPS" output in the reporting to account for this
What I'm trying to accomplish is to see how many transactions a network can handle. To do so, I have used the fixed rate controller and gradually increase the send rate until the throuput started to lag behind the send rate. The disadvantage is that v2.1.0 peers seem to be very sensitive to periods where many transactions are present in the network and they start timing out. So I was wondering if there is a rate controller that stops sending transactions when peers start timing out.
Has joined the channel.
Has joined the channel.
Hey i have been trying to setup caliper on fabric 1.4.6 . i have error with fabric ca client . can u suggest on what needs to be done or which link to follow for caliper
did u get the answer how to solve it
.... what is the error?
Hi, I deploy Fabric v2.1.0 network; install with lifecycle chaincode before using Caliper. When running benchmark, it show below error, any clue.
2020.07.17-00:01:47.769 info [caliper] [worker-orchestrator] 1 workers prepared, progressing to test phase.
2020.07.17-00:01:47.770 info [caliper] [message-handler] Handling "test" message
2020.07.17-00:01:47.772 info [caliper] [caliper-local-client] txUpdateTime: 5000
2020.07.17-00:01:47.779 info [caliper] [caliper-local-client] Info: client 0 start test runDuration():Querying By EntityName
2020.07.17-00:01:47.781 error [caliper] [adapters/fabric] Failed to perform query transaction [queryByEntityName] using arguments [dev_entity], with error: TypeError: Cannot read property 'calculateTransactionId' of null
at Query.build (/Users/tangross/dev/2020/fabric-es/node_modules/fabric-common/lib/Proposal.js:181:42)
at Transaction.evaluate (/Users/tangross/dev/2020/fabric-es/node_modules/fabric-network/lib/transaction.js:281:23)
at Fabric._performGatewayTransaction (/Users/tangross/dev/2020/fabric-es/node_modules/@hyperledger/caliper-fabric/lib/adaptor-versions/v2/fabric-gateway-v2.js:487:44)
at async Promise.all (index 0)
at async Fabric.querySmartContract (/Users/tangross/dev/2020/fabric-es/node_modules/@hyperledger/caliper-fabric/lib/adaptor-versions/v2/fabric-gateway-v2.js:677:16)
at async Fabric.querySmartContract (/Users/tangross/dev/2020/fabric-es/node_modules/@hyperledger/caliper-fabric/lib/fabric.js:143:16)
at async Blockchain.querySmartContract (/Users/tangross/dev/2020/fabric-es/node_modules/@hyperledger/caliper-core/lib/common/core/blockchain.js:144:16)
2020.07.17-00:01:47.769 info [caliper] [worker-orchestrator] 1 workers prepared, progressing to test phase.
2020.07.17-00:01:47.770 info [caliper] [message-handler] Handling "test" message
2020.07.17-00:01:47.772 info [caliper] [caliper-local-client] txUpdateTime: 5000
2020.07.17-00:01:47.779 info [caliper] [caliper-local-client] Info: client 0 start test runDuration():Querying By EntityName
2020.07.17-00:01:47.781 error [caliper] [adapters/fabric] Failed to perform query transaction [queryByEntityName] using arguments [dev_entity], with error: TypeError: Cannot read property* 'calculateTransactionId'* of null
at Query.build (/Users/tangross/dev/2020/fabric-es/node_modules/fabric-common/lib/Proposal.js:181:42)
at Transaction.evaluate (/Users/tangross/dev/2020/fabric-es/node_modules/fabric-network/lib/transaction.js:281:23)
at Fabric._performGatewayTransaction (/Users/tangross/dev/2020/fabric-es/node_modules/@hyperledger/caliper-fabric/lib/adaptor-versions/v2/fabric-gateway-v2.js:487:44)
at async Promise.all (index 0)
at async Fabric.querySmartContract (/Users/tangross/dev/2020/fabric-es/node_modules/@hyperledger/caliper-fabric/lib/adaptor-versions/v2/fabric-gateway-v2.js:677:16)
at async Fabric.querySmartContract (/Users/tangross/dev/2020/fabric-es/node_modules/@hyperledger/caliper-fabric/lib/fabric.js:143:16)
at async Blockchain.querySmartContract (/Users/tangross/dev/2020/fabric-es/node_modules/@hyperledger/caliper-core/lib/common/core/blockchain.js:144:16)
not passing a required value for `calculateTransactionId` ?
calculateTransactionId is function of "node_modules/fabric-common/lib/Proposal.js". I did not directly passing a value onto it.
Or, I answer the question from another angle. I found the GitHub repo "Caliper-benchmarks". The benchmarks of Fabric v2.1.0 test seems to running against Fabric v1.4.1. Is my observation correct?
That shouldn't be the case, the sample networkconfig file passes the new version to docker-compose: https://github.com/hyperledger/caliper-benchmarks/blob/master/networks/fabric/v2/v2.1.0/2org1peergoleveldb_raft/fabric-go-tls.yaml#L23
@tangross Could you provide the command you executed, also the version of caliper and the bench repo you used?
2020.07.16-13:53:22.069 error [caliper] [cli-launch-master] Unexpected error during benchmark execution: Error: Cannot find module 'fabric-ca-client/package'
i tried to deploy it in 6 org 5 channel dockerswarm network
After many attempts i finally think I'm understanding. I can now make workers connect to MQTT.
fingers crossed next deployment will work :D
what sdk did u bind to?
:-/ is not working yet.
here is a summary of what I've changed:
- the benchmark scenario file (config.yaml) , I changed workers block to:
workers:
type: local
number: 4
- bootstrap the fabric network: from master node created the network overlay, join nodes to swarm, run docker stack deploy (all fine) deployed on remote nodes, logs show that nodes are connected (and it was working before with a single worker)
- started mosquitto, run in a container at the port 1883
- for each worker run : npx caliper launch worker ...... --caliper-worker-remote true --caliper-worker-communication-method mqtt --caliper-worker-communication-address mqtt://xyz:1883
i can see them connecting to mosquitto:
mosquitto_1 | 1594983208: Sending PINGRESP to mqttjs_1d5b08b8 [52/228]
mosquitto_1 | 1594983210: No will message specified.
mosquitto_1 | 1594983210: Sending CONNACK to mqttjs_627ea09f (0, 0) mosquitto_1 | 1594983210: Received SUBSCRIBE from mqttjs_627ea09f
mosquitto_1 | 1594983210: master/update (QoS 0)
mosquitto_1 | 1594983210: Sending SUBACK to mqttjs_627ea09f mosquitto_1 | 1594983252: Received PINGREQ from mqttjs_76498382
mosquitto_1 | 1594983252: Sending PINGRESP to mqttjs_76498382
then i finally run the master and it hangs with the message:
2020.07.17-11:50:57.287 info [caliper] [messenger.js] Creating messenger of type "process-master"
2020.07.17-11:50:57.289 info [caliper] [null-observer] Configured "null" observer
2020.07.17-11:50:57.290 info [caliper] [round-orchestrator] Monitors successfully started
2020.07.17-11:50:57.290 info [caliper] [round-orchestrator] Started round 1 (open)
2020.07.17-11:50:57.291 info [caliper] [worker-orchestrator] Messenger not configured, entering configure phase...
2020.07.17-11:50:57.291 info [caliper] [worker-orchestrator] No existing workers detected, entering worker launch phase...
2020.07.17-11:50:57.291 info [caliper] [worker-orchestrator] Waiting for 4 workers to be connected...
:-/ is not working yet.
here is a summary of what I've changed:
- the benchmark scenario file (config.yaml) , I changed workers block to:
workers:
type: local
number: 4
- bootstrap the fabric network: from master node created the network overlay, join nodes to swarm, run docker stack deploy (all fine) deployed on remote nodes, logs show that nodes are connected (and it was working before with a single worker)
- started mosquitto, run in a container at the port 1883
- for each worker run : npx caliper launch worker ...... --caliper-worker-remote true --caliper-worker-communication-method mqtt --caliper-worker-communication-address mqtt://xyz:1883
i can see them connecting to mosquitto:
mosquitto_1 | 1594983208: Sending PINGRESP to mqttjs_1d5b08b8 [52/228]
mosquitto_1 | 1594983210: No will message specified.
mosquitto_1 | 1594983210: Sending CONNACK to mqttjs_627ea09f (0, 0) mosquitto_1 | 1594983210: Received SUBSCRIBE from mqttjs_627ea09f
mosquitto_1 | 1594983210: master/update (QoS 0)
mosquitto_1 | 1594983210: Sending SUBACK to mqttjs_627ea09f mosquitto_1 | 1594983252: Received PINGREQ from mqttjs_76498382
mosquitto_1 | 1594983252: Sending PINGRESP to mqttjs_76498382
then i finally run the master
npx caliper launch master ...... --caliper-worker-remote true --caliper-workper-communication-method mqtt --caliper-worker-communication-address mqtt://x.y.z:1883 --caliper-flow-only-test
..... and it hangs with the message:
2020.07.17-11:50:57.287 info [caliper] [messenger.js] Creating messenger of type "process-master"
2020.07.17-11:50:57.289 info [caliper] [null-observer] Configured "null" observer
2020.07.17-11:50:57.290 info [caliper] [round-orchestrator] Monitors successfully started
2020.07.17-11:50:57.290 info [caliper] [round-orchestrator] Started round 1 (open)
2020.07.17-11:50:57.291 info [caliper] [worker-orchestrator] Messenger not configured, entering configure phase...
2020.07.17-11:50:57.291 info [caliper] [worker-orchestrator] No existing workers detected, entering worker launch phase...
2020.07.17-11:50:57.291 info [caliper] [worker-orchestrator] Waiting for 4 workers to be connected...
:-/ is not working yet.
here is a summary of what I've changed:
- the benchmark scenario file (config.yaml) , I changed workers block to:
workers:
type: local
number: 4
- bootstrap the fabric network: from master node created the network overlay, join nodes to swarm, run docker stack deploy (all fine) deployed on remote nodes, logs show that nodes are connected (and it was working before with a single worker)
- started mosquitto, run in a container at the port 1883
- for each worker run : `npx caliper launch worker ...... --caliper-worker-remote true --caliper-worker-communication-method mqtt --caliper-worker-communication-address mqtt://xyz:1883`
i can see them connecting to mosquitto:
mosquitto_1 | 1594983208: Sending PINGRESP to mqttjs_1d5b08b8 [52/228]
mosquitto_1 | 1594983210: No will message specified.
mosquitto_1 | 1594983210: Sending CONNACK to mqttjs_627ea09f (0, 0) mosquitto_1 | 1594983210: Received SUBSCRIBE from mqttjs_627ea09f
mosquitto_1 | 1594983210: master/update (QoS 0)
mosquitto_1 | 1594983210: Sending SUBACK to mqttjs_627ea09f mosquitto_1 | 1594983252: Received PINGREQ from mqttjs_76498382
mosquitto_1 | 1594983252: Sending PINGRESP to mqttjs_76498382
then i finally run the master
`npx caliper launch master ...... --caliper-worker-remote true --caliper-workper-communication-method mqtt --caliper-worker-communication-address mqtt://x.y.z:1883 --caliper-flow-only-test`
..... and it hangs with the message:
2020.07.17-11:50:57.287 info [caliper] [messenger.js] Creating messenger of type "process-master"
2020.07.17-11:50:57.289 info [caliper] [null-observer] Configured "null" observer
2020.07.17-11:50:57.290 info [caliper] [round-orchestrator] Monitors successfully started
2020.07.17-11:50:57.290 info [caliper] [round-orchestrator] Started round 1 (open)
2020.07.17-11:50:57.291 info [caliper] [worker-orchestrator] Messenger not configured, entering configure phase...
2020.07.17-11:50:57.291 info [caliper] [worker-orchestrator] No existing workers detected, entering worker launch phase...
2020.07.17-11:50:57.291 info [caliper] [worker-orchestrator] Waiting for 4 workers to be connected...
any ideas? why is the workers type "local" ?? It is still being ignored as mentioned in the blog post ?
`caliper-workper-communication-method` Typo in worker :)
Master arg: `caliper-workper-communication-method`. Typo in "worker" :)
And it defaults to "process"
oh man >.<
thank you
1.4.6
OMG is working!
haha let me rephrased. it made progress.
got an access denied error now. but i will look at after lunch
haha let me rephrase it. it has made progress.
got an access denied error now. but i will look at after lunch
almost there :-)
#success!!!
I've followed your tips and it worked. Thanks @nkl199 ! I've removed the start/end commads and deployed the network before launching the scripts. thanks @klenik it makes a lot more sense what you've said now. :-) It took a while but I finally wrapped my head around this. thanks a lot.
Hi there, I'm looking for examples of CPU intensive chaincodes. Most what've seen are IO bounded with simple processing steps. Do you know examples of such type of workloads?
Zero-knowledge proofs? Not sure if that's a thing in Fabric yet.
Hi.. when I try to run `./publish.js verdaccio start` terminal gets stucked at `PM2_HOME=.pm2 npx pm2 start verdaccio -- -l ${BIND} -c artifacts/verdaccio-config.yaml` with this `rollbackfailedoptional verb npm-session`. Please help me out
hello everyone, right now I'm testing my network that run on very small system (ec2 t2.micro with 1gb of ram) and instantiating the chaincode is really slow. is there anyway to delay the instantiating timeout? or is there anyway to skip instantiating process like in skipping channel create by using environment variable? i'm able to instantiate the chaincode using fabric "peer chaincode instantiate..." but whenever i tried to test using caliper with the same chaincode and version that has been installed, it gave me error "chaincode already installed" even though both chaincode are exactly the same but have different folder.
hello everyone, right now I'm testing my network that runs on a very small system (ec2 t2.micro with 1gb of ram), and instantiating the chaincode is really slow. is there any way to delay the instantiating timeout? or is there any way to skip the instantiating process like in skipping channel create by using environment variable? I'm able to instantiate the chaincode using fabric "peer chaincode instantiate..." but whenever I tried to test using caliper with the same chaincode and version that has been installed, it gave me error "chaincode already installed" even though both chaincodes are exactly the same but have a different folder. I'm using caliper 0.3.2 right now and I can only find how to increase the timeout on older caliper version via e2eUtils.js, but I can't seem to find this file in the current version)
hello everyone, right now I'm testing my network that runs on a very small system (ec2 t2.micro with 1gb of ram), and instantiating the chaincode is really slow. is there any way to delay the instantiating timeout? or is there any way to skip the instantiating process like in skipping channel create by using environment variable? I'm able to instantiate the chaincode using fabric "peer chaincode instantiate..." but whenever I tried to test using caliper with the same chaincode and version that has been installed, it gave me error "chaincode with name 'marbles' already exists" even though both chaincodes are exactly the same but have a different folder. I'm using caliper 0.3.2 right now and I can only find how to increase the timeout on older caliper version via e2eUtils.js, but I can't seem to find this file in the current version)
hello everyone, right now I'm testing my network that runs on a very small system (4 hosts of ec2 t2.micro with 1gb of ram connected with docker swarm), and instantiating the chaincode is really slow. is there any way to delay the instantiating timeout? or is there any way to skip the instantiating process like in skipping channel create by using environment variable? I'm able to instantiate the chaincode using fabric "peer chaincode instantiate..." but whenever I tried to test using caliper with the same chaincode and version that has been installed, it gave me error "chaincode with name 'marbles' already exists" even though both chaincodes are exactly the same but have a different folder. I'm using caliper 0.3.2 right now and I can only find how to increase the timeout on older caliper version via e2eUtils.js, but I can't seem to find this file in the current version)
hello everyone, I think it's related to caliper. Right now I'm comparing the performance of multi hosts (4 hosts of ec 2 t2.medium 4 gb) and single node (16gb ram), but I'm confused why does my system on the cloud have better performance compared to my single node (201 TPS vs 87 TPS tested using caliper). when I tried to figure out just how fast is the connection between hosts by installing ping on peer and pinging hostname (peer1.org2.example.com on host B from peer0.org1.example.com on host A) and the ping was 0.078ms, but when i use ping outside of container with static IP (from host A to B ) the ping was 0.92ms?? I'm confused right now, does that mean the connection between peer doesn't actually mean they connected between hosts? (because when i ping from inside the peer container, all of the other containers have IP 10.0.2.x even containers from different hosts, so I doubt they actually pinged the real host). does that mean caliper aren't actually connecting via multi-hosts???
Could you post the entire terminal output, please?
```
Hi,
```
Hi, my setup is: ``` npm init -y
npm install --only=prod @hyperledger/caliper-cli@0.3.2
npx caliper bind --caliper-bind-sut fabric:1.4.6````
After I launch the benchmark as:
```
npx caliper launch master \
--caliper-workspace . \
--caliper-benchconfig benchmarks/benchmark_config.yaml \
--caliper-networkconfig networks/etwork_config.yaml \
--caliper-fabric-gateway-usegateway \
--caliper-fabric-gateway-discovery \
--caliper-flow-only-test
````
hi all
i might be asking the question at the wrong forgive me for that
i would like to know how to perform unit testing for nodejs chaincode that uses fabric-contract-api and also how to increase the tps of the network
hello everyone, i wonder why i can't get above certain send-rate TPS even though i set it higher than that (i set 150 send-rate TPS but i only get 120 send-rate TPS even though my throughput TPS is almost the same send-rate, so my multi hosts should be able to handle above 120 send-rate TPS). it seems like caliper is limiting the send-rate because on my single hosts with higher CPU and ram, i can get 200 send-rate TPS even though it can't handle that and the throughput is dropping to 90 TPS because of CPU overload. can anyone tell me how to remove the limitation of send-rate?
I was looking for existing chaincodes. But thanks for the pointer. I will have a look at it.
Has joined the channel.
how many workers/clients are you using?
Has joined the channel.
When I increase the numbre of transaction per second I get this error. please how can increase the commit time?
Clipboard - 27 juillet 2020 10:40
hi all
i am getting the error
E0728 11:36:35.853572093 17790 ssl_transport_security.cc:1227] Handshake failed with fatal error SSL_ERROR_SSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed.
and the log inside the peer is
2020-07-28 06:06:41.108 UTC [core.comm] ServerHandshake -> ERRO 0a5 TLS handshake failed with error EOF server=PeerServer remoteaddress=172.18.0.1:43426
is it any issues with tls certificate i gave or something else
i have given the correct tls certificate
i was able to run transactions and all using the same
use a different SDK binding - iirc 1.4.6 SDK had some release issues relating to missing packages ... try latest or 1.4.8
Hey,
I am getting the following error for fabcar -:
2020.07.28-20:42:20.134 error [caliper] [caliper-engine] Error while performing "install" step: Error: Invalid endorsement for fabcar@v1 in mychannel from peer0.org1.example.com: chaincode registration failed: container exited with 0
I did not get the same error while instantiating the marbles chaincode. Is there a way to fix this?
Hey,
I am getting the following error for fabcar -:
2020.07.28-20:42:20.134 error [caliper] [caliper-engine] Error while performing "install" step: Error: Invalid endorsement for fabcar@v0 in mychannel from peer0.org1.example.com: chaincode registration failed: container exited with 0
I did not get the same error while instantiating the marbles chaincode. Is there a way to fix this?
Hi.
Can I know when fabric version 2.2 is supported? (include nightly or beta or whatever else)
When you call `invokeSmartContract` from your custom workload module, the last argument is the timeout in seconds. Try increasing that
This error is returned by peer0org1, so check those logs for extra details
Make sure there are no remnant crypto stuffs from previous runs in your local keystore (Caliper should warn for that)
Hi,
I get this error UNKNOWN: too many requests for /protos.Endorser, exceeding concurrency limit (2500) i tried to change this value in the core:yaml file and restart the network but I get the same error.
Hi,
I get this error: UNKNOWN: too many requests for /protos.Endorser, exceeding concurrency limit (2500) i tried to change this value in the core:yaml file and restart the network but I get the same error.
Hi,
I get this error: UNKNOWN: too many requests for /protos.Endorser, exceeding concurrency limit (2500) i tried to change this value in the core.yaml file and restart the network but I get the same error.
Thx @klenik
Since the docker is removed at the end, I am not able to access the logs....is there another way around?
Which Fabric version are you using?
1.4.1
This is Fabric specific, so please try that channel, we can only assist with client/Caliper-side questions
Skip the end command executed by Caliper: https://hyperledger.github.io/caliper/v0.3.2/runtime-config/#benchmark-phase-settings
Add the `caliper-flow-skip-end` flag when you call Caliper
Skip the end command executed by Caliper: https://hyperledger.github.io/caliper/v0.3.2/runtime-config/#benchmark-phase-settings
Add the `--caliper-flow-skip-end` flag when you call Caliper
Screenshot from 2020-07-28 17-45-34.png
@klenik this is the log
https://github.com/google/docsy/issues/265
Maybe this helps
i have node v10.22.0
The question is what nodejs version is available in the container spin-up by the peer
how fo i check/fix that?
*do
I'd inspect this image: https://github.com/hyperledger/fabric/blob/master/sampleconfig/core.yaml#L544
how can i access this on my machine....also i get a different error when i try fabcar with java
if you're running a local test, then the images should be present
maybe not as the nodeenv, but ccenv image
But this is really a Fabric question, so I'd try the fabric channel
I inspected it, but hot sure what i should look for:sweat_smile:
try to run a container from that image interactively, and check the node version
v8.16.1.... this is the node version in the container
@klenik how do i upgrade it?
I don't know if you can. Try using newer Fabric images, like 1.4.8
hopefully it has a newer node version
i was able to upgrade the node version but the problem still persisted
the java version works perfectly....only the javascript version seems to have the chaincode instantiation issue
hmm, maybe Fabric v2 contains a fresh node version (if it's an option for you)
Although accessing the file system from a chaincode seems like a strange move, if you don't mind me saying :)
i was able to instantiate the chaincode code.... turn out i didint install fabric-contract-api and fabric-shim api
@klenik i got a different error after that
Screenshot from 2020-07-29 17-15-10.png
hopefully they will tell you the magic flag to change that concurrency limit ... peer configuration property named `LimitsConcurrencyEndorserService`
it is in the core.yaml file ??
yeah, should be there somewhere ... but the main fabric channel should be able to pin pint it faster
I change it and restart the network but I get the same error
then i guess the configuration setting is not being picked up - either a bug to be reported to fabric, or you need to do something different
ok thank you @nkl199
Hi. I saw that latest version of Caliper is not supported for Fabric 2.0 (Chaincode Lifecycle). Will it be fixed anytime soon ? Or is there a work around for that ?
@tharindupr As of now, the administrative actions are removed from the Fabric SDK, so there's nothing we can do to support the new lifecycle. You can set up your Fabric network through the peer CLI, then connect to the initialized network with Caliper
Thanks.
anyone?
This is also returned from the chaincode, so check whether your `prop` variable is initialized properly
This is also returned from the chaincode, so check whether your variable containing `prop` is initialized properly
Has joined the channel.
Has joined the channel.
Hi. I tried the fabcar benchmark sample for fabric 2.1.0 and caliper 0.3.2. I use 170 tps and 340 as the max assets. I observe that in the `helper.js`, the process of `createCar` is skipping some index, hence causing errors when doing benchmark. e.g when queryCar tries to get index 336 it returns error because the helpers.js create object for index 334, then jump to 337 without creating 335 and 336. Is this the expected behaviour?
sounds like a defect to me - can you please raise an issue
Has joined the channel.
Hi I have a question about Caliper (Installing locally from source). In the documentation, it says you can check (and change) them in the package.json files of the corresponding packages. I'm quiet confused which package.json should I chose and how can I change it? Say I would like to change the SUT to ethereum.
picking a target platform to test is done via the network configuration file, the package update will only modify the version of the node-sdk used to interact.
so the network file would look like: https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/ethereum_tests/networkconfig.json
and you can modify versions in https://github.com/hyperledger/caliper/blob/master/packages/caliper-ethereum/package.json to change the ethereum dependancies
Hi tried to benchmark a Chaincode i created (Which perfectly works well during invokation) using Caliper 0.3.1 and Fabric 2.1.0. During the client creation Caliper throws the following error :
caliper | 2020.08.03-10:28:28.878 error [caliper] [adapters/fabric] Failed to perform submit transaction [createSubject] using arguments [12436230-d574-11ea-9030-371021c8290e,subject-0,{'manufacturer':'samsung', 'organization': 'org1','location':'org1-bulding-02'}], with error: Error: No discovery results found
Hi tried to benchmark a Chaincode i created (Which perfectly works well during invokation) using Caliper 0.3.1 and Fabric 2.1.0. During the client creation Caliper throws the following error :
caliper | 2020.08.03-10:28:28.878 error [caliper] [adapters/fabric] Failed to perform submit transaction [createSubject] using arguments [12436230-d574-11ea-9030-371021c8290e,subject-0,{'manufacturer':'samsung', 'organization': 'org1','location':'org1-bulding-02'}], with error: Error: No discovery results found
Is this compatibility issue or something wrong with my configuration ?
I encounter something like that as well. I think it has something to do with this issue https://github.com/hyperledger/caliper/issues/860
Hve a look in the peer logs, it might be that you are using the wrong certificates
Have a look in the peer logs, it might be that you are using the wrong certificates
It only shows intermittently though - when benchmarking, some transactions failed due to no discovery results. I don't think certificates are the problem here
stange - the "no discovery results" error is from the base SDK being used, not caliper
what fabric sdk are you bound to?
2.1.0 - in the end I decided not to use gateway discovery to avoid this issue.
Has joined the channel.
Hi! Does Caliper support the latest version of Sawtooth? The documentation mentions support for 1.0 versions of sawtooth and "latest" (which would be 1.2.5).
caliper supports (or at leat tries to support) SDK versions for target platforms and not the platform itself
@aqid This could be an issue with the node-sdk itself. Might be worth asking on the #fabric-sdk-node channel to see if it's a known issue or not and whether to raise a jira about it.
I raised an issue here @nkl199 https://github.com/hyperledger/caliper/issues/944
ah, strictly speaking it is an issue in the caliper-benchmarks ... could you copy-paste it to https://github.com/hyperledger/caliper-benchmarks/issues ... if you do it, you will get notified once fixed
ah understood. sorry about that and thanks for the correction. I moved the issue to https://github.com/hyperledger/caliper-benchmarks/issues/108
no worries - thanks!
Has joined the channel.
Hi,
I see in the master branch examples that it is possible to retrieve more information about the context of the benchmark in the WorkModule ( workerIndex, totalWorkers, roundIndex).
Is it possible to do the same with version 0.3.2?
Thanks
Hi,
I see in the master branch examples that it is possible to retrieve more information about the context of the benchmark in the WorkloadModule ( workerIndex, totalWorkers, roundIndex).
Is it possible to do the same with version 0.3.2?
Thanks
Hi, Guys, i am facing the following issue regarding the deployment of caliper as a docker container via docker-compose up:
Error: Benchmark configuration file "/hyperledger/caliper/workspace/benchmarks/scenario/simple/config.yaml" does not exist
This happens on versions 0.2 and 0.3 as well.
Actually the error on 0.3 is this one:
error [caliper] [cli-launch-master] Unexpected error during benchmark execution: Error: Invalid "mychannel" channel configuration: child "chaincodes" fails because ["chaincodes" is required]. "contracts" is not allowed
See whether you have correctly mounted the config.yaml on the docker-compose.yaml file.
I hope the same SDK is used when we are implementing the API to expose chaincode functions via HTTP. If so invocation works perfectly well in the REST API.
Thanks for your reply! I have another question when I'm testing the frame work. It throws Error: Cannot find module '@hyperledger/caliper-core' when I use node ./packages/caliper-cli/caliper.js launch manager --caliper-workspace ~/caliper-benchmarks --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/ethereum/1node-clique/ethereum.json to start.
have you performed:
- npm install
- npm run bootstrap
?
I should have solve the dependencies but it still doesn't work. I even tried to install the @hyperledger/caliper-core in the caliper's node_moudle but it cannot find it as well.
yeah I have done these process
Sorry I am a newcomer in this field :sweat_smile:
hmm, so you:
- modified ethereum package
- ran bootstrap
- tried node ./
I just cloned caliper and caliper-benchmark. And followed the website's guidance.
where/when does the failure occur? I'm wondering if you need to package the callbacks you are trying to use as well. If you start by testing with the current test files used within the integratino tests (packages/caliper-tests-integration/ethereum) you can be assured that they *must* work .. we can then diagnose issues in the samples
Has joined the channel.
Clipboard - August 4, 2020 9:54 AM
This happens only on the first transaction.
I wanted to use the Worker number as an identifier in the names of files produced and consumed by workers in different rounds.
Right now I'm using the name of the worker's Docker container for this purpose, but I'm still interested in an answer to the question.
Thanks
Did the path to github.com/fabcar/go has changed?
Error: error getting chaincode code fabcar: error getting chaincode package bytes: Error obtaining dependencies for github.com/hyperledger/fabric-chaincode-go/pkg/cid: command
try ll ~/caliper-benchmark/benchmarks/scenario/smiple/
config.yaml file should be available in this directory. otherwise match to the correct location where config.yaml file exist.
in 0.3.2 the worker ID (zero based index) is available directly from `context.clientIdx` within the callback parameter
looks like the dependancies have been moved :/ that's bad form :(
Fixes include:
- finding out where the dependancies moved to, and use them
- vendoring the chaincode stop it happening again
looks like you are trying to use 0.4-unstable configs with 0.3
Hmmm, ah - Willing to bet that this is an error that node SDK is relying on to trigger the discovery process. Shame they don't deal with that error properly *if* that is the case
Has joined the channel.
It seems that the problem is older than it looks here https://lists.hyperledger.org/g/fabric/topic/28863261 and here https://stackoverflow.com/questions/49560104/cannot-find-package-cid-in-goroot-or-gopath and in many others, up to now have seen no answer that worked with me.
Clipboard - August 5, 2020 1:13 PM
a whole week now
Ah OK, thanks.
Clipboard - August 5, 2020 1:42 PM
Hi guys, quick confirmation: are the rounds executed sequentially? If so, in which order? Is it always that the top round in config will be executed first?
yes, they run sequentially. The rounds are read in as an array and processed as such
thanks!
Clipboard - August 6, 2020 11:19 AM
Hi guys, I think there's something wrong in the npm package. npm registry can't find caliper-cli
npm is having issues with scoped packages
npm is having issues with scoped packages https://status.npmjs.org/
I've already runned ./generate.sh on fabric/config_solo, and this still happening when i try to start local via NPM
error [caliper] [cli-launch-master] Unexpected error during benchmark execution: Error: Invalid "mychannel" channel configuration: child "chaincodes" fails because ["chaincodes" is required]. "contracts" is not allowed
please use 0.3.2 tagged repo and not the master - the master is tracking (or at least tyring to track) the current unstable caliper releases
please use 0.3.2 tagged samples repo and not the master - the master is tracking (or at least tyring to track) the current unstable caliper releases
The same happened on 0.3.2
And thank you for the help, sorry for nothing being polite, it is the lack of sleep.
I would like a confirmation on how to write callbacks with version 0.3.2.
Should we write them as async functions and do the invocations inside without await as in this example from the documentation?
```
module.exports.run = async () => {
let txArgs = {
// TX arguments for "mycontract"
};
return bc.invokeSmartContract(contx, 'mycontract', 'v1', txArgs, 30);
};
```
If we don't want to analyze the result, we are therefore free to make the invocation without await?
Oh, 0.2.0 actually worked out
caliper.png
Message Attachments
Hi Everyone,
I can't seem to instantiate golang chaincode where java chaincode works fine
[ ](https://chat.hyperledger.org/channel/caliper?msg=gYLJECJm8GSDe3Q26) Hi Everyone,
I can't seem to instantiate golang chaincode where java chaincode works fine
caliper.png
caliper.png
caliper.png
Fixed the issue. It was because of the version mismatch of ccenv image
Hello, I want to set endorsement policy in fabric-go.yaml right, but endorsement policy error occurs like error1 file. I don't know how to set endorsement policy exactly.
3 Organizations in my network, each organization have 2 peers, 2 peers, 1peer like fabric-go file.
Please help me :sob:
Fabric-go.PNG
Error1.PNG
Fabric-go2.PNG
Has joined the channel.
Has joined the channel.
Hi there,
caliper is working in a distributed docker swarm. I know need to find how how to saturate my deployment.
I'm a bit lost with some parameters.
Specifically:
crypto-config.tx has a parameter Users, how does it connect to caliper? How many users shall I create?
benchmark/scenario/simple/config.yaml has workers/number. How does this number connects to the number of users? are they only the instances of caliper and it will spawn the necessary number of concurrent users to saturate the deployment?
Hi there,
caliper is working in a distributed docker swarm. I now need to find how how to saturate my deployment.
I'm a bit lost with some parameters.
Specifically:
crypto-config.tx has a parameter Users, how does it connect to caliper? How many users shall I create?
benchmark/scenario/simple/config.yaml has workers/number. How does this number connects to the number of users? are they only the instances of caliper and it will spawn the necessary number of concurrent users to saturate the deployment?
finally, after running the simple/config.yaml I get at the client an output which is a summary of the transactions. Is it possible to know a per second information of the system? How do i get this kind of output??
Hi there,
caliper is working in a distributed docker swarm. I now need to find how how to saturate my deployment.
I'm a bit lost with some parameters.
Specifically:
crypto-config.tx has a parameter Users, how does it connect to caliper? How many users shall I create?
benchmark/scenario/simple/config.yaml has workers/number. How does this number connects to the number of users? are they only the instances of caliper and it will spawn the necessary number of concurrent users to saturate the deployment?
finally, after running the simple/config.yaml I get at the client an output which is a summary of the transactions. Is it possible to know a per second information of the system? How do i get this kind of output format??
Thanks
the network config file specifies available identities to use. The identities match those requested in the callback/work load module. the `workers/number` parameter tells caliper how many test workers to spawn, and each of these can use the same listed identity to transact with... unless you have a specific use case the requires multiple identities with different roles, it is usual to have the caliper workers using a single identity within testing. if you are looking for for realtime information, then you need to use the prometheus/grafana configuration - which is detailed in the observers section of the caliper docs
thanks
Correct. If you don't do anything with the results, just return the promise directly
You are requesting 3 signatures from Org2. The `signed-by` indices should be 0, 1 and 2 (instead of 1, 1, 1)
You are requesting 3 signatures from Org1. The `signed-by` indices should be 0, 1 and 2 (instead of 1, 1, 1)
where are the charts stored after the experiment?
Looking at here https://hyperledger.github.io/caliper/v0.3.2/caliper-monitors/ and at docker charting..
At the end of the experiment I can see 2 new files on the caliper master node. The caliper.log and report.html. but no charts or erros... bit lost here.
any advice?
charts appear in the output html file
charts appear in the output html file, but only if specified
I tried to turn everything on but nothing came out:
monitor:
type:
- docker
docker:
name:
- all
charting:
bar:
metrics: [Memory(avg), Memory(max), CPU%(avg), CPU%(max)]
polar:
metrics: [all]
interval: 1
I can see the tables though..
https://www.dropbox.com/s/dseakn7wtqe9la1/Screen%20Shot%202020-08-12%20at%202.53.21%20PM.png?dl=0
I think there is a typo... below docker must be "containers" instead of "name"
which version of caliper?
0.3.2
hmm, possibly a typo in the docs
the file was a copy of the old config.yaml
the typo probably came from there
let me re-run and see if the pictures are built
(I need to stress the CPU at the peers, thus it would be nice to have a picture of what experiment is more demanding)
note that the charts are derived from the same information in the tables - if you want time based metrics, the only option is grafana
still no pictures,
but the table with resource shows up:
https://www.dropbox.com/s/lt4baa4zuc377z0/Screen%20Shot%202020-08-12%20at%203.12.10%20PM.png?dl=0
I will move to grafana as soon as I can get anything visual. I have no experience with Prometheus and Grafana, I'm afraid to open a can of worms...
I want to make sure that everything is right from caliper side before moving into it
Thanks.
I'm still confused with the role played by monitors and observers, what is the difference?
From what i inferred from the documentation, monitors gather information about the system resources (CPU, Mem, Net) and observers about the application/chaincode (TPS, Latency, success, failure...). Am I right?
observer will detail (print to console) the current transaction information at a high level (submitted/failed/pending) monitors are for resource consumption collection
so observer data can be collected locally while monitor will be gathered somewhere?
can I save the observer output to a file?
That's probably what I want. I dont need CPU,Mem/Net information because im collecting it in a different tool.
if I can print out all the metrics to console timestamped I will be happy.
in the next release you will be able to save to a file, though worth noting that caliper will draw that information from prometheus ... so best get it from there
in the next release you will be able to save to a file (or in fact do whatever you want), though worth noting that caliper will draw that information from prometheus ... so best get it from there
in the next release you will be able to save to a file (or in fact do whatever you want), though worth noting that caliper will currently draw that information from prometheus ... so best get it from there
the problem is that it doesnt seem easy to get it to work without experience with prometheus and grafana. :-( no tutorials.
docs assume prometheus and grafana are working alredy.
I will give a try :-(
you could modify you callbacks to also perform logging, but then you would have to perform aggregation from those logs ... which would be hideous
is the example here https://github.com/hyperledger/caliper-benchmarks/tree/master/networks/prometheus-grafana supposed to run standalone ? Or do I have to integrate this to the dockerfile that spawn caliper?
we hav plans for a caliper dashboard for grafana, which would help in the future ... but sadly isn't any use to you now
my goal is to have a timeline of transactions/s. so I can correlate that with other data I have.
since i cannot get the client output, the way to get seems to be via prometheus then.
here is what I will try to do:
I will get one of the nodes avaliable and docker stack up this file: https://github.com/hyperledger/caliper-benchmarks/blob/master/networks/prometheus-grafana/docker-compose-fabric.yaml
then I will update the benchmark file https://github.com/hyperledger/caliper-benchmarks/blob/master/benchmarks/scenario/simple/config.yaml
with this: https://hyperledger.github.io/caliper/v0.3.2/caliper-monitors/#prometheus-charting
is that correct?
here is what I will try to do:
I will get one of the nodes avaliable and docker stack up this file: https://github.com/hyperledger/caliper-benchmarks/blob/master/networks/prometheus-grafana/docker-compose-fabric.yaml
then I will update the benchmark file https://github.com/hyperledger/caliper-benchmarks/blob/master/benchmarks/scenario/simple/config.yaml
with this: https://hyperledger.github.io/caliper/v0.3.2/caliper-monitors/#prometheus-charting
is that correct? It's that what needs to be done to get caliper and prometheus/grafana working ?
we have sample networks with integrated solutions - also in the integratino tests (make sure you pick the tagged 0.3.2 branch)
I'm using the 0.3.2
sorry for being dumb and seem like repeating the same questions.. thanks for all the help!
I think I got.
let me give a try :-)
I need a coffee first ;-) brb
getting close to deploy
docker-compose-bare.yml: used to only stand up a prometheus/grafana system that will scrape from the Prometheus Push Gateway
docker-compose-fabric.yml: as above with the adition of targeting exported fabric metrics on:
peer0.org1.example.com:9443
peer0.org2.example.com:9443
What it means??
what does it mean to target exported fabric metrics ?
or scrape prometheus only ?
Hi,
Hi,
I am running the Caliper v0.3.2 Benchmarks get-asset.yaml and create-asset.yaml
get-asset runs fine. create-asset returns this error. Has somebody seen this error before?
2020-08-12T23:14:43.294Z - error: [EventService]: send[ibp-jorge-peer11-peer.ibp25-dal10-jorge-bd8e586d66eff81119bfe4722b13dbd4-0000.us-south.containers.appdomain.cloud:443] - #1 - no targets started - Error: Event service ibp-jorge-peer11-peer.ibp25-dal10-jorge-bd8e586d66eff81119bfe4722b13dbd4-0000.us-south.containers.appdomain.cloud:443 is currently listening
2020-08-12T23:14:43.297Z - warn: [TransactionEventHandler]: strategyFail: commit failure for transaction "9bd982c0d86a54d5ba1f6a1b03dfc6596d32fa5f8abd1633e35be2762d9e963c": Error: No successful events received
(node:77242) UnhandledPromiseRejectionWarning: Error: No successful events received
at AnyForTxStrategy.checkCompletion (/Users/jorgego/Documents/CODE/caliper-benchmarks/caliper-benchmarks/node_modules/fabric-network/lib/impl/event/anyfortxstrategy.js:31:20)
at AnyForTxStrategy.errorReceived (/Users/jorgego/Documents/CODE/caliper-benchmarks/caliper-benchmarks/node_modules/fabric-network/lib/impl/event/transactioneventstrategy.js:61:14)
at TransactionEventHandler.eventCallback (/Users/jorgego/Documents/CODE/caliper-benchmarks/caliper-benchmarks/node_modules/fabric-network/lib/impl/event/transactioneventhandler.js:92:27)
at CommitListenerSession.start (/Users/jorgego/Documents/CODE/caliper-benchmarks/caliper-benchmarks/node_modules/fabric-network/lib/impl/event/commitlistenersession.js:27:18)
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:77242) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:77242) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
that's an error from the node sdk, so you might get more traction in that channel. Peer logs might help diagnose this, as it would indicate that the event stream is being dropped
fabric peers can act as scrape targets for prometheus, to share internal stats
still lost. not seen anything useful.
Here is where I got so far:
I managed to add mosquitto to swarm
Has joined the channel.
2020.08.13-23:24:22.829 info [caliper] [cli-launch-master] Set workspace path: /home/lidengjia/caliper/caliper-benchmarks
2020.08.13-23:24:22.830 info [caliper] [cli-launch-master] Set benchmark configuration path: /home/lidengjia/caliper/caliper-benchmarks/benchmarks/samples/fabric/marbles/config.yaml
2020.08.13-23:24:22.830 info [caliper] [cli-launch-master] Set network configuration path: /home/lidengjia/caliper/caliper-benchmarks/networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
2020.08.13-23:24:22.830 info [caliper] [cli-launch-master] Set SUT type: fabric
2020.08.13-23:24:22.832 info [caliper] [benchmark-validator] No observer specified, will default to `none`
2020.08.13-23:24:22.832 info [caliper] [caliper-engine] Starting benchmark flow
2020.08.13-23:24:22.839 error [caliper] [cli-launch-master] Unexpected error during benchmark execution: Error: Cannot find module 'fabric-ca-client/package'
Usage:
caliper launch master --caliper-bind-sut fabric:1.4.1 [other options]
also I'm using the networks/prometheus-grafana/docker-compose-fabric.yaml I also had to change it to add to the swam network.
I appended a few changes as the original file seem to work for single host deployment. namely: set placement to a specific host (all the prometheus stack to the same host) and added an alias to each container of prometheus stack for reference within the swarm, namely: prometheus container have an alias to prometheus.example.com, pushgateway also have one to pushgateway.example.com and so on..
because when the join to the swarm the container is prefixed with the tag and things break apart.
finally the prometheus-fabric.yml file was updated with the targets:
prometheus.example.com:9090, pushgateway.example.com:9091, every peer, and every orderer
caliper version 0.3.0 benchmark version 0.3.0.I am a student who study fabric & caliper recently, hope any answer ,Thanks
back on benchmarks/scenario/simple/config.yaml I appended the monitor block
push_url: .... pushgateway.example.com:9091
url: prometheus.example.com ...
and to finalize, in the docker-compose of the network )network/fabric/docker-compose/docker-compose-tls.yaml I've appended the following:
for every orderer,
- ORDERER_OPERATIONS_LISTENADDRESS=0.0.0.0:8443
- ORDERER_METRICS_PROVIDER=prometheus
and for every peer:
- CORE_OPERATIONS_LISTENADDRESS=0.0.0.0:9443
- CORE_METRICS_PROVIDER=prometheus
I can deploy. everything is up and running.
https://www.dropbox.com/s/45jm01vtqqeny8u/Screen%20Shot%202020-08-13%20at%204.36.59%20PM.png?dl=0
docker service logs in every container says everything is fine.
open grafana, prometheus and cadvisor web interfaces.
it's supposed to see something? everything is default and seem unconfigured.
:thinking: it seems that there are actually something in prometheus...
cadvisor seems to provide information about the server/machine. therefore it must be installed in all machines of the deployment (if Im interested in this information) am i right?
interesting.. after running the benchmark i can see that selecting some metrics in prometheus at least something is happening
https://www.dropbox.com/s/lbjlvi3n1yz1yur/Screen%20Shot%202020-08-13%20at%205.00.54%20PM.png?dl=0
I think im getting closer but I cannot see these metrics in prometheus:
caliper_tps
caliper_latency
caliper_send_rate
caliper_txn_submitted
caliper_txn_success
caliper_txn_failure
caliper_txn_pending
Hi,
Is it possible to have percentile indicators with Caliper?
YES!!! I got it! :-D
Besides the monitor i forgot to configure the observer. :-) now I got the metrics
The short answer is no, only min/max/avg. The long answer is that percentile calculation would require storing TX results, and Caliper is currently "stateless" to support long running benchmarks (approximating the percentile would be possible with limited state storage). The best way to capture percentiles right now is to save the TX results in your workload module, and do your own post-processing.
Hi there, so far i was using caliper running locally form the source. However there are complications integrating with prometheus inside the docker swarm. (got some weird errors from clients trying to access endpoints private to the swarm like peer0.org1.example.com ... etc) Then I decided to move caliper master and workers into swarm too.
A few problems raised and I hope someone can help with:
I'm using a distributed deployment (mqtt and several workers + master) it was working. The docker-compose example does not include the specific variables to work in this setting such as endpoints to mosquitto and communication parameters. I followed the patter and added them but I dont know if they actually exists.
from dockerfile:
command: launch worker
environment:
...
- CALIPER_WORKER_REMOTE=true
- CALIPER_WORKER_REMOTE_METHOD=mqtt
- CALIPER_WORKER_COMMUNICATION_ADDRESS=mqtt://mosquitto.example.com:1883
can you confirm they do exist?
also, the caliper code mounted is already bind to the SUT, but when the container starts, it start compiling stuff again and it breaks. not sure why. Is there a way to skip binding?
any advice?
o
ok
Ok I figured. I compiled capiler with an ubuntu container. probably issues with libc is preventing it to work.
I will create a container for clients myself using the same environment.
for those variables, I will simply append them to the launch command just in case. it should do.
@dporto You can set the desired settings through either environment variables, command line arguments, or configuration files, whatever suits your deployment: https://hyperledger.github.io/caliper/v0.3.2/runtime-config/
Also, if you omit the `caliper-bind-sut` setting, the binding is skipped by the manager/worker processes.
thanks @klenik
Is there an ubuntu based caliper image or only alpine?
are the dockefiles used to build the caliper image available?
Only alpine, but you can easily build your own image based on the dockerfile in the repo
https://github.com/hyperledger/caliper/blob/master/packages/caliper-publish/caliper.Dockerfile
Only the package install commands will change. But note, that the above file builds the image from an already published caliper cli package
nice!
You can create custom images from directly the source based on this: https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/fabric_docker_distributed_tests/run-with-build.sh
I just found out you published the last version :-)
thanks!
I tried to use the default one but had several issues including node version. so, had to build my own. thanks
It's also useful to prebind caliper in the image if you're working with the same sut version over and over again
The npm registry will appreciate it :)
(im building a set of playbooks to deploy caliper and fabric automatically building the scenario with orgs, orderers, peers, clients, etc.) I've found a few bugs on the examples probably due to old versions that weren't updated.
I will make it available when i finish
I can deploy both locally and spread in a cluster. the only requirements are docker and a list of nodes with ssh keys.
Let us know your experience with caliper in a distributed/cluster setup :) so far I found it really flexible in similar scenarios
>.< the worker container is failing to start due this error:
Error: Process-based communication is configured for the worker, but it does not have a parent process
I have create the images with ubuntu (https://hub.docker.com/r/danielporto/caliper/tags), the same I'm using to build the caliper-benchmark package.
ok progress... added some variables. another incomplete example...
YES! success!
custom caliper container is integrated to the swarm and connecting to mosquitto. should work. let's try a benchmakr
custom caliper container is integrated to the swarm and connecting to mosquitto. should work. let's try a benchmark
OK, thanks.
Has joined the channel.
Hei, Guys, I'am running caliper and fabric 1.4.1 here, and, is kind of strange, but a VM with 2GB RAM and 2vCPU is running the simple bench much better than a xeon, six core with 32gb. The same files, the same version.
Clipboard - 17 de Agosto de 2020 às 16:13
Clipboard - 17 de Agosto de 2020 às 16:14
Helly guys, I'm having problems running caliper baremetal vs inside a container.
I keep the same fabric network.
same benchmark configuration file.
When running inside the container I get lots of MVCC_READ_CONFLICTs. When running baremetal, I see just a few of them.
2020.08.18-14:39:13.502 error [caliper] [adapters/fabric] Transaction[c44e742c16] commit errors:
- Commit error on peer0.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer1.org1.example.com with code MVCC_READ_CONFLICT
- Commit error on peer0.org2.example.com with code MVCC_READ_CONFLICT
- Commit error on peer1.org2.example.com with code MVCC_READ_CONFLICT
Clipboard - August 18, 2020 3:41 PM
Clipboard - August 18, 2020 3:45 PM
vs running baremetal:
Clipboard - August 18, 2020 3:45 PM
the containers are running in the same machines of the baremetal.
I use 4 hosts to either run the caliper directly or via container
my command line running baremetal:
npx caliper launch worker --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/v1/v1.4.1/2_orgs-3_raft_orderers-2_goleveldb_peers-1_clients/fabric-go-tls.yaml --caliper-worker-remote true --caliper-worker-communication-method mqtt --caliper-worker-communication-address mqtt://AAA.BBB.CCC.DDD:1883
and running inside docker container:
docker run --user $(id -u):$(id -g) --name caliper_worker_cosmos --network overlay_network --rm --env FABRIC_VERSION='1.4.1' --env FABRIC_CA_VERSION='1.4.1' --env CALIPER_WORKSPACE=/hyperledger/caliper/workspace --env CALIPER_BENCHCONFIG=benchmarks/scenario/simple/config.yaml --env CALIPER_NETWORKCONFIG=networks/fabric/v1/v1.4.1/2_orgs-3_raft_orderers-2_goleveldb_peers-1_clients/fabric-go-tls.yaml --env CALIPER_WORKER_REMOTE=true --env CALIPER_WORKER_COMMUNICATION_METHOD=mqtt --env CALIPER_WORKER_COMMUNICATION_ADDRESS=mqtt://AAA.BBB.CCC.DDD:1883 -v $(pwd):/hyperledger/caliper/workspace -it danielporto/caliper:0.3.2-fabric_1.4.1-ubuntu launch worker
any idea why so many conflicts when running the same codebase and benchmark in the same network and same machines inside and outside a container?
I noticed that when caliper creates files in /tmp at the workers. that can explain why i get errors with "account already created" when running more than one time. which doesnt happen with baremetal as t
I noticed that when caliper creates files in /tmp at the workers. that can explain why i get errors with "account already created" when running more than one time. which doesnt happen with baremetal as "/tmp" is kept across runs
also caliper master can run inside the container. things go south when workers are in containers.
then of transactions fail
also, for the caliper master, if the benchmark monitor is configured for docker, then i get some errors running the master inside a container. I guess it needs docker sock mapping inside the container.
hi, a few questions above so will try to answer them:
- MVCC_READ_CONFLICT is a fabric thing, because you are trying to change something based on out of date information. More/less of these is simply a result of the system being able to process transactions such that there is less occurrence
- Not familiar with the benchmark you are running, but it is possible that the workers are not adding worker UUIDs to help make transactions unique
- For monitoring docker resources, the docker sock mapping is required by the master container
thanks for replying @nkl199 , here are some answers:
- the MVCC behavior is consistent and the only thing I made different in both benchmarks was that one run in containers and the other dont. I ssh into the machines, open terminals and type the commands manually (tmux). There are 4 clients connected via mosquitto each one connected to one peer. There are 4 peers in total.
With the fabric network up, I run the baremental benchmark several times with the same result.
Caliper has initialized the benchmark only once to install the smartcontracts. and the command line run only the --caliper-flow-only-test
After installing the contracts, I run either the baremetal command (master and workers) or start each container manually
In all cases they connect and issue transactions
- the benchmark Im using is the standard one. benchmark/scenario/simple/config.yaml with the only difference that i increased the number of workers. it is running open bank accounts, query and transfer.
after running the caliper startup steps (start/init/install) some contracts are installed. I did not change that
thanks for letting know that the master container require docker mapping. I would test that eventually
thanks for letting know that the master container require docker mapping. I would test that now
For context, I'm trying to build a simple real case scenario.
fabric network: 2 (ca) orgs, 3 raft nodes, 4 peers (2 per org)
caliper nodes: 1 client per peer (4 in total) + master node/mosquitto/prometheus/grafana
A total of 14 nodes. each one with one container (except that i co-locate master node, mosquitto and prometheus in one node).
any smartcontract. got the example from scenario/simple.
once this is done I will try to find the peak throughput of my deployment for find the saturation point. no changes required. just vanila caliper/fabric
but there is no complete real world example of distributed setting to follow.
Therefore, I'm reverse engineering parameters and merging (several dated) tutorials in a try and error fashion.
For context, I'm trying to build a simple real case scenario.
fabric network: 2 (ca) orgs, 3 raft nodes, 4 peers (2 per org)
caliper nodes: 1 client per peer (4 in total) + master node/mosquitto/prometheus/grafana
A total of 14 nodes. each one with one container (except that i co-locate master node, mosquitto and prometheus in one node).
any smartcontract. got the example from scenario/simple.
once this is done I will try to find the peak throughput of my deployment for find the saturation point. no changes required. just vanila caliper/fabric
but there is no complete example of distributed setting to follow.
Therefore, I'm reverse engineering parameters and merging (several dated) tutorials in a try and error fashion.
@dporto this line is your problem: https://github.com/hyperledger/caliper-benchmarks/blob/871355a8a66bf42f56b8e1a65cda5402a8d1a184/benchmarks/scenario/simple/open.js#L62
When you run a worker inside a container, they all get the 1 PID. So they'll try to modify the same accounts at the same time
Try to introduce some other form of randomness. Not sure whether the worker index is passed to the callback modules in v0.3.2, that would be the ideal "random seed"
Baremetal doesn't have this problem because all the workers run in the same kernel namespace, having different pids (or even if distributed to multiple machines, the probability of pid collision is less)
Thanks @klenik I would never guess that the issue was there... .
I wonder whether was that because of my custom container ... would it fail also on the provided hyperledger/caliper image ?
Yes, it's a general issue :) the sample was intended for localized deployments in the beginning
would you suggest another sample for a distributed one? I dont need to use specifically this one.
In fact I would like to have chaincode that is CPU intensive but also common case... but that's another issue
The sample workloads utilize the PID when they need "random" values. You could use true random values instead, and save the generated accounts so the modules of the other rounds can access them
It's not ideal, since you have to store state, but can't think of other simple solutions
(An other, more complex solution is to run caliper twice. First with an init round, with a single worker, where you load the network with predictable items. Then a second caliper instance can use multiple workers to do anything with those items. For example, you load items with IDs [1...1000], then the second instance can safely use rand(1,1000) to avoid/minimize mvcc conflicts)
Would also be possible to use the mosquitto for it?
I see it generates a unique id per client connection. Could caliper use it internally as a random seed for workers?
it seens that hostname is also available and returns a string with a container name. it's also another way to inject randomness
it seens that hostname command is also available inside the container and returns a string with a container name. it's also another way to inject randomness
Whatever works, I like environment independent solutions better, so you don't run into issues like the previous one. The mosquito uuid won't be passed to the workload modules, since that's a configuration detail. The worker index is constant and independent from everything else
Has joined the channel.
can anyone point me to some document how the fabric-go.yaml and config.yaml should be crafted to run caliper?
once a master is launched, what is next?
@tongli you can start from this (and follow the references to the more detailed pages) : https://hyperledger.github.io/caliper/v0.3.2/architecture/
@klenik thanks.
I really thank you for helping me!
I have some questions.
1. What does '3-of, signed-by 0, 1 and 2' mean exactly? Can you explain it in detail?
2. I want to request 1 signature from each organization(I have 3 organization) using 'and' policy. How am I supposed to write?
Signed-by references an index from the identities array above it, which lists the org identities/roles. N-of means that at least N signatures/endorsements must be collected (you can nest n-of expressions). The fabric (and sdk) docs explain this better, this is just the gist
Changing open partially solved the problem. But I've seen other issues with "transfer.js". Still digging...
Has joined the channel.
Has joined the channel.
Hello everyone,
i want to create a sawtooth PBFT test network and benchmark it with hyperledger caliper.
I am having a problem running a sawtooth test network using docker on ubuntu 18.04.
I ran the sawtooth PBFT tutorial:
https://sawtooth.hyperledger.org/docs/core/nightly/master/app_developers_guide/docker_test_network.html
using this YAML file:
https://sawtooth.hyperledger.org/docs/core/nightly/master/app_developers_guide/sawtooth-default-pbft.yaml
command i run: docker-compose -f sawtooth-default-pbft.yaml up(node start,it works fine)
docker exec -it sawtooth-shell-default bash (works fine)
curl http://sawtooth-rest-api-default-0:8008/peers(works fine)
response`:{
"data": [
"tcp://validator-4:8800",
"tcp://validator-3:8800",
...
"tcp://validator-2:8800",
"tcp://validator-1:8800"
],
"link": "http://sawtooth-rest-api-default-0:8008/peers"`
But when I run this command: curl http://rest-api:8008/blocks
it gives me an error: curl (6) could not resolve host rest-api
I will be thankful for your help
This looks to be very geared purely to sawtooth - have you tried their RC channel for assistance on network creation?
My feeling now:
https://imgflip.com/i/4cj8ht
Me right now:
https://imgflip.com/i/4cj8ht
Has joined the channel.
Clipboard - 2020年8月25日中午11点30分
Hi everyone when I install caliper from source code, such an error happened when I executed `npm run bootstrap`
Clipboard - 2020年8月25日中午11点30分
Hi everyone when I install caliper from source code, such an error happened when I executed `npm run bootstrap`, anbody knows why? @klenik
Clipboard - 2020年8月25日中午11点30分
Hi everyone when I install caliper from source code, such an error happened when I executed `npm run bootstrap`, anbody knows why? @klenik @nkl199
Clipboard - 2020年8月25日中午11点30分
hmm, strange - it is throwing `no package-lock` errors ... thats new
possibly a lerna update, we can build and push package locks (should be doing that tbh)
thanks, when add --force, its ok now
Error: Module "@hyperledger/caliper-ethereum" could not be loaded: Error: Cannot find module 'scrypt-shim' another issue, when I benchmark ethereum locally
Hello all, i want to benchmark sawtooth PBFT with hyperledger caliper,, can you please guide me through the process? Thanks
sawtooth is falling behind development at the moment, sadly the best way to see how it is used is though either the sample benchmarks, or within the integration tests .. but make sure you checkout the correct branch that matches a released version
Has joined the channel.
Hi all, is there any active development to support fabric v2.2+?
sdk or SUT?
if "can u test fabric 2.2, then yes ... caliper "just" uses the sdk to interact and that is currently not broken
I meant for SDK. I am new to hyperledger. So I am not sure if that is actually necessary.
Is there any benefit to support v2.2 SDK?
you can test 2.x Fabric with 1.4 and 2.x SDK< but at the moment there is no internal binding for the 2.2 sdk, however you could provide an override to use the sdk during the bind process if desired
you can test 2.x Fabric with 1.4 and 2.x SDK.. but at the moment there is no internal binding for the 2.2 sdk, however you could provide an override to use the sdk during the bind process if desired
Yes, I think I successfully tested that.
Yes, I was wondering if there is any active efforts for developing the internal binding.
there are, but we also permit an override so that people can bind to any version sdk they wish
just in case someone wishes to test with an unreleased sdk for instance
I see. Thanks @nkl199! That makes sense.
Where can I get more information about the development effort?
there's a caliper-contributors channel and a weekly call .. you are welcome to join both
Awesome! Thanks for adding me!
you're welcome :thumbsup:
Has joined the channel.
It would be helpful if the documentation provides some guidelines about running Caliper master POd on a Kubernetes Cluster. I have not met a customer yet that runs Docker Compose in production. I have been tried to run the Pod below and I get _*container_linux.go:349: starting container process caused "exec: \"caliper launch master\": executable file not found in $PATH"*_
`apiVersion: v1
kind: Pod
metadata:
name: caliper-manager
labels:
app: caliper-manager
namespace: caliper-monitoring
spec:
volumes:
- name: caliper-volume
persistentVolumeClaim:
claimName: caliper-manager-claim
containers:
- resources:
limits:
cpu: 800m
memory: 500Mi
requests:
cpu: 200m
memory: 100Mi
name: caliper-manager
command:
- caliper launch master
env:
- name: CALIPER_BIND_SUT
value: 'fabric:2.1.0'
- name: CALIPER_BENCHCONFIG
value: ./benchconfig.yaml
- name: CALIPER_NETWORKCONFIG
value: ./networkconfig.yaml
volumeMounts:
- name: caliper-volume
mountPath: /hyperledger/caliper/workspace
image: 'hyperledger/caliper:0.3.2'`
It would be helpful if the documentation provides some guidelines about running Caliper master POd on a Kubernetes Cluster. I have not met a customer yet that runs Docker Compose in production. I have been tried to run the Pod below and I get _*container_linux.go:349: starting container process caused "exec: \"caliper launch master\": executable file not found in $PATH"*_
I did try other combinations: launch master, npx caliper launch master, etc. same error
`apiVersion: v1
kind: Pod
metadata:
name: caliper-manager
labels:
app: caliper-manager
namespace: caliper-monitoring
spec:
volumes:
- name: caliper-volume
persistentVolumeClaim:
claimName: caliper-manager-claim
containers:
- resources:
limits:
cpu: 800m
memory: 500Mi
requests:
cpu: 200m
memory: 100Mi
name: caliper-manager
command:
- caliper launch master
env:
- name: CALIPER_BIND_SUT
value: 'fabric:2.1.0'
- name: CALIPER_BENCHCONFIG
value: ./benchconfig.yaml
- name: CALIPER_NETWORKCONFIG
value: ./networkconfig.yaml
volumeMounts:
- name: caliper-volume
mountPath: /hyperledger/caliper/workspace
image: 'hyperledger/caliper:0.3.2'`
It would be helpful if the documentation provides some guidelines about running Caliper master Pod on a Kubernetes cluster. I have not met a customer yet that runs Docker Compose in production. I have tried to run the Pod below and I get _*container_linux.go:349: starting container process caused "exec: \"caliper launch master\": executable file not found in $PATH"*_
I did try other combinations: launch master, npx caliper launch master, etc. same error
`apiVersion: v1
kind: Pod
metadata:
name: caliper-manager
labels:
app: caliper-manager
namespace: caliper-monitoring
spec:
volumes:
- name: caliper-volume
persistentVolumeClaim:
claimName: caliper-manager-claim
containers:
- resources:
limits:
cpu: 800m
memory: 500Mi
requests:
cpu: 200m
memory: 100Mi
name: caliper-manager
command:
- caliper launch master
env:
- name: CALIPER_BIND_SUT
value: 'fabric:2.1.0'
- name: CALIPER_BENCHCONFIG
value: ./benchconfig.yaml
- name: CALIPER_NETWORKCONFIG
value: ./networkconfig.yaml
volumeMounts:
- name: caliper-volume
mountPath: /hyperledger/caliper/workspace
image: 'hyperledger/caliper:0.3.2'`
It would be helpful if the documentation provides some guidelines about running a Caliper master Pod on a Kubernetes cluster. I have not met a customer yet that runs Docker Compose in production. I have tried to run the Pod below and I get _*container_linux.go:349: starting container process caused "exec: \"caliper launch master\": executable file not found in $PATH"*_
I did try other combinations: launch master, npx caliper launch master, etc. same error
`apiVersion: v1
kind: Pod
metadata:
name: caliper-manager
labels:
app: caliper-manager
namespace: caliper-monitoring
spec:
volumes:
- name: caliper-volume
persistentVolumeClaim:
claimName: caliper-manager-claim
containers:
- resources:
limits:
cpu: 800m
memory: 500Mi
requests:
cpu: 200m
memory: 100Mi
name: caliper-manager
command:
- caliper launch master
env:
- name: CALIPER_BIND_SUT
value: 'fabric:2.1.0'
- name: CALIPER_BENCHCONFIG
value: ./benchconfig.yaml
- name: CALIPER_NETWORKCONFIG
value: ./networkconfig.yaml
volumeMounts:
- name: caliper-volume
mountPath: /hyperledger/caliper/workspace
image: 'hyperledger/caliper:0.3.2'`
Hi. Did somebody try to run caliper container image in a Pod on Kube? It would be helpful if the documentation provides some guidelines about running a Caliper master Pod on a Kubernetes cluster. I have not met a customer yet that runs Docker Compose in production. I have tried to run the Pod below and I get _*container_linux.go:349: starting container process caused "exec: \"caliper launch master\": executable file not found in $PATH"*_
I did try other combinations: launch master, npx caliper launch master, etc. same error
`apiVersion: v1
kind: Pod
metadata:
name: caliper-manager
labels:
app: caliper-manager
namespace: caliper-monitoring
spec:
volumes:
- name: caliper-volume
persistentVolumeClaim:
claimName: caliper-manager-claim
containers:
- resources:
limits:
cpu: 800m
memory: 500Mi
requests:
cpu: 200m
memory: 100Mi
name: caliper-manager
command:
- caliper launch master
env:
- name: CALIPER_BIND_SUT
value: 'fabric:2.1.0'
- name: CALIPER_BENCHCONFIG
value: ./benchconfig.yaml
- name: CALIPER_NETWORKCONFIG
value: ./networkconfig.yaml
volumeMounts:
- name: caliper-volume
mountPath: /hyperledger/caliper/workspace
image: 'hyperledger/caliper:0.3.2'`
Hi all (seems I can't do an 'at-here') We are approaching a new release of Caliper, and it has breaking changes (all for the better!). Once the release has been processed, we would like to invite all those interested to a teleconference where we will talk through the changes that have been made - whilst we have also been making changes to the documentation as we incorporate the changes, it is hoped that having us talk through them with examples will be of use to you. :thumbsup:
Hi there, is it possible to get a timeline of transactions per second issued? I see the report built with pizza and bar plots but I wonder whether this information is somehow stored in prometheus ... or caliper only stores the final average ?
Hi there, is it possible to get a timeline of transactions per second issued? I see the report built with pizza and bar plots but I wonder whether this information is somehow stored in prometheus ... or caliper only stores the final average ? (sorry if this is stupid, I have a lot in my plate that im trying to grasp.. swarms, fabric, caliper, prometheus..)
Hi there, is it possible to get a timeline of transactions per second issued? I see the report built with pizza and bar plots but I wonder whether this information is somehow stored in prometheus ... or caliper only stores the final average ? (sorry if this is stupid, I have a lot in my plate that im trying to grasp.. swarms, fabric, caliper, prometheus.. the list keeps growing - looking at you sawthooth.. )
You can view the transaction timeline information in Prometheus
Hello, I am trying to run some caliper tests on a fabric network with fabcar chaincode that is already deployed. I get this TypeError:
* Handled unsuccessful "prepare" message for worker 3 and test round 0 with error TypeError: Class extends value #
const WorkloadModuleBase = require('@hyperledger/caliper-core');
class CreateCarWorkload extends WorkloadModuleBase {
/**
* Initializes the workload module instance.
*/
constructor() {
super();
this.txIndex = 0;
}
Hello. I have a fabric network on docker swarm, and I am trying to connect to it using caliper to benchmark it. On caliper network config, what url should i use for each entity?
On this section:
peers:
peer0.org1.example.com:
url: grpcs://*localhost*:7051
or put the ip address?
are you working on a released versin, or unstable?
https://hyperledger.github.io/caliper/v0.3.2/fabric-tutorial/ might be of relevance
Has joined the channel.
Ok i did it, now i can see cpu usage, network usage, memory usage and transactions latency/throughput over a timeline in prometheus.
Thanks
Has left the channel.
Hi there, how does the linear-rate rate controller steps advances with time? I have 4 worker nodes and configured start tps as 400 and end tps as 20000 for 300s but it seems that's not enough time for caliper to get to maximum TPS
Clipboard - September 4, 2020 4:03 PM
- label: open
description: Test description for the opening of an account through the deployed chaincode
txDuration: 300
rateControl:
type: linear-rate
opts:
startingTps: 400
finishingTps: 20000
arguments:
money: 10000
callback: benchmarks/scenario/simple/open.js
Hi guys, can you give some pointers on how to stress my deployment?
I want to find the maximum throughput for a deployment running the chaincode "simple"
the numbers from prometheus aren't making much sense ...
I tried with linear-rate, fixed rate and also I tried with a mix of fixed-rate and zero-rate.
I can see a spike in the begining in TPS but it drops quickly. the rate is not steady even though the network usage is far below the maximum usage, or CPU or memory of the nodes.
here is the line plot from prometheus:
Clipboard - September 4, 2020 5:53 PM
This experiment is have 5 rounds. The first one one is the open operation followed for a zero-rate (pause for 30s) then open operation again with higher fixed tps.
Clipboard - September 4, 2020 5:55 PM
Clipboard - September 4, 2020 5:57 PM
I dont get these spikes...
and it is also not clear to me why the round 0 of client 0 that should last for 300s last for that long.
Clipboard - September 4, 2020 5:59 PM
Do you guys have any benchmark values published?
I have a deployment with 2 orgs, 3 raft orderers, 4 peers, 4 caliper workers, each one in a separate node. plus 1 manager node(caliper master+mqtt+docker swarm master)
I dont have a reference of what good numbers are but the best i got was < 700 TPS with A LOT of failed transactions (only open)
that's for caliper 0.3.2 with fabric v1.4.1
There are some published figures here which may be of help. Not looked at them myself https://hyperledger.github.io/caliper-benchmarks/
*Getting error while benchmarking sawtooth 1.0.0 with hyperledger caliper (Error:Benchmark failed with Error code 6)*
`zee@pro:~/caliper-benchmarks$ sudo npx caliper launch master --caliper-bind-sut sawtooth:1.0.0 -w . --caliper-benchconfig benchmarks/scenario/smallbank/config.yaml --caliper-networkconfig networks/sawtooth/smallbank/sawtooth.json
[sudo] password for zee:
2020.09.05-02:31:38.751 info [caliper] [cli-launch-master] Binding specification is present, performing binding for "sawtooth:1.0.0"
2020.09.05-02:31:38.757 warn [caliper] [bind] Working directory not specified. Using "/home/zee/Desktop/caliper-benchmarks"
2020.09.05-02:31:38.758 info [caliper] [bind] Binding for sawtooth@1.0.0. This might take some time...
2020.09.05-02:31:38.758 info [caliper] [bind] Using working directory: /home/zee/Desktop/caliper-benchmarks
2020.09.05-02:31:38.758 info [caliper] [bind] Calling npm with: install sawtooth-sdk@1.0.0
+ sawtooth-sdk@1.0.0
updated 1 package and audited 450 packages in 21.476s
6 packages are looking for funding
run `npm fund` for details
found 1 low severity vulnerability
run `npm audit fix` to fix them, or `npm audit` for details
2020.09.05-02:32:08.925 info [caliper] [cli-launch-master] Set workspace path: /home/zee/Desktop/caliper-benchmarks
2020.09.05-02:32:08.926 info [caliper] [cli-launch-master] Set benchmark configuration path: /home/zee/Desktop/caliper-benchmarks/benchmarks/scenario/smallbank/config.yaml
2020.09.05-02:32:08.926 info [caliper] [cli-launch-master] Set network configuration path: /home/zee/Desktop/caliper-benchmarks/networks/sawtooth/smallbank/sawtooth.json
2020.09.05-02:32:08.926 info [caliper] [cli-launch-master] Set SUT type: sawtooth:1.0.0
2020.09.05-02:32:11.350 info [caliper] [benchmark-validator] No observer specified, will default to `none`
2020.09.05-02:32:11.350 info [caliper] [caliper-engine] Starting benchmark flow
2020.09.05-02:32:11.351 info [caliper] [caliper-utils] Executing command: cd ./; docker-compose -f networks/sawtooth/smallbank/sawtooth-smallbank-go.yaml up -d
Creating network "smallbank_default" with the default driver
Creating sawtooth-validator-default ... done
Creating sawtooth-rest-api-default ... done
Creating sawtooth-settings-tp-default ... done
Creating sawtooth-smallbank-tp-go-default ... done
2020.09.05-02:32:32.421 info [caliper] [caliper-engine] Executed start command in 21.07 seconds
2020.09.05-02:32:32.421 info [caliper] [caliper-engine] Executed "init" step in 0 seconds
2020.09.05-02:32:32.421 info [caliper] [caliper-engine] Executed "install" step in 0 seconds
2020.09.05-02:32:32.422 info [caliper] [messenger.js] Creating messenger of type "process-master"
2020.09.05-02:32:32.724 info [caliper] [null-observer] Configured "null" observer
2020.09.05-02:32:32.725 error [caliper] [round-orchestrator] Round 1 configuration validation error: Missing "callback" attribute
2020.09.05-02:32:32.726 error [caliper] [caliper-engine] Error while performing "test" step: Error: Round 1 configuration validation error: Missing "callback" attribute
2020.09.05-02:32:32.726 info [caliper] [caliper-utils] Executing command: cd ./; docker-compose -f networks/sawtooth/smallbank/sawtooth-smallbank-go.yaml down;(test -z "$(docker ps -aq)") || docker rm $(docker ps -aq)
Stopping sawtooth-smallbank-tp-go-default ... done
Stopping sawtooth-settings-tp-default ... done
Stopping sawtooth-rest-api-default ... done
Stopping sawtooth-validator-default ... done
Removing sawtooth-smallbank-tp-go-default ... done
Removing sawtooth-settings-tp-default ... done
Removing sawtooth-rest-api-default ... done
Removing sawtooth-validator-default ... done
Removing network smallbank_default
2020.09.05-02:33:05.760 info [caliper] [caliper-engine] Executed end command in 33.034 seconds
2020.09.05-02:33:05.760 error [caliper] [cli-launch-master] Benchmark failed with error code 6
Usage:
caliper launch master --caliper-bind-sut fabric:1.4.1 [other options]
Options:
--help, -h Show usage information [boolean]
--version Show version information [boolean]
--caliper-bind-sut The name and version of the platform to bind to [string]
--caliper-bind-cwd The working directory for performing the SDK install [string]
--caliper-bind-args Additional arguments to pass to "npm install". Use the "=" notation when setting this parameter [string]
--caliper-bind-file Yaml file to override default (supported) package versions when binding an SDK [string]
Error: Benchmark failed with error code 6
at Function.handler (/home/zee/Desktop/caliper-benchmarks/node_modules/@hyperledger/caliper-cli/lib/launch/lib/launchMaster.js:70:23)`
*Getting error while benchmarking sawtooth 1.0.0 with hyperledger caliper (Error:Benchmark failed with Error code 6)*
Output:
`zee@pro:~/caliper-benchmarks$ sudo npx caliper launch master --caliper-bind-sut sawtooth:1.0.0 -w . --caliper-benchconfig benchmarks/scenario/smallbank/config.yaml --caliper-networkconfig networks/sawtooth/smallbank/sawtooth.json
[sudo] password for zee:
2020.09.05-02:31:38.751 info [caliper] [cli-launch-master] Binding specification is present, performing binding for "sawtooth:1.0.0"
2020.09.05-02:31:38.757 warn [caliper] [bind] Working directory not specified. Using "/home/zee/Desktop/caliper-benchmarks"
2020.09.05-02:31:38.758 info [caliper] [bind] Binding for sawtooth@1.0.0. This might take some time...
2020.09.05-02:31:38.758 info [caliper] [bind] Using working directory: /home/zee/Desktop/caliper-benchmarks
2020.09.05-02:31:38.758 info [caliper] [bind] Calling npm with: install sawtooth-sdk@1.0.0
+ sawtooth-sdk@1.0.0
updated 1 package and audited 450 packages in 21.476s
6 packages are looking for funding
run `npm fund` for details
found 1 low severity vulnerability
run `npm audit fix` to fix them, or `npm audit` for details
2020.09.05-02:32:08.925 info [caliper] [cli-launch-master] Set workspace path: /home/zee/Desktop/caliper-benchmarks
2020.09.05-02:32:08.926 info [caliper] [cli-launch-master] Set benchmark configuration path: /home/zee/Desktop/caliper-benchmarks/benchmarks/scenario/smallbank/config.yaml
2020.09.05-02:32:08.926 info [caliper] [cli-launch-master] Set network configuration path: /home/zee/Desktop/caliper-benchmarks/networks/sawtooth/smallbank/sawtooth.json
2020.09.05-02:32:08.926 info [caliper] [cli-launch-master] Set SUT type: sawtooth:1.0.0
2020.09.05-02:32:11.350 info [caliper] [benchmark-validator] No observer specified, will default to `none`
2020.09.05-02:32:11.350 info [caliper] [caliper-engine] Starting benchmark flow
2020.09.05-02:32:11.351 info [caliper] [caliper-utils] Executing command: cd ./; docker-compose -f networks/sawtooth/smallbank/sawtooth-smallbank-go.yaml up -d
Creating network "smallbank_default" with the default driver
Creating sawtooth-validator-default ... done
Creating sawtooth-rest-api-default ... done
Creating sawtooth-settings-tp-default ... done
Creating sawtooth-smallbank-tp-go-default ... done
2020.09.05-02:32:32.421 info [caliper] [caliper-engine] Executed start command in 21.07 seconds
2020.09.05-02:32:32.421 info [caliper] [caliper-engine] Executed "init" step in 0 seconds
2020.09.05-02:32:32.421 info [caliper] [caliper-engine] Executed "install" step in 0 seconds
2020.09.05-02:32:32.422 info [caliper] [messenger.js] Creating messenger of type "process-master"
2020.09.05-02:32:32.724 info [caliper] [null-observer] Configured "null" observer
2020.09.05-02:32:32.725 error [caliper] [round-orchestrator] Round 1 configuration validation error: Missing "callback" attribute
2020.09.05-02:32:32.726 error [caliper] [caliper-engine] Error while performing "test" step: Error: Round 1 configuration validation error: Missing "callback" attribute
2020.09.05-02:32:32.726 info [caliper] [caliper-utils] Executing command: cd ./; docker-compose -f networks/sawtooth/smallbank/sawtooth-smallbank-go.yaml down;(test -z "$(docker ps -aq)") || docker rm $(docker ps -aq)
Stopping sawtooth-smallbank-tp-go-default ... done
Stopping sawtooth-settings-tp-default ... done
Stopping sawtooth-rest-api-default ... done
Stopping sawtooth-validator-default ... done
Removing sawtooth-smallbank-tp-go-default ... done
Removing sawtooth-settings-tp-default ... done
Removing sawtooth-rest-api-default ... done
Removing sawtooth-validator-default ... done
Removing network smallbank_default
2020.09.05-02:33:05.760 info [caliper] [caliper-engine] Executed end command in 33.034 seconds
2020.09.05-02:33:05.760 error [caliper] [cli-launch-master] Benchmark failed with error code 6
Usage:
caliper launch master --caliper-bind-sut fabric:1.4.1 [other options]
Options:
--help, -h Show usage information [boolean]
--version Show version information [boolean]
--caliper-bind-sut The name and version of the platform to bind to [string]
--caliper-bind-cwd The working directory for performing the SDK install [string]
--caliper-bind-args Additional arguments to pass to "npm install". Use the "=" notation when setting this parameter [string]
--caliper-bind-file Yaml file to override default (supported) package versions when binding an SDK [string]
Error: Benchmark failed with error code 6
at Function.handler (/home/zee/Desktop/caliper-benchmarks/node_modules/@hyperledger/caliper-cli/lib/launch/lib/launchMaster.js:70:23)`
please help me out.
Has joined the channel.
Has joined the channel.
Hi Community ! Need a little help
I have followed this https://hyperledger.github.io/caliper/v0.3.2/fabric-tutorial/benchmark-fabric-tutorial/ to run benchmark with test network and I am getting this error
Client 1: Creating asset 1_0
Client 1: Smart Contract threw with error: Error: No contracts for Invoker Admin@org1.example.com found!
My configs
-fabric latest
- test network running with fabcar chain code deployed
- caliper binded to fabric:1.4.8
Hi Community ! Need a little help
I have followed this https://hyperledger.github.io/caliper/v0.3.2/fabric-tutorial/benchmark-fabric-tutorial/ to run benchmark with test network and I am getting this error
Client 1: Creating asset 1_0
Client 1: Smart Contract threw with error: Error: No contracts for Invoker Admin@org1.example.com found!
My configs
-fabric latest
- test network running with fabcar chain code( javascript) deployed
- caliper binded to fabric:1.4.8
[ ](https://chat.hyperledger.org/channel/caliper?msg=HFQMHywLCmnC92dpK) Any hint ?
Has joined the channel.
okay... I'm still trying to undestand these numbers...
I got a maximum of ~700 TPS which I've found very low initially.. I was expecting thousands of transactions per second...
but putting it into perspective, it seems that bitcoin is roughly 4TPS and ethereum 15TPS..
perhaps that's the right comparison.
I had PBFT numbers in mind, in particular BFTSmart can get to 20k TPS..
Has joined the channel.
@hassan_ahmed4621 , so things to check that I can think of that might be causing this error.
1. that the chaincode was installed and instantiated. This should be clear in your test-network folder (that was created in the fabric tutorial) or if you are using your own network, should be found there. Also check it was done so on the correct organisation (so org1 in this case).
2. That you do have a client under ‘admin@org1.example.com’ this is the default one, but if you changed it then you will need to change any mentioning of admin@org1.example.com to the name you gave it.
3. It could be the case of the arguments for InvokeSmartContract (which is in the queryAssetBenchmark.js) are wrong. It should have 4 arguments. Those defined in the init function: ```ctx = context; myArgs = {
chaincodeFunction: 'createCar',
invokerIdentity: 'Admin@org1.example.com',
chaincodeArguments: [assetID,'blue','ford','fiesta','jamie']
};```
And those defined globally. Which is: contractID=‘fabcar’; version = ‘0.0.1’;
Those are the most clear faults that might be causing this.
@hassan_ahmed4621 , so things to check that I can think of that might be causing this error.
1. that the chaincode was installed and instantiated. This should be clear in your test-network folder (that was created in the fabric tutorial) or if you are using your own network, should be found there. Also check it was done so on the correct organisation (so org1 in this case).
2. That you do have a client under ‘admin@org1.example.com’ this is the default one, but if you changed it then you will need to change any mentioning of admin@org1.example.com to the name you gave it.
3. It could be the case of the arguments for InvokeSmartContract (which is in the queryAssetBenchmark.js) are wrong. It should have 4 arguments. Those defined in the init function: ```ctx = context; myArgs = {
chaincodeFunction: 'createCar',
invokerIdentity: 'Admin@org1.example.com',
chaincodeArguments: [assetID,'blue','ford','fiesta','jamie']
};```
And those defined globally. Which is: `contractID=‘fabcar’; version = ‘0.0.1’;`
Those are the most clear faults that might be causing this.
@hassan_ahmed4621 , so things to check that I can think of that might be causing this error.
1. that the chaincode was installed and instantiated. This should be clear in your test-network folder (that was created in the fabric tutorial) or if you are using your own network, should be found there. Also check it was done so on the correct organisation (so org1 in this case).
2. That you do have a client under ‘admin@org1.example.com’ this is the default one, but if you changed it then you will need to change any mentioning of admin@org1.example.com to the name you gave it.
3. It could be the case of the arguments for InvokeSmartContract (which is in the queryAssetBenchmark.js) are wrong. It should have 4 arguments. Those defined in the init function: ```ctx = context; myArgs = {
chaincodeFunction: 'createCar',
invokerIdentity: 'Admin@org1.example.com',
chaincodeArguments: [assetID,'blue','ford','fiesta','jamie']
};```
And those defined globally. Which is: `contractID=‘fabcar’; version = ‘0.0.1’;`
Those are the most clear faults that might be causing this that I can say without seeing any code.
Thanks for response @RosieM
So
For point 1 i did deploy chaincode and i suppose it installs and instantiates it automatically with current fabric version and ./network deployCC for test-network did ended fine.
For 2 yes i do have admin@org1.example.com in my network config client section
For 3 Actually i want to share that when i tried without passing any invokerIdentity it worked fine
_"And those defined globally. Which is: contractID=‘fabcar’; version = ‘0.0.1’;
Those are the most clear faults that might be causing this that I can say without seeing any code."_
can you explain a bit how to define contractID and version
Nice, i think i've found the issue with the performance. The TPS remains similar but the success rate improved A LOT. and that's just the first tweak.
Clipboard - September 7, 2020 4:01 PM
Pictures are making more sense now:
Yeah, so this is in your queryassetbenchmark.js file. At the top before the init function should be this code. ```
'use strict';
module.exports.info = 'Template callback';
const contractID = 'fabcar';
const version = '0.0.1';
let bc, ctx, clientArgs, clientIdx;
``` Also to note, in the network_config.json file there should be a channels block which also has the following ```
"chaincodes": [
{
"id":"fabcar",
"version":"0.0.1"
}
]
``` So both those should match, if you have upgraded your contract its likely version 0.0.2. But these should be the default values.
Yeah, so this is in your queryassetbenchmark.js file. At the top before the init function should be this code. ```
'use strict';
module.exports.info = 'Template callback';
const contractID = 'fabcar';
const version = '0.0.1';
let bc, ctx, clientArgs, clientIdx;
``` Also to note, in the network_config.json file there should be a channels block which also has the following
` "chaincodes": [
{
"id":"fabcar",
"version":"0.0.1"
}
]` . So both those should match, if you have upgraded your contract its likely version 0.0.2. But these should be the default values.
Has joined the channel.
Hello everyone,
I have a Hyperledger Fabric V2 running and I am trying to connect Caliper to my network. I want to use an exported FileSystemWallet and have Caliper use identities stored in that wallet to interact with my network. I have created an admin user called “admin.Org1” and stored it in the wallet. However, when I launch Caliper I see the following error:
``` bash
error [caliper] [message-handler] Handled unsuccessful "init" message for worker 0, with error: TypeError: Cannot read property 'privateKey' of null
at Fabric._initializeUsers (/home/ubuntu/.nvm/versions/node/v8.11.1/lib/node_modules/@hyperledger/caliper-cli/node_modules/@hyperledger/caliper-fabric/lib/adaptor-versions/v1/fabric-gateway-v1.js:704:45)
at
Clipboard - September 8, 2020 10:01 AM
The wallet structure was changed between versions of node-sdk (1.x and 2.x) so what might have happened is that you have built a wallet which is in the v2.x structure but you have bound to a 1.4 sut and so it actually can't read the wallet format.
Thank you so much. This was exactly the problem.
seems odd to get some statistics and not others there. Maybe the code trying to capture the stats isn't collecting it correctly. Not in a position to try it myself at the moment, maybe worth rasing a github issue about it and provide details ?
yeah i will open and issue because its kinda strange as some stats are showing
`test:
name: my-asset-benchmark
description: test benchmark
workers:
type: local
number: 1
rounds:
- label: queryAsset
description: Query asset benchmark
chaincodeId: fabcar
txNumber: 600
rateControl:
type: fixed-backlog
opts:
tps: 100
unfinished_per_client: 5
callback: /home/vector/caliper-benchmarks/caliper-workspace/benchmarks/callbacks/queryAssetBenchmark.js
arguments:
assets: 5
- label: queryAsset
description: Query asset benchmark
chaincodeId: fabcar
txNumber: 1000
rateControl:
type: fixed-backlog
opts:
tps: 100
unfinished_per_client: 10
callback: /home/vector/caliper-benchmarks/caliper-workspace/benchmarks/callbacks/queryAssetBenchmark.js
arguments:
assets: 5
monitor:
type:
- docker
docker:
containers:
- all
observer:
type: local
interval: 5
`
```
test:
name: my-asset-benchmark
description: test benchmark
workers:
type: local
number: 1
rounds:
- label: queryAsset
description: Query asset benchmark
chaincodeId: fabcar
txNumber: 600
rateControl:
type: fixed-backlog
opts:
tps: 100
unfinished_per_client: 5
callback: /home/vector/caliper-benchmarks/caliper-workspace/benchmarks/callbacks/queryAssetBenchmark.js
arguments:
assets: 5
- label: queryAsset
description: Query asset benchmark
chaincodeId: fabcar
txNumber: 1000
rateControl:
type: fixed-backlog
opts:
tps: 100
unfinished_per_client: 10
callback: /home/vector/caliper-benchmarks/caliper-workspace/benchmarks/callbacks/queryAssetBenchmark.js
arguments:
assets: 5
monitor:
type:
- docker
docker:
containers:
- all
observer:
type: local
interval: 5
```
sharing benchconfig if you can have a look at spot anything wrong ..just wanna be sure its not some dumb mistake on my part before opening issue
@davidkel Found it, the problem it was caused because i was using network config file template of couchdb and network was using leveldb as i ran network with couchdb cpu and disk stats showed up
ok, glad you sorted it out
The worker processes are single threaded. Your settings mean that by the end, a single worker must output 5000 TPS. That means that the worker must schedule a TX at every *0.2 ms*. That's not enough time for the workload loop to start over. Based on your graphs, you reached a 175 TPS per worker load rate. Which sounds reasonable. So for 20k TPS you'll need around 115 workers. Which also sounds about right, a continuous 20k TPS is a lot.
Makes sure you checkout the same benchmark repo version as the caliper version. The master branch is updated for caliper v0.4.0-unstable, which doesn't have the `callback` attribute anymore in the benchmark config file.
Can you share some insights about improving the sending rate (and throughput) in the example?
The issue was the fabric parameter MaxMessageCount that defines the number of messages in a batch. The long tail in the first picture (https://chat.hyperledger.org/channel/caliper?msg=Ef48aQm3ffMd3f92x) made me suspect of queuing. The experiment was supposed to last only 300s but there was still processing long after that.
The value of MaxMessageCount was set to 50. There are 3 upper bounds to play with:
the BatchTimeout, MaxMessageCount and AbsoluteMaxBytes (+PreferredMaxBytes)
From what i understood a new block is generated every BatchTimeout with at most MaxMessageCount or AbsoluteMaxBytes whatever comes first.
Lots of operations failed due to queuing timeouts.
I first increased the MaxMessageCount to a very large number as I dont find the number of operations a meaningful metric. Some operations are long and large others are short and small, their number dont say much. The size of the block is more important in my opinion
I kept the block size (AbsoluteMaxBytes) at 1MB as it is similar to bitcoin. MaxMessageCount was set to 5000 initially (planning to set it to 100k) but I still havent decided what makes sense to BatchTimeout
@klenik got some errors when trying to run caliper launch master using the docker image. here is the error.
``` non-zero return code
/home/node/.npm-global/lib/node_modules/@hyperledger/caliper-cli/caliper.js:41
results.thePromise.then( () => {
^
TypeError: Cannot read property 'then' of undefined
at Object.
the error occurs when run caliper launch master with bunch parameters.
Can you share the exact command you execute?
sure, just second.
```docker run --network {{ NETNAME }} --name calipertester --hostname calipertester --rm
-e "ROOTPATH=/vars/keyfiles"
-v /var/run/docker.sock:/var/run/docker.sock
-v {{ hostroot }}/vars:/vars
hyperledger/caliper:0.3.2
"launch master --caliper-benchconfig /vars/run/caliperbenchmarkconfig.yaml
--caliper-networkconfig /vars/run/calipernetworkconfig.json
--caliper-flow-only-test --caliper-fabric-gateway-usegateway --caliper-fabric-gateway-discovery"```
```docker run --network mynetwork --name calipertester --hostname calipertester --rm
-e "ROOTPATH=/vars/keyfiles"
-v /var/run/docker.sock:/var/run/docker.sock
-v $(pwd)/vars:/vars
hyperledger/caliper:0.3.2
"launch master --caliper-benchconfig /vars/run/caliperbenchmarkconfig.yaml
--caliper-networkconfig /vars/run/calipernetworkconfig.json
--caliper-flow-only-test --caliper-fabric-gateway-usegateway --caliper-fabric-gateway-discovery"```
@klenik that is the command I was running.
{{ hostroot}} actually gets replaced with the real path.
@klenik ^^^, please see the command I used above.
Hi guys just a quick question I have a running network with 16 peers but only 4 have chaincode installed how should i set network configuration because its giving me error for those peers that chaincode not installed which i know ..should i just remove those peers for network config yaml file under Peers section and organizations>peers section ? (i want the resource utilization of those peers as well)
[ ](https://chat.hyperledger.org/channel/caliper?msg=E5hDf4aqZ6AW8egjX) Update : if i remove those peers from network config file i get thrown error
```child "peers" fails because ["peer1.org1.example.com" is not allowed ..```
@hassan_ahmed4621 You can configure the peers under the `channels.peers` attribute, whether they are endorsing peers or not. https://hyperledger.github.io/caliper/v0.3.2/fabric-config/#network-configuration-file-reference
Also, the resource monitors are independent from the network configuration, so it's also okay to remove the peers from the network config (but remove them from every section: orgs' peers, peers, channels' peers, etc)
@klenik can you look at the question I asked above? I think something small is not right but have no idea what. If you take a look at the command I use, you probably will see immediately. Thx
Trying integrate this to minifabric, but have difficulties to get it going.
@tongli try removing the quotes
@tongli try removing the quotes around the `launch master` command
@tongli if you have problem with running caliper in container try looking at this demo by and indian guy (they is always an indian guy who has done it ) https://www.youtube.com/watch?v=my7kZXvgbBY&list=PLSBNVhWU6KjVT0HAvVYyyrDdM6y7DzHIF
its two videos and very explained everything Mayve you can see what went wrong in your case
@tongli if you have problem with running caliper in container try looking at this demo by and indian guy (they is always an indian guy who has done it :laughing: ) https://www.youtube.com/watch?v=my7kZXvgbBY&list=PLSBNVhWU6KjVT0HAvVYyyrDdM6y7DzHIF
its two videos and very explained everything Mayve you can see what went wrong in your case
@tongli if you have problem with running caliper in container try looking at this demo by and indian guy (they is always an indian guy who has done it :laughing: ) https://www.youtube.com/watch?v=my7kZXvgbBY&list=PLSBNVhWU6KjVT0HAvVYyyrDdM6y7DzHIF
its a two video series and very detailed explaination everything Mayve you can see what went wrong in your case
Hi there, I'm trying to run the fabcar sample but I get these errors: Round 1 configuration validation error: Missing "callback" attribute
any idea how to fix it?
@dporto in your benchmark configuration file you have to give callback attribute which has the path of work module
@dporto in your benchmark configuration file you have to give callback attribute which has the path of work module i guess you are missing that
@dporto in your benchmark configuration file under Rounds section you have to give callback attribute which has the path of work module i guess you are missing that
Clipboard - September 11, 2020 10:46 PM
@dporto https://hyperledger.github.io/caliper/v0.3.2/bench-config/
@davidkel @hassan_ahmed4621 followed the fabric tutorial step by step, won’t work. Not because of the quotes. I think that the tutorial may have been outdated. No longer work.
Has joined the channel.
hi. does anyone tried caliper+sawtooth? recent sawtooth 1.2.5 release? any success? link to example if possible? thanks in advance
Has joined the channel.
Today, Sep 14, at 10AM pacific, join us for a virtual Hyperledger meetup focused on performance. Sundararajarao Mohan from Xilinx will share a demo of the work they've done with using hardware acceleration to increase blockchain performance. All are welcome. https://www.meetup.com/Hyperledger-SF/events/267518835/
thanks, it's fixed. Weird that the original example in the repo is not functional
thanks for the pointer. subscribed!
@dporto -- great, thanks for subscribing. if you're on the call after xilinx finished, please share some details about caliper if you don't mind.
Hi, everyone, Minifabric has just added caliper. to run a test using caliper, you simply need to run two commands if you do not really have anything at all. please see doc here https://github.com/litong01/minifabric/tree/master/docs#run-caliper-test
here are the two commands needed to run caliper test.
```minifab install,approve,commit,initialize -n samplecc -p ''
minifab caliperrun```
see the document at the link above if you like to run your own test with your own chaincode.
we've had very little interest in the sawtooth connector, and we are reaching the point of having to consider its removal from teh Caliper project since we currently have nobody to help maintain it
we've had very little interest in the sawtooth connector, and we are reaching the point of having to consider its removal from the Caliper project since we currently have nobody to help maintain it
@nkl199 Thanks for letting me know! You save my time. Do you know any other alternatives which would work? I'm thinking about JMeter.
jmeter is pretty popular, of course if you fancy maintaining the sawtooth connector, there's an opportunity there!
thanks! will think about.
Make sure that if you mount your artifacts outside of the default workspace (as I see you don't change the default) then every path in your config files are also absolute, otherwise they'll be resolved (incorrectly) relative to the workspace.
Also, why do you mount/need the docker socket? The Caliper image doesn't contain docker, so you can't really do much with it (I think).
Are there any other errors before the log snippet you shared?
Seems like a mismatch between your Caliper version and benchmark repo version. You're probably using the master benchmark repo, checkout the v0.3.2 tag.
It's not outdated, it's "too new" :)
https://chat.hyperledger.org/channel/caliper?msg=WacYG2yR2KkrBnq3L
Clipboard - September 18, 2020 3:43 PM
Clipboard - September 18, 2020 3:46 PM
here is a prometheus page showing resource usage:
Clipboard - September 18, 2020 3:50 PM
peer commit time setting needs to be increased, looks like all your transactions are timing out
Has joined the channel.
@dporto The proposal response errors are peer-side errors, so you need to increase that on the server side. The commit timeouts are client/Caliper-side errors, you can increase them in your workload module (callback file).
Has joined the channel.
li@li-virtual-machine:~/caliper-benchmarks$ npx caliper launch master \
> --caliper-workspace . \
> --caliper-benchconfig benchmarks/scenario/simple/config.yaml \
> --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
error [caliper] [cli-launch-master] Unexpected error during benchmark execution: Error: Invalid "mychannel" channel configuration: child "chaincodes" fails because ["chaincodes" is required]. "contracts" is not allowed
what is the reason?thx
how to improve tps
i am getting low tps around 90
i need something 1000 if possible
is this possible?
what is the maximum tps we can achieve and how to achieve it?
Has joined the channel.
You are using the master branch of the benchmarks repo, which is for the upcoming v0.4.0 release. After cloning the repo, `checkout` the `v0.3.2` tag of the benchmark repo, that is compatible with Caliper `v0.3.2`
That could depend on a LOT of factors:
1. Your contract logic.
2. Your network topology (number of nodes).
3. Your distribution of the network (multiple physical/virtual hosts), or in general the available resources for your nodes.
4. Your SUT settings (this is the most complex part, you have to tune your system based on your contract and workload).
So there's no precise answer to your question, just the usual "it depends" :)
i am grateful that you can reply and i still can not understand the problem,My version of hyperledeger fabric is 1.4.3 and i follow the article https://hyperledger.github.io/caliper/v0.3.2/installing-caliper/#local-npm-install,i consider this article matches the version of my fabric.
i am grateful that you can reply and i still can not understand the problem,My version of hyperledeger fabric is 1.4.3 and i follow the article https://hyperledger.github.io/caliper/v0.3.2/installing-caliper/#local-npm-install,i consider this article matches the version of my fabric.
It's not about the fabric vs caliper version, it's about the caliper vs benchmark example version
so would you liek
Could you tell me more about the details or what should i do?I can not figure it out.Thank you by the way.
The doc details how to correctly run the examples: https://hyperledger.github.io/caliper/v0.3.2/installing-caliper/#overview
```
git clone https://github.com/hyperledger/caliper-benchmarks.git
cd caliper-benchmarks
git checkout v0.3.2
# proceed with the example
```
1.Perhaps v1.4.3 is not suitable for Caliper?Such as the code "--caliper-networkconfignetworks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml",the document"fabric-v1.4.3"(i change the code from v1.4.1 to v1.4.3 in order to match my fabric version) not only do not exist in the document "fabric",but also do not exist in the document "v1" where have some version like v1.4.1,v1.4.4 and so on.
2.So i move the document "v1.4.1" under "fabric",and modfiy the file "fabric-go.yaml" to version 1.4.3,and i run the code ,luckily
2.So i move the document "v1.4.1" under "fabric",and modfiy the file "fabric-go.yaml" to version 1.4.3,and i run the code ,luckily the error i doubted yesterday do not show up,but i still need to add some pem file to this path "/caliper-benchmarks/networks/fabric/config_solo/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts",you once told me that the doc details how to correctly run the example,but the doc do not include what i did above.So is the fabric 1.4.3 not match or i did sth incorrectly?
3.But the code still can not run,the errors are as followed:2020-09-22T06:56:33.890Z - error: [NetworkConfig101.js]: NetworkConfig101 - problem reading the PEM file :: Error: ENOENT: no such file or directory, open '/home/li/caliper-benchmarks/networks/fabric/config_solo/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem'
2020.09.22-14:56:33.891 error [caliper] [caliper-engine] Error while performing "init" step: Error: ENOENT: no such file or directory, open '/home/li/caliper-benchmarks/networks/fabric/config_solo/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem',2020.09.22-14:56:34.451 error [caliper] [cli-launch-master] Benchmark failed with error code 4
But the code still can not run,the errors are as followed:2020-09-22T07:28:45.279Z - error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Calling enroll endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054], stack=Error: Calling enroll endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]
2020.09.22-15:28:45.790 error [caliper] [cli-launch-master] Benchmark failed with error code 4
Has left the channel.
how tohow to solve the problem “”2020-09-26T08:48:04.903Z - error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Calling enroll endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054], stack=Error: Calling enroll endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]2020.09.26-16:48:04.904 error [caliper] [caliper-engine] Error while performing "init" step: Error: Couldn't enroll Org1's registrar or set it as user context: Calling enroll endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]
Has joined the channel.
Hello,
I'm trying to set up a private Ethereum network and bind it to Hyperledger Caliper. However, I couldn't sufficient sources to do that. Recently, I used geth v1.19 Ethereum client and created two nodes, initiliased them with the same genesis.json file. But I couldn't go beyond that point. I tried to bind it to Caliper and the error I got as the following.
ethereum@ethereum-VirtualBox:~/caliper-benchmarks$ npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/ethereum/1node/ethereum.json
2020.09.26-02:18:31.025 info [caliper] [cli-launch-master] Set workspace path: /home/ethereum/caliper-benchmarks
2020.09.26-02:18:31.028 info [caliper] [cli-launch-master] Set benchmark configuration path: /home/ethereum/caliper-benchmarks/benchmarks/scenario/simple/config.yaml
2020.09.26-02:18:31.029 info [caliper] [cli-launch-master] Set network configuration path: /home/ethereum/caliper-benchmarks/networks/ethereum/1node/ethereum.json
2020.09.26-02:18:31.029 info [caliper] [cli-launch-master] Set SUT type: ethereum
2020.09.26-02:18:32.106 info [caliper] [benchmark-validator] No observer specified, will default to `none`
2020.09.26-02:18:32.106 info [caliper] [caliper-engine] Starting benchmark flow
2020.09.26-02:18:32.154 error [caliper] [cli-launch-master] Unexpected error during benchmark execution: Error: Ethereum benchmarks must not use http(s) RPC connections, as there is no way to guarantee the order of submitted transactions when using other transports. For more information, please see https://github.com/hyperledger/caliper/issues/776#issuecomment-624771622
I may not achieve to set up a proper private Ethereum network for Caliper. I would be grateful if you could help me out with testing the private Ethereum network with Caliper.
My email: znkcn2000@gmail.com
Best regards,
that's a crypto issue - the wrong certificate is being used
Could also bee the CA is not up?
Could also be the CA is not up?
Checkout this local network example: https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/ethereum_tests/config/docker-compose.yml
You must expose/configure the websocket endpoint for your node (refer to the geth docs)
due to loss of pem files when i ran the code,i added two pem files which are in hyperledger fabric in order to satisfy the need of caliper.
and also,CA is not up
CA logs should indicate why
the container of ca was not running when i type "docker ps -a"
but you can still get the logs
could you tell me how to get the logs ,thx
docker logs
docker logs ca.org1.example.com
Error: No such container: ca.org1.example.com
docker ps -a should give you an id along the lines of "123asdakjnfdfq"
i've always used that
listed as "CONTAINER ID"
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
,no information available
ok, so the containers were torn down at the end of the test
repeat test with additional flag =`--caliper-flow-skip-end`
--caliper-flow-skip-end
--caliper-flow-skip-end: command not found
it's a flag you add at the end of the complete caliper test command
i copy this into the last part of the code,but terminal can not work it out
hmm
npx caliper launch master \
--caliper-workspace . \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig
networks/fabric/fabric-v1.4.4/2org1peergoleveldb_raft/fabric-go-tls.yaml
--caliper-flow-skip-end
missing `\`
this is my commod
missing \ after network config line
docker logs ca.org1.example.comError: Failed to find private key for certificate in '/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem': Could not find matching private key for SKI: Failed getting key for SKI [[103 109 186 233 152 242 123 225 181 36 139 236 198 14 175 74 167 47 139 193 23 50 100 233 229 202 5 215 46 57 14 154]]: Key with SKI 676dbae998f27be1b5248becc60eaf4aa72f8bc1173264e9e5ca05d72e390e9a not found in /etc/hyperledger/fabric-ca-server/msp/keystore
well, i should check out the file
also worth making sure:
- crypto content has been generated
- docker volume prune to make sure volumes are empty
- delete any crypto stores that might locally exist and are being used (or change crypto config path in caliper network config file)
do you have a blog or github which i can follow or star?you must be a matser in this field
i try to add things to the caliper docs where possible
thank you very much anyway and i will learn how to work out the error tommorrow.If you can tell me how to figure the error out ,i would be very appeciate .Thanks again.
usual process on failure is:
- check all docker containers are up
- inspect logs for those that have failed
- depending on error, check component has what it should or is complaining about
- possibly increase debug level
Has joined the channel.
Hi!
I'm trying to test an existing network with Caliper (v0.3.2).
This network has 3 organizations (Org1, Org2, Org3), with one peer each, and 2 channels where Org1 has access to channel1 and channel2, Org2 has access only to channel1 and Org3 has access only to channel2.
I specified this realtions in configtx.yaml and enabled the discovery service, using the flag on the caliper launch command.
However, an error appears saying:
"[Network]: _initializeInternalChannel: Unable to initialize channel. Attempted to contact 1 Peers. Last error was Error: Channel:channel1 Discovery error:access denied"
Why Org2 tries to access the channel2 even though it does not have access to it? Does anyone know how to resolve this?
Thank you in advance for your attention!
Hi, caliper is not designed to be a network deployment tool, though it can be used for creation of basic networks. Caliper assume that everyone has access to everyone; best thing to do would be to hand craft (or automate with a suitable tool) the network, and then connect caliper to it in a "test only" mode
@miribeiro you probably can take a look at minifabric which set up network easily with your own setup/layout, then run caliper with just one command, then it produces a report. Fast and easy.
The network I mentioned is already deployed through Fabric.
The issues I'm having are related to the 'client' section of the network_config.json.
When you're saying "that everyone has access to everyone" are you saying that the clients used in Caliper must access all channels mentioned in the network_config.json?
It is not the same logic as setting up Caliper on an existing Fabric network? In Caliper v0.3.2 docs appears an example of that.
Even though the clients don't have access to specific channels in the network created?
what is the intended test scenario?
for instance, do you intend to performance test the chaincode using clients from ultiple organisations, or just one of the organisations?
for instance, do you intend to performance test the chaincode using clients from multiple organisations, or just one of the organisations?
if the latter, then you can just use a reduced network config that only lists Org1/2 and another with org1/3
In a first phase, test the network using a client from one of the organizations yes. Using 2 network_config files seems the best solution so far, so thank you.
And at a later stage, the ideal would also be to test using clients from multiple orgs. Is that possible?
@minifabric creates a network using your own spec or a default spec, then you can simply invoke minifab caliperrun command to run caliper test against the network you setup using minifabric, very easy, you can certainly place your own code in the place of the code comes with minifabric to run whatever the test you prefer. Take a look at the doc on this at docs/README.md, you will never need to struggle with Fabric.
@miribeiro minifabric creates a network using your own spec or a default spec, then you can simply invoke minifab caliperrun command to run caliper test against the network you setup using minifabric, very easy, you can certainly place your own code in the place of the code comes with minifabric to run whatever the test you prefer. Take a look at the doc on this at docs/README.md, you will never need to struggle with Fabric.
:thinking_face: possibily, if not... we should make it possible :thumbup:
docker logs ca.org1.example.com
Error: Failed to find private key for certificate in '/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem': Could not find matching private key for SKI: Failed getting key for SKI [[103 109 186 233 152 242 123 225 181 36 139 236 198 14 175 74 167 47 139 193 23 50 100 233 229 202 5 215 46 57 14 154]]: Key with SKI 676dbae998f27be1b5248becc60eaf4aa72f8bc1173264e9e5ca05d72e390e9a not found in /etc/hyperledger/fabric-ca-server/msp/keystore
docker logs orderer2.example.com
Failed to initialize local MSP: could not load a valid signer certificate from directory /etc/hyperledger/msp/orderer/msp/signcerts: stat /etc/hyperledger/msp/orderer/msp/signcerts: no such file or directory
docker logs peer0.org1.example.com
Cannot run peer because cannot init crypto, folder "/etc/hyperledger/msp/peer/msp/" does not exist
looks like the volume mounts are not mounting correctly - did you generate the crypo config? If you find the docker compose file that is being run, and try to match the volume mounts with the local directories, that shoud help
the crypo config is not generated
that would be the issue - there is a helper script generate.sh or similar
can i move teh generate.sh from fabric1.4.3 to caliper?
would that can help?
are you using a caliper sample?
i dont know what do you mean.i indeed follow the article https://hyperledger.github.io/caliper/v0.3.2/installing-caliper/
the fabric network being created, is that a caliper-benchmarks sample?
yes
i mean i studied hyperledger fabric at first. I have the loss of some files when i run the caliper command,then i will copy the file in hyperledger fabric to meet the demand
i guess that step may generate some mistakes?
that is possible, tho the errors above indicate that the network is not up. Once the network is up, i would recommend fllowing htis tutorial: https://nklincoln.github.io/caliper/v0.3.2/fabric-tutorial/tutorials-fabric-existing/
so when the network is up,do the caliper-benchmarks include folders named crypto-config and bin,because i know these folders are essential for hyperledger fabric
okay thanks will search on it more
is there any reference that i can use
and understand
Hi sir,
I've been trying to run your local network example but I'm getting an error. Here is what I've done.
I cloned the Caliper repository.
Then executed the following commands.
npm init -y
npm install --only=prod \
@hyperledger/caliper-cli@0.3.2
npx caliper bind \
--caliper-bind-sut ethereum:latest
npx caliper launch master \
--caliper-workspace . \
--caliper-benchconfig packages/caliper-tests-integration/ethereum_tests/benchconfig.yaml \
--caliper-networkconfig packages/caliper-tests-integration/ethereum_tests/networkconfig.json
The error I got when I run above commands:
error.PNG
I'm getting crazy, I need to use Caliper in an Ethereum network somehow, could you help me out of this?
error [caliper] [caliper-engine] Error while performing "install" step: Error: Invalid endorsement for marbles@v0 in mychannel from peer0.org1.example.com: error starting container: error starting container: API error (404): network 2org1peergoleveldb_raft_default not found
how to deal with it??
fabric peers in the docker compose file will name the docker network to use when building/instantiating chaincode. It must be the available network. Do a `docker network ls` to see what you have, and modify the file accordingly
NETWORK ID NAME DRIVER SCOPE
1902ea3e5b9c 2org1peergoleveldbraft_default bridge local
d7bd7f985cf8 bridge bridge local
c6545d60688d host host local
4918909905fd none null local
ea59ab6c692b simplenetwork_default bridge local
@yongmu-lol It appears that you are using an older Docker-compose version, which simply ignores the underscores in the parent directory name (which is used to generate the network name by default): `2org1peergoleveldb_raft_default` <->`2org1peergoleveldbraft_default`
Update your Docker-compose version (recommended), or don't use underscores in the parent directory (you need to modify a lot of paths, not recommended)
The ethereum node is not ready for connections yet. Check its docker logs to see the reason (maybe a config error).
Hi, I have a question regarding running the SmallBank benchmark on Fabric. I noticed that we can set `txnPerBatch` variable to control the number of transactions sent per client request. Is this also considered when computing the throughput results? or is it ignored and the throughout result that reported correspond to the number of requests per second regardless of the value of `txnPerBatch`
Hi, I have a question regarding running the SmallBank benchmark on Fabric. I noticed that we can set `txnPerBatch` variable to control the number of transactions sent per client request. Is this also considered when computing the throughput results? or is it ignored and the throughout result that reported is corresponding to the number of requests per second regardless of the value of `txnPerBatch`
Has left the channel.
When I run the caliper for the ethereum with the default configs in caliper-benchmark repository, I got the following error (err="invalid block 18: unknown ancestor")
output - Thu Oct 01 2020 01:33:38 GMT+0300 (GMT+03:00).txt
I saw the issue about this but I couldn't solve it even though necessary forks are added to the genesis.json file
https://github.com/hyperledger/caliper/issues/942
Is there any solution regarding this?
Has joined the channel.
Hi all, Caliper 0.4.0 has just been released :tada:
There are *significant* breaking changes for all users (hence the jump from 0.3.x to 0.4.x), but there are also significant features to take advantage of. We have updated the documentation accordingly, but intend to present these features on the next Caliper call on Wednesday the 7th of October (please check the Hyperledger Calendar for more details and access https://wiki.hyperledger.org/display/HYP/Calendar+of+Public+Meetings) ... we hope that you can make it!
Has joined the channel.
Clipboard - 5 Ekim 2020 03:09
Does anyone know about below error?
Does anyone know about above error?
Yes, multiple TXs are trying to update the same state, so they conflict: https://hyperledger-fabric.readthedocs.io/en/latest/readwrite.html
Above page also describes the rw-set mismatch scenario
thanks a lot!
Has joined the channel.
So how can i avoid too many conflicts in the system??
By designed your chaincode in a way that TXs have minimal data dependency on each other. Not always possible to completely eliminate it. But this is a Fabric chaincode design issue. Find some pointers here: https://github.com/hyperledger/fabric-samples/tree/master/high-throughput
By designing your chaincode in a way that TXs have minimal data dependency on each other. Not always possible to completely eliminate it. But this is a Fabric chaincode design issue. Find some pointers here: https://github.com/hyperledger/fabric-samples/tree/master/high-throughput
Hello! Is it possible to watch the recording of the meeting?
I would like to know what is new
I've found the "what's new" https://github.com/hyperledger/caliper/releases
Since only the maintainers were present, there was no "what's new" demo :)
:-/ damn.. i wish I had attended.
Monitor this event: https://wiki.hyperledger.org/display/CP/Blockchain+Tech+Fest+2020
There is a high chance that there will be a Caliper session :) :caliper:
Is the new version integrated to grafana?
There's no direct integration with grafana yet (if you mean including time series data into the report). But Caliper can now expose TX-related metrics for Prometheus. So after a benchmark run, you can use Grafana+Prometheus to visualize some things. Metric details: https://hyperledger.github.io/caliper/v0.4.0/caliper-monitors/#prometheus
And https://hyperledger.github.io/caliper/v0.4.0/caliper-monitors/#grafana-visualization
Has left the channel.
How shall we proceed on increasing the load of caliper workers? Can I start several containers/works per host (I'm using the fixed-backlog and see some timeout failures) ??
How shall we proceed on increasing the load of caliper workers? Can I start several containers/works per host (I'm using the fixed-backlog and keep seeing some timeout failures) ??
I'm trying to bind caliper 0.4.0 to fabric 1.4.1 but got the following error:
Clipboard - October 8, 2020 5:14 PM
2020.10.08-16:13:59.171 error [caliper] [bind] Unknown "fabric" SDK version "1.4.1"
same code runs correctly for 0.3.2 though
@dporto the commands have changed
So did the configuration files.
And launch manage command also hang if you managed get its working.
I was trying really hard to make it working but at end of day I decided to continue work with 0.3.2.
Version 1.4.1 was removed. I would suggest using just 1.4 as it will point to the latest version that was tested. Any reason why you would want to use 1.4.1 it's pretty old
Version 1.4.1 was removed. I would suggest using just 1.4 as it will point to the latest 1.4 version that was tested. Any reason why you would want to use 1.4.1 it's pretty old
I actually need to work with fabric 1.3 which I can replace the orderer service with bftsmart, the 1.4.1 was the one that first worked
docs needs to be updated then: https://hyperledger.github.io/caliper/v0.4.0/installing-caliper/
fabric: 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.4.0, 1.4.1, 1.4.3, 1.4.4, 1.4.5, 1.4.6, 1.4.7, 1.4.8, 1.4.9, 1.4.10, 1.4.11, 2.1.0, latest, latest-v2
Could you raise a github issue that please :-)
I would suggest trying 1.4 to see if it works for you.
trying right now
I'm trying to deploy caliper in a small docker swarm cluster with prometheus. I made it work with caliper 0.3.2 with nodeexporter but i end up disabling cadvisor and grafana which I could not make it work.
I wonder if this was improved in v 0.4.0
cadvisor has to be deployed at all hosts right?
the compose file seems to work for local deployment only not swarm https://github.com/hyperledger/caliper-benchmarks/blob/v0.3.2/networks/prometheus-grafana/docker-compose-fabric.yaml
so far 1.4 worked
Cool
I will try making a deployment
there is another issue.
there is no map to 1.4 at https://github.com/hyperledger/caliper-benchmarks/tree/v0.4.0/networks/fabric/v1
only 1.4.0, 1.4.1 and 1.4.4
@tongli yeah.. just went through this. too many moving parts that doesnt match. moving back to 0.3.2
@dporto I actually made it working but it showed no errors, and submitted some txs, then it would not finish, just hanging there.
ouch. even worse.
not sure what went wrong
nick said that he will look into it though.
what is disappointing is that the docs says it is compatible. I imagined it went through a set of automatic tests for the configs that are stated compatible :-(
for now, stick with 0.3.2 and BTW, this is to integrate caliper with Minifabric which is now hyperledger lab project. https://github.com/hyperledger-labs/minifabric
I remember somewhere it says breaking changes. I am pretty sure somewhere it said that.
if you start up fabric network using minifabric, you can simply do minifab caliperrun to run tests.
but it uses 0.3.2, I tried to go 0.4.0 but with the above described issue, I hold that off.
that's probably too late for me now. I've designed a bunch of playbooks to deploy any number of organizations peers, orderers and caliper workers + prometheus and node exporter.
I have not see how is it done the inventory of nodes, or if it works with prometheus... in fact looking at it quickly it doesnt seems to have enough docs and im a bit tired of reverse engineer stuff and combine different tutorials to make a (supposed) simple distributed deployment work
you mean minifabric?
it has tons of docs and videos available. but use what you feel comfortable probably is the best thing.
Maybe another issue ? Sorry I don't know much about that repo at the moment
Maybe another issue needs to be raised there ? Sorry I don't know much about that repo at the moment
When you say the docs say it's compatible, could you be more specific as I'm not sure to what you are referringto
When you say the docs say it's compatible, could you be more specific as I'm not sure to what you are referring to
https://hyperledger.github.io/caliper/v0.4.0/installing-caliper/
doc version v0.4.0
Clipboard - October 8, 2020 7:16 PM
fabric 1.4.1
doesnt work.
then I moved to 1.4
again, https://github.com/hyperledger/caliper-benchmarks/tree/v0.4.0/networks/fabric/v1
no network available
I cannot use a variable to make it consistent.
sorry I dont mean to be cocky. Just a bit frustrated. thanks for all your great work
Ahh, ok the available SUTs :-)
A lot of the SUTs were dropped in 0.4 (as having so many different versions of the same almost exact level such as 1.4.1, 1.4.2 etc didn't make sense). It's possible to define your own SUT through a caliper config however.
@dporto not a problem at all.
you can specify a "binding file" that will enable you to bind to any SDK that you want to
we certainly missed the modification to the docs on"supported internal bindings"
@8$SBQRPOS[JK6V(Y~MQM0D.png
my fabric version is 2.2.1,caliper version is 0.4.0
ZK}53B7H}U5SOBASMXX@1OX.png
there was a timeout on deploy
there was a timeout on deploy. Those are fabric resources that we have no control over, so would redirect you to the fabric rocket channels for issues there ... but my suspicion is that the javascript contract took too long to build and so you hit a timeout
traced it to an issue within NodeJS itself - moving caliper images to a NodeJS version that contains the required patches
seems that an internal node error was thrown that blew up the worker process, but manager continued as separate process.
@nkl199 happy that you were working on this issue. Should I give it a try with a new image? Is it on docker hub?
we will be backporting the fix, so it will take a little while yet - the most recent unstable image is up there but is only valid for the 0.4+ configuration
would be great if you could have a look at it though :thumbup:
So if I take the latest 0.4.0 unstable image, it should contain the fixes? @nkl199
docker pull hyperledger/caliper:0.5.0-unstable-20201012111403
@nkl199 ok, any newer 0.5.0 image than that one will also contain the fixes or only this one?
only this one at the moment, we will release 0.3.2 and 0.4.0 images with the same fix though
@nkl199 ok. thanks. I will try that.
awesome -thanks :thumbup:
@nkl199 hi, Nick, you ready for the test results?
sure
It worked great.
fantastic - thanks for the check :thumbup:
I tested with different transactionLoad.
Here is with transactionLoad being 2
Screen Shot 2020-10-12 at 9.22.12 AM.png
Here is with transactionLoad being 400
Screen Shot 2020-10-12 at 9.24.07 AM.png
here is with transactionLoad being 800 but also workers set to 4. the results become a bit worse in terms of TPS which is understandable.
Screen Shot 2020-10-12 at 9.25.00 AM.png
with more workers, the TPS becomes lower,
yh, makes sense if the underlying system is being overloaded
Max latency jumped.
need a bit more tests to conclude. but it wont hang, that is what I care the most.
yh,me too!!
please let me know when this makes to release and I will make the changes to Minifabric using the real release.
will do :thumbup:
thanks. I strongly suggest Caliper using samplecc as examples. because it does not require initialization or cleanup.
and does not work on the same key.
easy to setup.
Screen Shot 2020-10-12 at 9.31.27 AM.png
this result uses 2 workers and 800 transactionLoad. it seems to me in this little env, the best combination is to use 2 workers with transactionLoad being 400.
@nkl199 one question though, in the report, I saw this.
Screen Shot 2020-10-12 at 9.36.38 AM.png
Notice at the bottom, it says SUT not provided, why is that?
everything else seems to be really good.
i'll check where that is pulling data from, from memory it comes from the network configuration file
the report has been like that for me in 0.3.0, so I am not really sure what was missing. The network configuration file was basically created based on the tutorial.
do not think I missed any thing.
but here is an example.
tongli - Mon Oct 12 2020 09:41:31 GMT-0400 (Eastern Daylight Time).txt
these certificates are just for test purposes, has no value
ok, will get back to you once i've had a scout through the report generation code
great. thanks. @nkl199
@tongli You can add arbitrary key-values under the `info` attribute in a network configuration file: https://github.com/hyperledger/caliper-benchmarks/blob/master/networks/fabric/v1/v1.4.4/2org1peercouchdb_raft/fabric-go-tls-solo.yaml#L26-L31
These will be included in the report as-is
ok. let me give it a try. thanks @klenik
So basically I can put any info there as I please?
Yep. Typically network information stuff, because workload descriptions have their own place in the benchmark config
But yeah, any key-value pair, no restrictions
@klenik Added these in the network configuration file. same thing though. but this is using 0.3.2 for testing
``` "info": {
"Version": "2.2.0",
"PeerOrgs": "org0.example.com,org1.example.com",
"NumberOfPeers": 4,
"OrdererOrgs": "example.com",
"NumberOfOrderers": 3,
"Orderer": Raft,
"StateDB": "golevel"
},```
SUT section still says not provided.
@tongli So this kind of embedding is not supported by the HTML report template anymore, but if you but the key-values under a `details` attribute (so they're under `info.details`), then they will be included in the report as stringified JSON
@tongli So this kind of embedding is not supported by the HTML report template anymore, but if you put the key-values under a `details` attribute (so they're under `info.details`), then they will be included in the report as stringified JSON
@klenik will try that, should work for any release newer than 0.3.2?
@klenik will try that, should work for any release 0.3.2 or newer?
Yes, the reporting part is untouched since 0.3.2
Ok. Thanks
@klenik that worked.
see the screenshot
Screen Shot 2020-10-12 at 1.56.06 PM.png
@klenik thanks for your help.
Has joined the channel.
Hi everyone, Running the bind command for fabric 1.4.0 gives error Unknown "fabric" SDK version "1.4.0"
Hi everyone, Running the bind command for fabric 1.4.0 gives error Unknown "fabric" SDK version "1.4.0" Any suggestion will be appreciated
Has joined the channel.
hello
I am facing error in Caliper
I assume you are using 0.4.0 - in which case bind with 1.4, or provide your own explicit binding file https://hyperledger.github.io/caliper/v0.4.0/installing-caliper/#the-bind-command
any particular error?
Hello everyone,
I have Fabric v2.0 running, and I am using Caliper to test the network. I run my benchmark with a fixed-rate rate control and I want to see how the network reacts when I change the rate control’s send rate. When using numbers less than 65 tps for the send rate, everything works perfectly fine. However, if I use a number more than 65 tps, the report shows a send rate around 65 rather than the original send rate that I set in the configuration file. There are no errors and all the tests are successful, but it seems like the send rate is limited. Does anyone have an idea why this is happening? Does this mean I have reached the hardware limits of my machine with 65 tps?
The following is my config file:
```
name: my-asset-benchmark
description: test benchmark
workers:
type: local
number: 3
rounds:
- label: subscribeToTopic
description: Subscribe to topic benchmark
chaincodeId: broker
callback: benchmarks/callbacks/broker/subscribeToTopic.js
txNumber: 500
rateControl:
type: fixed-rate
opts:
tps: 110
arguments:
assets: 10000
```
Clipboard - October 13, 2020 1:21 PM
This image shows the summary of performance metrics from the report.
Clipboard - October 13, 2020 1:21 PM
Hi- that would indicate to me that the local workers are saturating the resources available on the machine. Should be pretty easy to check though. IS the fabric network also running on the same machine?
Has joined the channel.
Hello Team,
Am trying to connect Caliper to my own network and want to check if we have any option for CALIPER_NETWORKCONFIG where instead of mentioning a custom modified network details .yaml file can we consume the connection profile json file for fabric network
Or is it like every-time we want to connect Caliper to any new network we have to manually modify the netowork config file
the caliper network configuration file is bespoke to each network you wish to connect to
is there any template for CALIPER_NETWORKCONFIG file since the benchmark folder has lot of samples and even includes commands to start and stop a network
have you had a look at the fabric tutorials- https://hyperledger.github.io/caliper/v0.4.0/fabric-tutorial/tutorials-fabric-existing/
@nkl199 Thanks a lot this turned out to be a great help
Hi there,
Im running experiments with fabric+caliper and in my scenario I need to redeploy the a clean network a few times. I was trying to backup the containers but noticed that at the peers the chaincode has a different name for repository. I wish to avoid the external download of these containers by caching (saving) them (for a quick clean redeploy).
I wonder from where is the chaincode container for the peer is being downloaded and why they are different for each peer:
dev-peer1.org2.example.com-fabcar-v0-80b68d3a5d35507df5aff4085d6f72e7e86a1cb844dde4502427e096b54d936c latest 8989419e438a 42 minutes ago 162MB
hyperledger/fabric-peer
dev-peers represent the build chaincode, and are built by fabric peers upon instantiate
dev-peers represent the built chaincode, and are built by fabric peers upon instantiate
so locally :-)
thanks
Thank you for your answer. Yes, the fabric is running on the same machine. Also, I tried increasing the number of workers to 5 and the exact same thing happened.
Yeah, the nodeJS runtime quite quickly becomes CPU constrained as is single threaded. Depending what spec your machine is, you could simply be reaching the limit.
Thank you so much. This is probably the case. I will try running Caliper on a seperate machine.
Thank you so much. This is probably the case. I will try running Caliper on a separate machine.
Does caliper 0.4.0 supports fabric 2.2.1
am trying to run but it fails with
Error: Unknown "fabric" SDK version "2.2.1"
You can bind to the 1.4 fabric node-sdk to work with a 2.2 fabric network for now. Hopefully we will be able to include a version of fabric node sdk 2.2 soon
Ok, but can I use 0.4.0 caliper version with Fabric 2.1?
2.1 is available to use and can be used against a fabric 2.2 network but I would still recommend binding a to 1.4 to use against a 2.2 network
Hi!
How does Caliper outputs a chart? I saw in documentation that it is possible to add an option within the benchmark configuration file for each monitor, but I did that and the report only outputs tables. Am I missing something? Thanks in advance!
@miribeiro it produces a html file
If everything is working as expected. You can use minifabric very easily to experience that if you are doing fabric stuff
It worked! I think there was a wrong indentation :sweat_smile:
@IR@(TS[U[4D`5WTQ3ML)@D.png
Hi there, I'm having a hard time understanding the output of caliper in different fabric configurations.
I tried several combinations of fabric configuration parameters, namely:
BatchTimeout,
BatchSize-MaxMessageCount
BatchSize-AbsoluteMaxBytes
BatchSize-PreferredMaxBytes
for caliper I picked the rate-control: fixed-backlog
also varied the number of workers which are containers in a single host or across 2 or 3 server hosts.
The results are hard to understand and I wish to configure something that looks like a real deployment to compare. Below I post what I have found so far.
Hi there, I'm having a hard time understanding the output of caliper in different fabric configurations.
I tried several combinations of fabric configuration parameters, namely:
BatchTimeout,
BatchSize-MaxMessageCount
BatchSize-AbsoluteMaxBytes
BatchSize-PreferredMaxBytes
for caliper I picked the rate-control: fixed-backlog
also varied the number of workers which are containers in a single host or up to 4 server hosts.
I also focused on the fabcar createCar chaincode.
The results are hard to understand and I wish to configure something that looks like a real deployment to compare. Below I post what I have found so far.
Hi there, I'm having a hard time understanding the output of caliper in different fabric configurations.
I tried several combinations of fabric configuration parameters, namely:
BatchTimeout,
BatchSize-MaxMessageCount
BatchSize-AbsoluteMaxBytes
BatchSize-PreferredMaxBytes
for caliper I picked the rate-control: fixed-backlog
also varied the number of workers (called threads in the picture) which are containers in a single host or up to 4 server hosts (called caliper workers in the picture - sorry about that).
I also focused on the fabcar createCar chaincode.
The results are hard to understand and I wish to configure something that looks like a real deployment to compare. Below I post what I have found so far.
Clipboard - October 16, 2020 11:26 AM
The failures I've found are due to timeouts. They happen mainly at the beginning of the experiment. I'm thinking on adding a zero-rate controller to give time for the system to setup the peer container. These are not failures due to concurrency.
The best result I got so far was 1677 TPS. I have nothing to compare it to but I dont think is very high +20k TPS based in papers like https://ieeexplore.ieee.org/abstract/document/8416470
can someone help me understand why are these error happening:
dporto - Fri Oct 16 2020 16:22:56 GMT+0100 (Western European Summer Time).txt
respective caliper report:
Clipboard - October 16, 2020 4:24 PM
Clipboard - October 16, 2020 4:25 PM
respective prometheus
Clipboard - October 16, 2020 4:25 PM
node CPU usage is below 40%, network also ~40Mbps (Nodes have a 1GBps links)
node CPU usage is below 40%, network also ~80Mbps (Nodes have a 1GBps links), even aggregating all traffic, it's below 240Mbps
Thus the system does not seem to be overloaded.
When I reduce the MaxMessageCount from 100 to 10, there is no more errors and high TPS
Clipboard - October 16, 2020 5:08 PM
Clipboard - October 16, 2020 5:08 PM
you would need to look into the peer/chaincode logs there - enabling higher trace levels in the caliper output will help too as caliper will dump SDK reported errors so they are visible
Caliper 0.4.1 has just been released: no breaking changes, but some bug fixes and the ability to use private transactions in Besu :tada:
:tada: Caliper 0.4.1 has just been released: no breaking changes, but some bug fixes and the ability to use private transactions in Besu :tada:
:tada: *Caliper 0.4.1 has just been released: no breaking changes, but some bug fixes and the ability to use private transactions in Besu* :tada:
Hi there, how do I configure fabric parameters such as endorsement policies? I noticed that using the benchmark fabric samples no example that has policies enabled: https://github.com/hyperledger/caliper-benchmarks/tree/master/networks/fabric
what is de default? I tried to add policies but got errors at the peers:
2020-10-19 14:15:54.412 UTC [blocksProvider] DeliverBlocks -> ERRO 7ca [mychannel] Got error &{FORBIDDEN}
2020-10-19 14:15:54.412 UTC [blocksProvider] DeliverBlocks -> ERRO 7cb [mychannel] Wrong statuses threshold passed, stopping block provider
endorsement policy is defined at channel create/update
endorsement policy is defined at chaincode/contract instantiate
even for old versions of fabric? I mean, 1.3, 1.4.??
would recommend the fabric channel there
you mean, apply the policy to the channel, right?
slightly more literal - the fabric rocket chat channel v
https://chat.hyperledger.org/channel/fabric
Hello! I'm having some difficulty understanding how to run Caliper with distributed workers.
I have 3 hosts, each one with 1 org and 1 peer and the goal is to test this network using a real distributed scenario. How can I do that?
Has joined the channel.
We are a team of graduate students from Duke looking into doing a project extending Caliper to be able to gather statistics from Hyperledger Sawtooth. We saw that this used to be support and is no longer. Is this a feasible project to accomplish in about a month and a half? Is there anyone we can chat with more to explore this option?
please reach out on the caliper-contributors channel :thumbsup:
use distributed workers communicating over MQTT?
I think a tutorial on this aspect would be a nice addition to the docs
Hi,
Hi! I need help guide regarding running Ethereum benchmark in caliper-benchmarks. Any suggestions ?
Hi! how to bind caliper to the Etherium benchmark included in caliper-benchmarks directory ?
Has joined the channel.
you bind to an SDK, not a benchmark: https://hyperledger.github.io/caliper/v0.4.1/installing-caliper/#the-bind-command
So you want to bind to the ethereum sdk, and then target a sample
Has joined the channel.
Hello, I am an undergrad student working with hyperledger fabric v2.1.0
I deployed a network with 2 chaincodes that communicate with each other to perform a task, I am not able to run hyperledger caliper for performance analysis of my deployed system. Please help.
Yeh, I did it for fabric and it worked but for ethereum it is unsuccessful. Could you tell me the bind command for SDK and sample for Ethereum ?
these are my command for ethereum benchmark run...................... .bind.................................................................npx caliper bind --caliper-bind-sut ethereum --caliper-bind-sdk 1.2.1
These are my commands for ethereum binding and running .npx caliper launch manager --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/ethereum/1node-clique/networkconfig.json
@nkl199 These are my commands for ethereum binding and running .npx caliper launch manager --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/ethereum/1node-clique/networkconfig.json
@nkl199 These are my commands for ethereum binding and running npx caliper launch manager --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/ethereum/1node-clique/networkconfig.json
@nkl199 These are my commands for ethereum binding and running
npx caliper launch manager --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/ethereum/1node-clique/networkconfig.json
for benchmark run
npx caliper launch manager --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/ethereum/1node-clique/networkconfig.json
you are missing the key part from the docs: `--caliper-bind-sut`
(unless you have a caliper.yaml file that is specifying the SUT to bind to)
what do u need to do?
@nkl199 you mean npx caliper bind --caliper-bind-sut ethereum --caliper-bind-sdk 1.2.1
@nkl199 you mean npx caliper bind --caliper-bind-sut ethereum --caliper-bind-sdk 1.2.1 ?
`--caliper-bind-sdk sut:sdk-version`
@nkl199 same error
what is the command you used, and what is the error?
let me sent it to you
the ethereum integartion tests might help: https://github.com/hyperledger/caliper/tree/master/packages/caliper-tests-integration/ethereum_tests
bind command.png
benchmark run command.png
Dear @nkl199 commands and the errors are shown here
Bindcommand.png
ok, so that started to work, but there was an error in the init step when the network was being created
yeh
only way to diagnose that is to look at the docker container logs
Let me check it again
and maybe seek guidance from someone more familiar with ethereum than me :joy: there's a few on here that might be able to help
could also check the Besu rocket chat channel
You are champ of Fabric ?
:grinning:
certainly more familiar with it
I have question for fabric
I want to customize raft consensus in fabric i.e., leader selection. Is it feasible ?
:thinking:
I searched how etcd/raft is used in background with fabric but was not successful to find how it works?
i'd have to have a read and get back to you on that one
Yeh sure.
Like for 5 orderer nodes ..a leader is selected from 5 nodes and then logs are replicated .. I want to change how leader is selected ?
ok, not certain to be honest, but a good question and i'll see if i can find anyone who knows
Yeh sure. Thanks for your time and guidance. I will be waiting to hear from you.:thumbsup:
Yeh sure. Thanks for your time and guidance. I will be waiting to hear from you.
:grinning:
@nkl199 Conduct performance analysis of my fabric network which I set up natively on a vagrant machine. The network I built has two chaincode which communicate to accomplish a certain task.
so i'm going to assume you need to submit a transaction on one chaincode, then complete/agree the transaction by submitting a transaction on the other chaincode?
Has joined the channel.
So there is no way to influence which node becomes the leader, the only thing you could do (potentially) is to figure out the current leader, kill it, and wait for another node to take over .. but you would not be able to specify which node was to then become leader
Yeh exactly!!
The etcd/raft implicit i.e., I cant follow steps how it works?
The etcd/raft is implicit i.e., I cant follow steps how it works?
One more question!!
Can I check individual performance of nodes through caliper ?
orderer nodes?
No! For example in marbles contract with fabric (in caliper benchmark) consists of only two organization with one orderer.
No! For example in marbles contract with fabric (in caliper-benchmarks directory) consists of only two organization with one orderer.
so caliper can pull information on each component, docker based, or Prometheus query based. Performance itself is measured from the perspective of the client sdk. If you have prometheus connected to fabric peers (or the orderer nodes) the wealth of information that you can pull out is pretty impressive, since the components expose quite alot (the difficulty is getting the right query!)
Yeh! got your point
Hi,
I need clarification on the meaning of the "Send Rate" metric in Caliper report. Does this metric mean that a proposal has been submitted for endorsement or that the endorsed proposal has been submitted to the ordering service?
Another related question in my benchmark is that by increasing the number of my workers (from one to more than 10) in a distributed configuration ( with diffferents hosts and with the messsage broker ), the "Send Rate" indicator does not increase significantly. What is strange is that the peers don't show a high CPU consumption either, unlike CouhDB. Is there something to do with the endorsement settings or should I just increase the number of endorsers at this point?
Thanks
Hi,
I need a clarification on the meaning of the "Send Rate" metric in Caliper report. Does this metric mean that a proposal has been submitted for endorsement or that the endorsed proposal has been submitted to the ordering service?
Another related question in my benchmark is that by increasing the number of my workers (from one to more than 10) in a distributed configuration ( with diffferents hosts and with the messsage broker ), the "Send Rate" indicator does not increase significantly. What is strange is that the peers don't show a high CPU consumption either, unlike CouhDB. Is there something to do with the endorsement settings or should I just increase the number of endorsers at this point?
Thanks
Hi,
I need a clarification on the meaning of the "Send Rate" metric in Caliper report. Does this metric mean that a proposal has been submitted for endorsement or that the endorsed proposal has been submitted to the ordering service?
Another related question in my benchmark is that by increasing the number of my workers (from one to more than 10) in a distributed configuration ( with diffferents hosts and with the messsage broker ), the "Send Rate" indicator does not increase significantly. What is strange is that the peers don't show a high CPU consumption either, unlike CouhDB. Is there something to do with the endorsement settings or should I just increase the number of endorsers at this point?
Thanks
Hi,
I need a clarification on the meaning of the "Send Rate" metric in Caliper report. Does this metric mean that a proposal has been submitted for endorsement or that the endorsed proposal has been submitted to the ordering service?
Another related question in my benchmark is that by increasing the number of my workers (from one to more than 10) in a distributed configuration ( with diffferents hosts and with the messsage broker ), the "Send Rate" indicator does not increase significantly. What is strange is that the peers don't show a high CPU consumption either, unlike CouhDB. Is there something to do with the endorsement settings or should I just increase the number of endorsers at this point?```
```
Thanks
Hi,
I need a clarification on the meaning of the "Send Rate" metric in Caliper report. Does this metric mean that a proposal has been submitted for endorsement or that the endorsed proposal has been submitted to the ordering service?
Another related question in my benchmark is that by increasing the number of my workers (from one to more than 10) in a distributed configuration ( with diffferents hosts and with the messsage broker ), the "Send Rate" indicator does not increase significantly. What is strange is that the peers don't show a high CPU consumption either, unlike CouhDB. Is there something to do with the endorsement settings or should I just increase the number of endorsers at this point?```
**Edit:**
Another related question, are the other "Latency" indicators related to the "Send rate" or the "Throughput"?
Thanks
Hi,
I need a clarification on the meaning of the "Send Rate" metric in Caliper report. Does this metric mean that a proposal has been submitted for endorsement or that the endorsed proposal has been submitted to the ordering service?
Another related question in my benchmark is that by increasing the number of my workers (from one to more than 10) in a distributed configuration ( with diffferents hosts and with the messsage broker ), the "Send Rate" indicator does not increase significantly. What is strange is that the peers don't show a high CPU consumption either, unlike CouhDB. Is there something to do with the endorsement settings or should I just increase the number of endorsers at this point?```
*Edit:*
Another related question, are the other "Latency" indicators related to the "Send rate" or the "Throughput"?
Thanks
Hi,
I need a clarification on the meaning of the "Send Rate" metric in Caliper report. Does this metric mean that a proposal has been submitted for endorsement or that the endorsed proposal has been submitted to the ordering service?
Another related question in my benchmark is that by increasing the number of my workers (from one to more than 10) in a distributed configuration ( with diffferents hosts and with the messsage broker ), the "Send Rate" indicator does not increase significantly. What is strange is that the peers don't show a high CPU consumption either, unlike CouhDB. Is there something to do with the endorsement settings or should I just increase the number of endorsers at this point?```
Edit:
Another related question, are the other "Latency" indicators related to the "Send rate" or the "Throughput"?
Thanks
Hi,
I need a clarification on the meaning of the "Send Rate" metric in Caliper report. Does this metric mean that a proposal has been submitted for endorsement or that the endorsed proposal has been submitted to the ordering service?
Another related question in my benchmark is that by increasing the number of my workers (from one to more than 10) in a distributed configuration ( with diffferents hosts and with the messsage broker ), the "Send Rate" indicator does not increase significantly. What is strange is that the peers don't show a high CPU consumption either, unlike CouhDB. Is there something to do with the endorsement settings or should I just increase the number of endorsers at this point?
*Edit:*
Another related question, are the other "Latency" indicators related to the "Send rate" or the "Throughput"?
Thanks
@nkl199 Yes, exactly.
@nkl199 What else do you need to know?
Hi,
I need a clarification on the meaning of the "Send Rate" metric in Caliper report. Does this metric mean that a proposal has been submitted for endorsement or that the endorsed proposal has been submitted to the ordering service?
Another related question in my benchmark is that by increasing the number of my workers (from one to more than 10) in a distributed configuration ( with diffferents hosts and with the messsage broker ), the "Send Rate" indicator does not increase significantly. What is strange is that the peers don't show a high CPU consumption either, unlike CouhDB. Is there something to do with the endorsement settings or should I just increase the number of endorsers at this point?
*Edit:*
Another related question, are the other "Latency" indicators related to the "Send rate" or the "Throughput"?
Thanks
Clipboard - 22 octobre 2020 15:54
Clipboard - 22 octobre 2020 15:54
Clipboard - 22 octobre 2020 15:54
Clipboard - 22 octobre 2020 15:54
Clipboard - 22 octobre 2020 15:54
In the continuation of my previous questions, how can I explain the measurement line where we have a "Send Rate" which is zero and a "Throughput" equal to 41.9?
why did it happen?thx a lot
while the tutorial is not available, where can I specify how to communicate with each worker through mqtt? I can't find good examples
Okay I managed to run it and realized that the caliper+broker creates local mqtt clients. How can I have remote clients?
looks to be a syntax error in marbles.go at line 463
they need to be spawned as separate docker containers, there is an example in the caliper main repo https://github.com/hyperledger/caliper/tree/master/packages/caliper-tests-integration/fabric_docker_distributed_tests
at the moment, the only way to test it would be to do one batch of "phaseA" transactions followed by another batch of "phaseB" transactions. You raise a valid use case - feel free to raise an issue in the main repo to request a feature that would do what you are asking (total time for series of transactions) :thumbsup:
Thank you! I am running without docker but the example make me understant that it was necessary to run master on one host and worker on another.
Now I'm having a different error ( DiscoveryEndorsementHandler]: _build_endorse_group_member >> G0:0 - endorsement failed - Error: 14 UNAVAILABLE: failed to connect to all addresses ) on host 2. This error is related to Fabric or Caliper?
Thank you! I am running without docker but the example made me understand that it was necessary to run master on one host and worker on another.
Now I'm having a different error ( DiscoveryEndorsementHandler]: _build_endorse_group_member >> G0:0 - endorsement failed - Error: 14 UNAVAILABLE: failed to connect to all addresses ) on host 2. This error is related to Fabric or Caliper?
that's a fabric error
Okay, thank you again!
Hey, I have 3 clients defined in network-config.yaml, and if I run Caliper invoking the first client everything works fine. But if I specifiy the benchmark to be invoked by the second or the third client, it gives an error related with DiscoveryEndorsementHandler.
I can't understant why because I have all the keys and certificates for all clients. How are these clients 'used' in Caliper?
Hey, I have 3 clients defined in network-config.yaml, and if I run Caliper invoking the first client everything works fine. But if I specifiy the benchmark to be invoked by the second or the third client, it gives an error related with DiscoveryEndorsementHandler.
I can't understant why, because I have all the keys and certificates for all clients. How are these clients 'used' in Caliper?
each client is considered an identity to use when creating a connection to the network peers. If you are using the "gateway" mode (which is the only way to use discovery) then a gateway is created and persisted for each client listed in the configuration file
each client is considered an identity to use when creating a connection to the network. If you are using the "gateway" mode (which is the only way to use discovery) then a gateway is created and persisted for each client listed in the configuration file
I am always interested in the answers to these questions :)
@darksidergod To coordinate assets/anything between separate chaincodes/channels, you'll probably need to implement a commit protocol on your chaincode level (2/3 phase commit, HTLC, or anything). Since you already have your chaincodes, I'm guessing this part is taken care of. On the Caliper side, you can list both chaincodes in the network configuration file. In your workload module, you can choose a target chaincode and invoker identity for every TX. You can code any logic in your workload module, so you could maintain such "user workflow states" in a single round. It requires a more complicated implementation, but such closed-loop user workflow implementations are possible.
Supporting such multi-TX request sessions on the Caliper level is not trivial, since we don't store TX results, just aggregate them.
Caliper reporting is platform-neutral, so the send rate is calculated from the total number of sent TXs divided by the round time (so it's an average sending rate). Whatever "sent" means, it depends on the platform, but the "time for sending" usually denotes the very first TX-related activity in the connector. For Fabric, it is before the TX is sent to the endorsers.
The zero send rate is an anomaly, something's wrong. Can you reproduce the 0 rate? Which Caliper version are you using?
The throughput is calculated only from the successful TXs: number of successful TX divided by the round time.
Latency descriptors are shown for every TX, AFAIK.
Latency descriptors are also shown for successful TX, AFAIK.
Latency descriptors are also shown for successful TXs, AFAIK.
okay, and what is the default of localHost flag? I'm asking because I can run the discovery through a fabric-sdk-node app with peers on remote hosts, but when I run Caliper with a second or third client it gives an error saying that it "failed to connect to all addresses".
Okay, thanks for those clarifications!
About the anomaly on the "Send Rate", here is the configuration I used:
- Docker image in version 0.3.2.
- Binding: Fabric SDK 1.4.11
- SUT: Fabric 1.4.6
Since then I have migrated to version 0.4.1 of the Caliper Docker image. My code has changed in the meantime and I will not be able to easily return to the state of the project where the anomaly occurred. And I do not recall that the anomaly has occurred more than once.
About the anomaly on the "Send Rate", here is the configuration I used:
- Docker image in version 0.3.2.
- Binding: Fabric SDK 1.4.11
- SUT: Fabric 1.4.6
Since then I have migrated to version 0.4.1 of Caliper Docker image. My code has changed in the meantime and I will not be able to easily return to the state of the project where the anomaly occurred. And I do not recall that the anomaly has occurred more than once.
I migrated to version 0.4.1 of Caliper's Docker image, and after updating my configuration, everything seems to work fine as before except for the appearance of the charts in the HTML report.
In the report I have the table with the metrics retrieved from Prometheus, but the charts no longer appear.
Any idea where I should look?
Thanks
it is possible that the configuration file isn't quite right and so the option is not being detected (i had this) probably worth double checking the indentation on the yaml file, or use a json structure file
default is true: https://github.com/hyperledger/caliper/blob/master/packages/caliper-core/lib/common/config/default.yaml
Has joined the channel.
Has joined the channel.
HI theres folks
i have a questions that can we use Hyperledger Caliper for performance evaluation of Hyperledger Indy
or u suggest an other platform?
Caliper currently supports Hyperledger Besu, Hyperledger Fabric, Ethereum and FISCO BCOS networks only. Support for a new platform requires implementing a connector for that platform: https://hyperledger.github.io/caliper/v0.4.1/writing-connectors/
Cool, let us know if you run into the same issue with 0.4.1 :thumbsup:
[ ](https://chat.hyperledger.org/channel/caliper?msg=xqZ58j7SkocGGfN5t) is there any other tools to evaluate performance of Hyperledger frameworks
is there any other tools to evaluate performance of Hyperledger frameworks
If you want to test Indy, ask around in the #indy channel, perhaps they know one or two
To changed it I need to pass "--caliper-fabric-gateway-localhost false" when I run Caliper?
To change it I need to pass "--caliper-fabric-gateway-localhost false" when I run Caliper?
depends on the caliper version, for 0.4.1, that is correct
I'm using the version 0.3.2. Is there another way to change that flag in this version?
use config dictated by that version: https://github.com/hyperledger/caliper/blob/v0.3.2/packages/caliper-core/lib/common/config/default.yaml
(it changed between 0.3 and 0.4)
So it is possible to create a config caliper file to override the default one? Okay, I'll give it a try, thank you for explaining to me!
yes, having a caliper.yaml file is certainly advised! We use those in the integration tests
I wanted to prove that Fabric can support a throughput of 1000 tx, I want to know some information. I am using tha fabcar chaincode on 2org1peergoleveldb_raft network:
1- What is the relation between the send rate and the number of worker (When I increase the number of worker more than a max number the send rate and throughout decrease)
2- How I can increase the send rate to increase the throughput to reach 1000 tps
workers are nodeJS based, so are single threaded. To increase the "system pressure" it is advised to use a distributed configuration via docker swarm or similar
Thank you @nkl199, Is there any documentation explaining the caliper implementation with docker swarm because I use a distributed network on cloud VMs with docker swarm?
Can we use Caliper 0.4 to benchmark a Fabric 2.1 network? Or when we can do it approximatively please?
@HelmiTrabelsi Yes, you can, with certain limitations in mind: https://hyperledger.github.io/caliper/v0.4.1/fabric-config/#binding-with-fabric-sdk-2x
Available 2.x bindings: https://hyperledger.github.io/caliper/v0.4.1/installing-caliper/#the-bind-command
no explicit documentation yet, we need to add a tutorial for that - but we do have some integration test samples https://github.com/hyperledger/caliper/tree/master/packages/caliper-tests-integration/fabric_docker_distributed_tests
@klenik which run schedule will be the best to drive up tps as many as possible? Like if you want to see the best tps?
@klenik which rate control will be the best to drive up tps as many as possible? Like if you want to see the best tps?
@tongli There's a `maximum-rate` controller, put together by @nkl199, you should give that a try: https://hyperledger.github.io/caliper/v0.4.1/rate-controllers/#maximum-rate
@klenik try to set up a good default rate controller for@minifabric
I will use that.
Hi, I want to evaluate the performance of my Fabric network, but I'm having some difficulty figuring out the values that I pass to the rate controllers.
What I understood so far is that if I run Caliper (0.3.2) with a fixed "txNumber" and vary the "tps" on fixed-rate controller I can see the maximum throughput of the solution if the throughput stops increasing, is this correct? Does this correspond to using the linear rate with an interval of "tps"?
What about the fixed backlog? How are the "unfinished_per_client" transactions related to throughput?
Thank you in advance!
i build a distributed fabric system in diferent host. i want 同
Hi, I want to evaluate the performance of my Fabric network。my network is a distributed system in different hosts,i was confused in the network config example. The official guide only provide solo example.
Hello Guys,
I am benchmarking multihost deployed fabric network.
Fabric Version: 2.2
Caliper: 0.3.1
Where I can configure discovery service - useLocalHost: false?
Currently default discovery service is considering all host as localhost.
Please let me know for more information.
Thank you.
configuration setting is on the available configuration options for fabric https://hyperledger.github.io/caliper/v0.4.1/runtime-config/#fabric-adapter-settings
try the tutorial as reference https://hyperledger.github.io/caliper/v0.4.1/fabric-tutorial/tutorials-fabric-existing/
essentially you are correct, the issue is when the system under test cannot deal with the number of requests, at which point you will get timeouts. A linear rate controller (that slowly increases tps) while observing the send/achieve rate in grafana would visually display the tipping point for you. Fixed backlog aims to maintain a fixed load, and you will get the maximum TPS at that load
Currently I'm not using grafana but eventually I'll set it up so I can visualize it better.
That fixed load is represented by the "unfinished_per_client" value? How do I know which value I should pass there? The documentation gives the example of 5, but I've also seen examples where it is passed 100. Does it depend on the "txNumber" that is passed?
it depends on what the system can sustain during steady state operation, if the loading is too high then you will get timeouts
So a try and error task if I understand correctly, where it is given several values until there is a timeout?
that is the common approach without using a visual real-time display
Hello, I am trying to use my own smart contracts to test my Ethereum network but I am having problems to generate the callbacks, is there any kind of tutorial to see it and try to adapt the ethereum benchmarks to work with my Smart Contracts?
I'm trying to run several tests, while changing the rate controller, in order to reach a conclusion about the performance and another question came up: what is the default backlog for the fixed-rate controller?
the only tutorial so far is for fabric, but the callbacks are generic - check out the docs
Thanks
looks to be 10
Has joined the channel.
Hello. I am encounterring the following error
2020-11-07T13:06:23.286Z - error: [EventService]: send[peer0.org1.example.com] - #1 - no targets started - Error: Event service peer0.org1.example.com is currently listening
Any ideas what might be wrong?
Thank you
Hello. I have the following error
2020-11-07T13:06:23.286Z - error: [EventService]: send[peer0.org1.example.com] - #1 - no targets started - Error: Event service peer0.org1.example.com is currently listening
Any ideas what might be wrong?
Thank you
Hello. I have the following error
2020-11-07T13:06:23.286Z - error: [EventService]: send[peer0.org1.example.com] - #1 - no targets started - Error: Event service peer0.org1.example.com is currently listening
.
.
.
2020-11-07T13:22:52.517Z - error: [EventService]: EventService[peer0.org1.example.com] timed out after:3000
2020-11-07T13:22:52.517Z - error: [EventService]: send[peer0.org1.example.com] - #1 - Starting stream to peer0.org1.example.com failed
Any ideas what might be wrong?
Thank you
Has joined the channel.
zz
How could we skip the default chaincode install+instantiate step while starting the network in nework.yaml file,
would recommend looking into container logs for diagnosing this
@nkl199 I have tried setting up
--caliper-fabric-gateway-localhost=false
but it is not working, discovery service is trying to connect to grpcs://localhost:7050, but my orderers are on different machine in swarm network.
Please help me to set discovery service as localhost=false.
I have done in sdk, it works fine, but in caliper I am not getting proper documentation on this. Please point me to correct solution.
Thank you.
what version of caliper are using, and what is the command you are using on the worker launch?
what version of caliper are using, and what is the (full) command you are using on the worker launch?
ompose file:
version: "2"
networks:
test:
services:
caliper_2.1:
container_name: caliper_2.1
image: hyperledger/caliper:0.3.1
command: launch master --caliper-fabric-gateway-usegateway --caliper-flow-only-test --caliper-fabric-gateway-discovery --caliper-fabric-gateway-localhost=false
environment:
- CALIPER_BIND_SUT=fabric:2.1.0
- CALIPER_BENCHCONFIG=benchmarks/scenario/simple/nazmul-v2.1/config.yaml
- CALIPER_NETWORKCONFIG=networks/fabric/nazmul-v2.1/network-config.yaml
volumes:
- ./caliper-benchmarks-local:/hyperledger/caliper/workspace
networks:
- test
Posted docker-comoose file above
command: launch master --caliper-fabric-gateway-usegateway --caliper-flow-only-test --caliper-fabric-gateway-discovery --caliper-fabric-gateway-localhost=false
@nkl199 , command: command: launch master --caliper-fabric-gateway-usegateway --caliper-flow-only-test --caliper-fabric-gateway-discovery --caliper-fabric-gateway-localhost=false
docs for 0.3 indicate that you need the flag `caliper-fabric-gateway-gatewaylocalhost` it was changed in 0.4 to make it more sensible
@nkl199 , Thank you that worked.
One more question, everytime when I run caliper first tx is getting failed.
Error: error [caliper] [adapters/fabric] Failed to perform submit transaction [createIC] using arguments [798f4040-2410-11eb-84f6-d3da3f0411b3,A,B,C,d], with error: Error: No discovery results found
What could be possible solution?
Thank you for your help.
i think that is an error in the sdk itself, so would need to be chased in the fabric-sdk-node channel
ok, Thank you so much
you're welcome
Has joined the channel.
Hi caliper Team, i have a quick query....does caliper support Hyperledger Indy?
Hi!, I am installing caliper from source on ubuntu 18. I used commands git clone https://github.com/hyperledger/caliper.git
cd caliper
npm i && npm run repoclean -- --yes && npm run bootstrap
This error pops up any idea
This error pops up..... any idea why ?
caliper.png
Has joined the channel.
worth checking the version of node that you are using
worth checking the version of node that you are using - recommend v10 at the moment due to dependancies in the source code
worth checking the version of node that you are using - recommend v10 at the moment due to dependancies in the source code (both the travis build and docker image use v10)
Not yet, but if that is an offer to contribute a connector, we are more than happy to assist :thumbup:
Hi! @nkl199 thanks for that. Actually, I was able to run bootstrap command afterwards and it was successful. My question is can we install caliper with caliper benchmark workspace repo from source code? I mean I installed caliper from source code but caliper benchmark workspace (fabric, besu, ethereum etc) are absent. Should that be cloned as well?
The caliper project has some samples used as integration tests under packages/caliper-test-integration
If you want a wider set of samples, then I would recommend cloning the caliper-benchmarks repository
@nkl199 I can see that in my caliper workspace
@nkl199 I cant see that in my caliper workspace
caliper workspace.png
@nkl199 this is my workspace
Hmm, personally I would classify that as the cloned caliper repository. Within `packages` you can see the caliper components
caliper packages.png
@nkl199 yeh here it is
@nkl199 but I dont know how to run it. for example I want to evaluate an ethereum network how can I do that?
I did it for fabric when I installed caliper using npm package but the current one is installed using source which is different
ah right, to test with souce you can execute the CLI command directly (we do this in the integration tests) so use `node
Screenshot (35)_LI.jpg
@nkl199 in this command I dont have caliper-benchmarks \
@nkl199 as I shared my caliper workspace above it does not have this caliper-benchmarks \ .....................should I clone caliper-benchmarks as well?
yes
but make sure you account for the path differences when issuing the command
@nkl199 thanks
Is it possible that I can install heyperledger fabric in such a way that I can get source code of consensus as well?
You send me a link for building fabric do you have any tutorial for that because at that page it seems very complex
I'm not aware of any tutorials for that part
Okay, and generally can we install hyperledger fabric from source code?
like I can get source code on my PC
The source code is hosted in github, which you can clone, and from which you can use the `make` comands to build the components
Okay, and any guidance for doing it ?
like commands to do that
not beyond any existing documentation
I'm only aware of the "fabric docs" links
https://openblockchain.readthedocs.io/en/latest/dev-setup/build/
Thanks for time and help @nkl199
Working on Aries/Indy project...and interested to work along with the caliper team...will get back to you once I think I'm ready.
Hi Team, another query...Do you think there is an certification course for caliper...just like LFS173x( Aries m),LFS172x...etc backed by linux foundation? If not can we expect a course like tht any time sooner?
I am getting this error when I try to start a benchmark with caliper 0.4 using a preconfigured fabric 2.1 network by this command:
npx caliper launch manager --caliper-workspace . --caliper-benchconfig caliper/fabcar/config4.yaml --caliper-networkconfig caliper/Network_config.yaml --caliper-flow-only-test --caliper-fabric-gateway-enabled
Error: Failed to connect before the deadline on Endorser- name: peer0.org1.example.com, url:grpcs://localhost:7051, connected:false, connectAttempted:true
There are no certification courses for Caliper, to my knowledge you are the first person to enquire too!
is the network remote? If so you will also need the `--caliper-fabric-gateway-localhost=false` flag
3
Thanks @nkl199 for confirming that, hope the caliper team will give it a shot when it is ready.
Yes, I try to use Caliper in a docker swarm. unfortunately, even with this flag I had the same error
@nkl199 Yes, I try to use Caliper in a docker swarm. unfortunately, even with this flag I had the same error
Has joined the channel.
I am getting this error when i try to benchmark with caliper 0.4.1 Error while performing "init" step: Error: Couldn't read configuration binary for mychannel: EISDIR: illegal operation on a directory, read
Hello, "EISDIR: illegal operation on a directory, read" means you're trying to open a directory when instead you should be passing/opening a file
See https://stackoverflow.com/questions/20417118/using-node-js-i-get-error-eisdir-read
Also take a look at https://github.com/hyperledger/caliper/issues/818 - that might be related
Has joined the channel.
Hi, Does caliper has its own ledger for testing multiple usecase? or it will affect own network?
I tried with the same config as a bridge network but i get the same error
I tried with the same config as a local network but i get the same error
You should use a representative test network. Caliper makes a client connection to a network, and consequently the action will be interact with the network exactly as a client would (including ledger growth)
Has joined the channel.
Hi Team. In my chaincode I am verifying an attribute from Certificate.So I need different chaincode invoker. In Caliper how do I generate numbers of invokerIdentity. Right now I have seen If I mention clients in network-config it automatically generates the client identity. But for that also I need to enter client section may be for 5000 identities 5000 entries. Does there any better option?
To verify the certificate attribute, do you need 5000 different certificates, or could you loop around a list of 100 50 times?
list of 100 50 times will also work
Is this for fabric?
Yes Hyperledger Fabric v2.1.0
OK, final q - is the idea to pass the certificate into the chaincode for analysis (by any client), or to connect with a client using the certificate(s) and then issue a transaction?
Its validating identity and then issue transaction
ah, ok so in this case the requirement is to use a series of different client connection, that are back by different certificates.
The route I would take here is to create a set of identities for inclusion within the caliper configuration file, and pass an array of the identity names into the callback/workload as arguments, looping over these as invoker identities for each Caliper transaction during the workload generation
ah, ok so in this case the requirement is to use a series of different client connections, that are back by different certificates.
The route I would take here is to create a set of identities for inclusion within the caliper configuration file, and pass an array of the identity names into the callback/workload as arguments, looping over these as invoker identities for each Caliper transaction during the workload generation
ah, ok so in this case the requirement is to use a series of different client connections, that are backed by different certificates.
The route I would take here is to create a set of identities for inclusion within the caliper configuration file, and pass an array of the identity names into the callback/workload as arguments, looping over these as invoker identities for each Caliper transaction during the workload generation
You can rely on caliper to create these for you (as you mentioned) or use cryptogen to get the actual certificates that you want, and map these
Right now I am doing like as below -
In open.js -
txnPerBatch=100
for (let i = 0; i < txnPerBatch; i++) {
workload.push({
chaincodeFunction: 'xxx',
chaincodeArguments: [],
invokerIdentity: `client${i}.xxx.yyyy.com`,
});
}
In network-config.js
clients:
client0.xxx.yyyy.com:
client:
organization: xxx
credentialStore:
path: /hyperledger/caliper/workspace/v2.2/hfc-kvs/xxxx
cryptoStore:
path: /hyperledger/caliper/workspace/v2.2/hfc-cvs/xxx
affiliation: xxx.yyyyy
... 100 times
But I would like to avoid declaring all identities in network-config.js
Caliper only has knowledge of the identities declared in that file, and they are the only ones that may be used to submit transactions to the target system. All client connections are made (and persisted) in advance of running the workload phase
Ok. Also in config.yaml I am seeing an option to declare client like this
clients:
type: local
number: 5
that is the number of "worker threads" that are used
What is this for?
so in the above, caliper will spawn (or assume the existence of) 5 workers
Ok. One more thing. Just a general question reagrding caliper. Suppose I am getting a good result with let say 100 workers. Now in my actual application what needs to be changed to achieve 100 worke's equivalent TPS
not sure if I understand that one, Caliper uses rate limited workers to drive a workload. Ultimately it will determine the achievable/sustainable workload of the system that is ultimately used by an application
Thanks for your explanation and sorry for late reply.
If I am executing with 10 worker nodes at fixedRate 150 TPS does that mean In each second 150*10 transaction would be added or 10 workers would submit 150 transactions together in 1 second?
If I am executing with 10 worker nodes at fixedRate 150 TPS does that mean In each second 150*10 transaction would be submitted or 10 workers would submit 150 transactions together in 1 second?
the rate driving is "as the SUT would see it" so however many workers there are will contribute to the defined workload requested
thanks for clarifying :)
Hi all, I get this error while Pulling caliper-worker2 (caliper:test) : ERROR: pull access denied for caliper, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
are you trying to run the docker-compose files in the integration tests directory?
Yes
those have a little magic, because they reply on internally build images. You can update the docker-compose file to point to the correct (existing) caliper image available in docker-hub
those have a little magic, because they reply on internally built images. You can update the docker-compose file to point to the correct (existing) caliper image available in docker-hub
(ie the caliper-test image does not exist unless you have built it)
Okay thank you @nkl199
Has joined the channel.
good afternoon
i am having issues installing fabric 1.4 on ubuntu 16.04LTS
Also installation of caliper too
please is there any step by step guide to installing fabric 1.4 on ubuntu 16.04LTS
I am a researcher in my school, and in my documentation on how to achieve my objectives for my project topic which says development of blockchain based patient record management system, hyperledger composer was used to model my business network and it can't be changed. So is there a way i can evaluate my work using generated bna gotten from fabric i.2 on fabric 1.4?
and i need to know the processes involved in generating the html report in hyperledger caliper?
i mean the processes inside each command inputed for the generated html report
thanks in advance
You could start by looking at the fabric 1.4 documentation. Specifically the building your first network may help
https://hyperledger-fabric.readthedocs.io/en/release-1.4/build_network.html
Has joined the channel.
Hello,
I am a new to JS. I have a problem with "Gathered TX data" (https://hyperledger.github.io/caliper/v0.4.1/fabric-config/#gathered-tx-data).
I have an example from that site:
const result = await this.sutAdapter.sendRequests(requestSettings);
let shortID = result.GetID().substring(8);
let executionTime = result.GetTimeFinal() - result.GetTimeCreate();
console.log(`TX [${shortID}] took ${executionTime}ms to execute. Result: ${result.GetStatus()}`);
How I can log to console "time_orderer_ack" and "time_endorse" for each transaction?
I use Hyperledger Fabric v1.4.8 with golang smart contracts + Caliper v0.4.1.
Thank you in advance.
Hyperledger Composer is end of life now and the only thing that remains are the npm modules and source code. Depending on what you are doing it may still be possible to get things working. If you were using 0.20.x version of composer then it should still be able to run on fabric 1.4 but there are no guarantees. I would highly recommend that anything using hyperledger composer is dropped and moved to using the native fabric libraries for writing chaincode and client applications
Those values won't be available if you use the gateway option `--caliper-fabric-gateway-enabled`, hopefully if you don't specify that option you will get those values
Ok, so I have to run the tests with this option. But how do I get this data for each TX to the console later?
Will they show themselves? Or should I call some function?
Sorry, I can't answer that really. I've looked in the caliper docs and can't see a way to provide extra information into a benchmark report. Looks like you would have to manage it all within your workload module and get it to output something. Hopefully someone with more knowledge will provide an answer if there is an alternative
A small correction, I want to put it on the Linux console as a log, not into the html report.
Thank you for your answer.
@MichalJarosz The paragraph above the table tells you the needed function (`Get()`): https://hyperledger.github.io/caliper/v0.4.1/fabric-config/#gathered-tx-data
Thank you.
For others:
Thank you.
For others:
const result = await this.sutAdapter.sendRequests(args);
let shortID = result.GetID().substring(8);
let executionTime = result.GetTimeFinal() - result.GetTimeCreate();
let EndorsementTime = result.Get("time_endorse") - result.GetTimeCreate();
let OrdererTime = result.Get("time_orderer_ack") - result.GetTimeCreate();
console.log(`TX [${shortID}] took ${executionTime}ms to execute. Result: ${result.GetStatus()}. Endorsement time: ${EndorsementTime}. Ordering time: ${OrdererTime}. Start time: ${result.GetTimeCreate()}. End time: ${result.GetTimeFinal()}`);
Thank you.
I am just starting the process of running benchmarks, I was away due to my semester exams.
Thank you both @nkl199 @klenik , appreciate the help.
Would you guys mind connecting on discord? @klenik @nkl199
Has joined the channel.
Hi! I want to write the query result to file returned by endorsement peers. But unsuccessful. Any idea ?
Hi! I want to write the query result to a file which are returned by endorsement peers when queried by SUT. But unsuccessful. Any idea ?
@klenik can you comment on this please?
The easiest option here is in the callback- add an explicit action that is within the callback to log the return from the SUT query
The easiest option here is in the callback/workload file- add an explicit action that is within the callback to log the return from the SUT query
Has joined the channel.
I have a question. the result of caliper test in multiple machines and single machine are same
multiple machines
two machines node1: peer0org1 peer1org1 1 orderer
node2: peer0org2 peer1org2
single machine peer0org1 peer1org1 peer0org2 peer1org2 1 orderer
the reason?
I have only one peer & one orderer. Everything is running in my local machine.
1. For same caliper configuration(txcount,worker, fixed rate tps) I am getting different Throughput (TPS) at different time(Sometimes it 400 TPS & sometime around 291 TPS). Does the result depends on any network bandwidth? In my local machine cpu & memory consumption is almost constant.
2. Few times send rate tps is lower than Throughput (TPS). How it is possible?
+------+-------+------+-----------------+-----------------+-----------------+-----------------+------------------+
| Name | Succ | Fail | Send Rate (TPS) | Max Latency (s) | Min Latency (s) | Avg Latency (s) | Throughput (TPS) |
|------|-------|------|-----------------|-----------------|-----------------|-----------------|------------------|
| open | 38296 | 21 | 410.15 | 10.43 | 1.43 | 5.82 | 451.1 |
+------+-------+------+-----------------+-----------------+-----------------+-----------------+------------------+
3. If I enable prometheus monitor, send rate TPS drops than the one declared in config file. With local monitor it remains the same.
I have only one peer & one orderer. Everything is running in my local machine.
1. For same caliper configuration(txcount,worker, fixed rate tps) I am getting different Throughput (TPS) at different time(Sometimes it 400 TPS & sometime around 291 TPS). Does the result depends on any network bandwidth? In my local machine cpu & memory consumption is almost constant.
2. Few times when prometheus is enabled send rate tps is lower than Blockchain Throughput (TPS). How it is possible?
+------+-------+------+-----------------+-----------------+-----------------+-----------------+------------------+
| Name | Succ | Fail | Send Rate (TPS) | Max Latency (s) | Min Latency (s) | Avg Latency (s) | Throughput (TPS) |
|------|-------|------|-----------------|-----------------|-----------------|-----------------|------------------|
| open | 38296 | 21 | 410.15 | 10.43 | 1.43 | 5.82 | 451.1 |
+------+-------+------+-----------------+-----------------+-----------------+-----------------+------------------+
3. If I enable prometheus monitor, send rate TPS drops than the one declared in config file. With local monitor it remains the same.
absolutely, there is a large amount of data flow through the system and network bandwidth can impact results. That is still quite a large performance swing though, so my initial thoughts are that the local machine is running other background tasks that are impacting the performance run. I've had that quite a few times, and it was bad enough to jump onto a bare metal server to get repeatable runs
1) absolutely, there is a large amount of data flow through the system and network bandwidth can impact results. That is still quite a large performance swing though, so my initial thoughts are that the local machine is running other background tasks that are impacting the performance run. I've had that quite a few times, and it was bad enough to jump onto a bare metal server to get repeatable runs
out of interest, which version are you using?
Thanks. I would check my background task as well. I am using caliper 0.3.2. For 0.4.1 I was getting '_Error: Invalid "mychannel" channel configuration: child "contracts" fails because ["contracts" is required]. "chaincodes" is not allowed_' . So I shifted to 0.3.2.
ah right, yes - there is a configuration change there such that in the config file "chaincodes" is now "contracts"
I would highly recommend moving to the 0.4 version as there are some significant improvements, not least those available from the generation of TPS statistics and the way you can use Prometheus
there is a tutorial in the docs that takes you through the build up of the config file that should help
In which config file I have to change? Is it network-config yaml channel section?
yes
thanks for your help. 4.1 v is more stable and I am getting more tps than 3.2
Okay, furthermore, I want to add a function to the chaincode which when called can create a file in the same directory in which the chaincode file resides. I have implemented marbles chaincode with caliper benchmark. I tried to create file but was unsuccessful. I tried a read file function but it says file or directory not found. However, the file is in the directory. My question is what is the logic behind not reading or writing to file by a chaincode funciton ?
Okay, furthermore, I want to add a function to the chaincode which when called can create a file in the same directory in which the chaincode file resides. I have implemented marbles chaincode with caliper benchmark. I tried to create file but was unsuccessful. I tried a read file function but it says file or directory not found. However, the file is in the directory. My question is what is the logic behind not reading or writing to file by a chaincode function ?
chaincode cannot create files, only interact with the ledger.
The callback/workload module can. You will need to use fully qualified paths.
Ohh, Yes
Thank a lot
Thanks a lot
how to set Targetpeers in async submittransaction () of query.js in caliper ?
Hi, is it possible with Caliper to send transactions in parallel?, when you set up the accounts, you just introduce one, so although you put 5 workers, it is one after the other.
It's not one after an other. TXs are submitted asynchronously (even within a single worker they can overlap), and independently in each worker (overlap among workers).
Has joined the channel.
I have a question. In order to test the use of the kubernets high throughput Fabric system, I used the distributed mode of caliper 0.3.2. I have used five machines but the sendtps is only 1000+, and the tps result is also around 1000. How to continue to improve sendtps, adding more machines? Is there a better way?
I would recommend moving to 0.4.x Caliper, there have been some significant enhancements in the core.
How many workers and what rate driving are you using? The workers themselves are single threaded, and so to increase send TPS (having determined that the workers are the bottleneck) the only way would be to increase the number of worker clients being used.
1. I have 2 peers in a single organization with Endorsement Policy "MAJORITY Endorsement". For write transactions 80% of the endorsements are going to peer1 inspite of its ledger height is lower during execution.For Read transaction it is automatically scaling to both the peers. I tried changing sort criteria to random in chaincode arguments but that too is not working.
2. For prometheus resource metrics few times the parameter vales are coming as 'NaN' though there is valid data in Prometheus & Grafana API.
3. During start I am seeing many errors ' error: [EventService]: send[peer1.xx.xx.com:8051] - #3 - Starting stream to peer1.xx.xx.com:8051 failed'. Can I disable those errors.
which version are you using?
4.1
hi all , I am getting this error while deploying caliper with docker compose: /usr/local/bin/node[969]: ../src/node_http2.cc:893:ssize_t node::http2::Http2Session::ConsumeHTTP2Data(): Assertion `(flags_ & SESSION_STATE_READING_STOPPED) != (0)' failed.
you need to upgrade the version of node you are using
1) you can pick different endorsement strategies if using the gateway option
2) this might be an issue in caliper
3) Depends on if you use the gateway option or not. It is likely to be a fabric-sdk-node issue. The errors cannot be disabled as they are generated and dumped by the sdk. To my knowledge they cannot be turned off completely - though would recommend checking inthe fabric-sdk-node channel
please what is the recommended version?
v10.22 minimum
How to enable endorsement startegies with gateway option.I hae tried to add preferred: ['peer0.xx.xx.com'],
preferredHeightGap: 5, sort:"random"
these options are not working
My objective is to distributre the endorsement load between both the peers
they are via caliper flags, relating to the permitted strategies within the base sdk - https://hyperledger.github.io/caliper/v0.4.2/runtime-config/#fabric-adapter-settings
with the options being ```
const EventStrategies = {
msp_all : DefaultEventHandlerStrategies.MSPID_SCOPE_ALLFORTX,
msp_any : DefaultEventHandlerStrategies.MSPID_SCOPE_ANYFORTX,
network_all : DefaultEventHandlerStrategies.NETWORK_SCOPE_ALLFORTX,
network_any : DefaultEventHandlerStrategies.NETWORK_SCOPE_ANYFORTX,
};
const QueryStrategies = {
msp_single : DefaultQueryHandlerStrategies.MSPID_SCOPE_SINGLE,
msp_round_robin : DefaultQueryHandlerStrategies.MSPID_SCOPE_ROUND_ROBIN,
};
```
(lower case with under scores)
if those don't suit, you can provide target peer overrides within the workload arguments themselves
Ok thanks I would try that.
Can you please explain the last thing you mentioned.How to mention the target peers from workload
targetPeers is working. Thanks
Has joined the channel.
:exclamation: :caliper: Dear community, for those of who are interested, Caliper contributor calls will happen every two weeks from now on. Updated calendar: https://lists.hyperledger.org/calendar
:exclamation: :caliper: Dear community, for those who are interested, Caliper contributor calls will happen every two weeks from now on. Updated calendar: https://lists.hyperledger.org/calendar
Has joined the channel.
some lesson learnt when trying to use Hyperledger Caliper, mostly not directly related to Caliper itself:
- upgrade node version
- in the docker desktop preferences: switch off the option "Grpc shared file "
some lesson learnt when trying to use Hyperledger Caliper, mostly not directly related to Caliper itself:
- upgrade node version
- in the docker desktop preferences: switch off the option "gRPC shared file "
some lessons learnt when trying to use Hyperledger Caliper, mostly not directly related to Caliper itself:
- upgrade node version
- in the docker desktop preferences: switch off the option ```
Use gRPC FUSE for file sharing
``` in order to resolve the issue of ```
dial unix /host/var/run/docker.sock: connect: no such file or directory
```
some lessons learnt when trying to use Hyperledger Caliper, mostly not directly related to Caliper itself:
- upgrade node version
- in the docker desktop preferences: switch off the option
```
Use gRPC FUSE for file sharing
```
in order to resolve the issue of
```
dial unix /host/var/run/docker.sock: connect: no such file or directory
```
Moreover, the samples need to be updated, especially in the benchmarking folder. For example, one will need to remove the dash (-) from the sub-property "type" of the property "rateControl". This has been a frustrating issue to me with the new caliper version.
Moreover, the samples need to be updated, especially in the benchmarking folder. For example, one will need to remove the dash (-) from the sub-property "type" of the property "rateControl". This has been a frustrating issue to me with the new caliper version. the benchmark configuration needs to be like the following in order to work:
```
txDuration: 30
rateControl:
type: fixed-load
opts:
transactionLoad: 5
```
And then, sometimes I have this issue when caliper is trying to instantiate the chaincode and still did not figure out the root-cause:
' Failed to generate platform-specific docker build: Failed to pull hyperledger/fabric-ccenv:latest'
And then, sometimes I have this issue when caliper is trying to instantiate the chaincode and still did not figure out the root-cause:
```
Failed to generate platform-specific docker build: Failed to pull hyperledger/fabric-ccenv:latest
```
the benchmark configuration needs to be like the following in order to work:
`txDuration: 30
rateControl:
type: fixed-load
opts:
transactionLoad: 5`
the benchmark configuration needs to be like the following in order to work:
```
txDuration: 30
rateControl:
type: fixed-load
opts:
transactionLoad: 5
```
That's specifically a Docker issue for Mac introduced in 2.5.0.0 looked like they haven't fixed it in 2.5.0.1 either :-(
Could you raise a github issue for that please would help to know where any doc mistakes are
That's an issue with fabric, they removed all the `latest` tags. Check that you are using the latest version of fabric as that should be fixed or retag ccenv as latest in your local docker images
I used 4 servers and each server has 15~20 workers, send TPS is set to 2000. It seems not helped that increasing the number of workers. The CPU usage of each server is very high. If I use more server, the send TPS will increase.Can 0.4.x caliper do better?
would you please point me out to link that shows me how to do so. thanks for useful response.
we were forced into a fix for this in the integration tests: https://github.com/hyperledger/caliper/blob/master/packages/caliper-tests-integration/fabric_tests/run.sh
Has joined the channel.
Hello When I am trying hyperledger caliper for my thesis project.
When I am starting the caliper for fabric
1.4.1
I am getting this error
I am using docker-compose
```[NetworkConfig101.js]: NetworkConfig101 - problem reading the PEM file :: Error: EACCES: permission denied, open '/hyperledger/caliper/workspace/networks/fabric/config_solo/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/key.pem'```
Can anyone help please
@sroopsai The `permission denied` message indicates that the user running Caliper is not permitted to open that file. As I see from the path, you are using the docker image of Caliper, meaning you mount your local workspace directory into the Caliper container. The container uses the `node` user to run Caliper. Make sure you don't create the workspace files as root, so the container user can access them. To help you further with the problem, we'll need more details about the steps you performed.
`git clone https://github.com/hyperledger/caliper-benchmarks`
`cd caliper-benchmarks`
`git checkout v0.3.0`
`cd networks/fabric/config_solo`
`./generate.sh`
I created a `docker-compose` file and placed in the `caliper-benchmarks` directory.
`docker-compose` file contents are as follows
```version: '2'
services:
caliper:
container_name: caliper
image: hyperledger/caliper:0.3.0
command: launch master
environment:
- CALIPER_BIND_SUT=fabric:1.4.1
- CALIPER_BENCHCONFIG=benchmarks/scenario/simple/config.yaml
- CALIPER_NETWORKCONFIG=networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
volumes:
- ~/caliper-benchmarks:/hyperledger/caliper/workspace
```
Later I ran `docker-compose up`
@sroopsai Are you executing these commands as `root` user (sudo), or as a standard user? Can you verify the permissions on the problematic file after running `./generate.sh`?
as a standard user
I am not using sudo
And how are the file permissions set?
600 mode
That means only the owner (your user) can access the files. It's strange that the Fabric binaries would generate such files. As a workaround I suggest setting more permissive flags for the files in your workspace
Hi, I am trying to Setting up and Running a Performance Benchmark on an existing network. my fabric test-network is up and running (Version: 2.2.1), and my chaincode is installed and instanciated. I can sent transaction and query the ledger from my nodejs API. When I want to run a performance benechmark on my network, which is running on the same machine, I get the following error --> error: [Transaction]: Error: No valid responses from any peers. Errors:
2020.12.04-10:51:44.916 error [caliper] [connectors/v2/FabricGateway] Failed to perform submit transaction
`Unexpected error during benchmark execution: Error: Invalid "mychannel" channel configuration: child "contracts" fails because ["contracts" is required]. "chaincodes" is not allowed`
Now I am getting this error!
When directly running
Looks like the node-sdk thinks that you got some bad responses but then doesn't actually contain the errors in the message it thinks there are. Could you try binding to a 1.4 SDK and seeing if the problem occurs ? At the very least if it does you might actually get a cause of the problem
`Unexpected error during benchmark execution: Error: Module "fabric-network" could not be loaded: Error: Cannot find module 'fs-extra'`
New error when running using `docker-compose`
which SUT version are you binding to ?
which SUT version are you binding to, and which version of caliper are you using ?
caliper-cli v0.4.0
SUT fabric:1.4
Hi
````
Step 4/5 : RUN geth --nousb init /root/genesis.json && geth --nousb import /root/bc.dat && geth --nousb makedag 0 /root/.ethash && geth --nousb makedag 30000 /root/.ethash
---> Running in adbf65c197d4
INFO [12-05|12:16:16.637] Maximum peer count ETH=50 LES=0 total=50
INFO [12-05|12:16:16.637] Smartcard socket not found, disabling err="stat /run/pcscd/pcscd.comm: no such file or directory"
INFO [12-05|12:16:16.638] Set global gas cap cap=25000000
INFO [12-05|12:16:16.638] Allocated cache and file handles database=/root/.ethereum/geth/chaindata cache=16.00MiB handles=16
INFO [12-05|12:16:16.645] Writing custom genesis block
INFO [12-05|12:16:16.646] Persisted trie from memory database nodes=1 size=171.00B time="72.184µs" gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [12-05|12:16:16.646] Successfully wrote genesis state database=chaindata hash="cbc198…847427"
INFO [12-05|12:16:16.646] Allocated cache and file handles database=/root/.ethereum/geth/lightchaindata cache=16.00MiB handles=16
INFO [12-05|12:16:16.653] Writing custom genesis block
INFO [12-05|12:16:16.653] Persisted trie from memory database nodes=1 size=171.00B time="98.949µs" gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [12-05|12:16:16.654] Successfully wrote genesis state database=lightchaindata hash="cbc198…847427"
INFO [12-05|12:16:16.705] Maximum peer count ETH=50 LES=0 total=50
INFO [12-05|12:16:16.705] Smartcard socket not found, disabling err="stat /run/pcscd/pcscd.comm: no such file or directory"
INFO [12-05|12:16:16.706] Set global gas cap cap=25000000
INFO [12-05|12:16:16.706] Allocated cache and file handles database=/root/.ethereum/geth/chaindata cache=512.00MiB handles=524288
INFO [12-05|12:16:16.741] Opened ancient database database=/root/.ethereum/geth/chaindata/ancient
INFO [12-05|12:16:16.743] Disk storage enabled for ethash caches dir=/root/.ethereum/geth/ethash count=3
INFO [12-05|12:16:16.743] Disk storage enabled for ethash DAGs dir=/root/.ethash count=2
INFO [12-05|12:16:16.744] Loaded most recent local header number=0 hash="cbc198…847427" td=524288 age=1y7mo1w
INFO [12-05|12:16:16.744] Loaded most recent local full block number=0 hash="cbc198…847427" td=524288 age=1y7mo1w
INFO [12-05|12:16:16.744] Loaded most recent local fast block number=0 hash="cbc198…847427" td=524288 age=1y7mo1w
INFO [12-05|12:16:16.745] Importing blockchain file=/root/bc.dat
ERROR[12-05|12:16:16.746]
########## BAD BLOCK #########
Chain config: {ChainID: 21194 Homestead: 0 DAO:
I am trying to use caliper to benchmark ethereum blockchain
Initially I am create to the network
Caliper version 0.3.0
at location `caliper-benchmarks/networks/ethereum/1node-clique` -> Run `docker-compose up`
To produce this issue
The command '/bin/sh -c geth --nousb init /root/genesis.json && geth --nousb import /root/bc.dat && geth --nousb makedag 0 /root/.ethash && geth --nousb makedag 30000 /root/.ethash' returned a non-zero code: 1
The command `'/bin/sh -c geth --nousb init /root/genesis.json && geth --nousb import /root/bc.dat && geth --nousb makedag 0 /root/.ethash && geth --nousb makedag 30000 /root/.ethash' returned a non-zero code: 1
`
The command ```
'/bin/sh -c geth --nousb init /root/genesis.json && geth --nousb import /root/bc.dat && geth --nousb makedag 0 /root/.ethash && geth --nousb makedag 30000 /root/.ethash' returned a non-zero code: 1
```
Hi! the available caliper benchmarks with caliper don't have example with creating and querying private data collection. Any idea how can we do that in existing benchmarks i.e., Fabric?
Hi! the available caliper benchmarks with caliper don't have example with creating and querying private data collection. Any idea how can we do that using existing benchmarks i.e., Fabric?
that's a really odd problem, maybe there was a problem resolving npm packages. I've seen similar when the mtu values differ within a networked environment. The other thing might be to check you are using an lts version of node.js such as v10 or v12 for a 1.4 node-sdk version
https://github.com/hyperledger/caliper-benchmarks/blob/master/benchmarks/api/fabric/lib/create-private-asset.js
Has joined the channel.
Hello people. I am having trouble writing the workload module for a caliper benchmark, I have the network up and the chaincode installed. I have a function which needs to be called with two arguments only apart from the chaincode stub. Please help !
does this help? https://hyperledger.github.io/caliper/v0.4.2/fabric-tutorial/tutorials-fabric-existing/#create-a-template-workload-module
Hi!I want to install caliperv0.3.2 and my fabric version is 1.4.3.when i ran the command:npx caliper bind --caliper-bind-sut fabric:1.4.3,there was a error saying :Error: Failed to execute "npm" with return code 1.My nodejs version is 10.20.0 and npm version is 6.14.4 ,please help me !
are there any more error messages? that one seems to be an npm error and nothing to do with caliper itself?
No.Maybe my nodejs version is too new?
Hi team, My chaincode uses MSPID and CertID from the invoker client, please how can I do that with caliper ?
no, the recommended version of node for 0.3.2 is a minimum 10.22.0
can you run `npx caliper bind --help` ?
do you mean that you pass both of those items as arguments, or are they extracted from the transaction instance within the chaincode?
I pass the two items as arguments
it is possible to extract the cert and mspid from the calling within the transaction chaincode side, which is the most generic solution. If you cannot change that, then the alternative is to maintain a map of client -> mspid/cert and pull then relevant item within the callback
it is possible to extract the cert and mspid from the call within the transaction chaincode side, which is the most generic solution. If you cannot change that, then the alternative is to maintain a map of client -> mspid/cert and pull then relevant item within the callback
it is possible to extract the cert and mspid from the unique transaction chaincode side, which is the most generic solution. If you cannot change that, then the alternative is to maintain a map of client -> mspid/cert and pull then relevant item within the callback
it is possible to extract the cert and mspid from the unique transaction chaincode side, which is the most generic solution. If you cannot change that, then the alternative is to maintain a map of client -> mspid/cert and pull then relevant item within the callback you build for caliper
Thank you @nkl199, I have an other question please, if a trasaction fails with timeout, caliper resubmit the same transaction? because I have some timeout but I get 0 as failed transaction.
yes, i can ran that
And i
read the official document and i saw "Node.js v8.X LTS or v10.X LTS (for running Caliper)"
and i tried v0.4.2,the error was TypeError: Cannot read property 'stat' of undefined
at IdentityManager._extractPEMFromPath (/home/li/hyperledger/fabric/caliper-workspace/node_modules/@hyperledger/caliper-fabric/lib/identity-management/IdentityManager.js:321:22)
that looks like a possible configuration file error
at the moment caliper will not resubmit on any errors, they will show as failed transactions
at the moment caliper will not resubmit on any errors, they will show as failed transactions -and the timeout ones should also show ... if they are not then there might be an error somewhere
I have collected some data using caliper and fabric network. The result somehow does not make sense to me. I have three different transaction in my chaincode, for example, a, b, and c. a and b just query some data from the ledger and return the result. Their average latency based on different numbers of transactions is always around 0.02 or 0.01. The c transaction query data, get the length of an array from stored data and do some calculation. The average latency for transaction c is around 1.2. Now the problem is for transaction d. d calls all three transactions a,b, and c, do a simple calculation on these three values, store the data on the ledger, and it returns the result. The average latency for d is around 0.4, while I expect that its average latency at least be around 1.2 (which is average latency for transaction c). Any thoughts on how it could be possible?
I have collected some data using caliper and fabric network. The result somehow does not make sense to me. I have three different transaction in my chaincode, for example, a, b, and c. a and b just query some data from the ledger and return the result. Their average latency based on different numbers of transactions is always around 0.02 or 0.01. The c transaction queries data, gets the length of an array from stored data and does some calculation. The average latency for transaction c is around 1.2. Now the problem is for transaction d. d calls all three transactions a,b, and c, do a simple calculation on these three values, store the data on the ledger, and it returns the result. The average latency for d is around 0.4, while I expect that its average latency at least be around 1.2 (which is average latency for transaction c). Any thoughts on how it could be possible?
I have collected some data using caliper and fabric network. The result somehow does not make sense to me. I have three different transaction in my chaincode, for example, a, b, and c. a and b just query some data from the ledger and return the result. Their average latency based on different numbers of transactions is always around 0.02 or 0.01. The c transaction queries data, gets the length of an array from stored data and does some calculation. The average latency for transaction c is around 1.2. Now the problem is for transaction d. d calls all three transactions a,b, and c, does a simple calculation on these three values, stores the data on the ledger, and it returns the result. The average latency for d is around 0.4, while I expect that its average latency at least be around 1.2 (which is average latency for transaction c). Any thoughts on how it could be possible?
Has joined the channel.
excuse me...after i did sth,there was a error saying"error [caliper] [cli-launch-manager] Unexpected error during benchmark execution: ValidationError: child "clients" fails because ["clients" is required]. child "channels" fails because ["channels" must be an object]. child "organizations" fails because ["organizations" must be an object]. child "orderers" fails because ["orderers" is required]. child "peers" fails because ["peers" is required]
"
how can i deal with that,thank you!
ERROR-Screenshot.png
Hi! I am working on caliper with fabric. It worked properly for about two months but suddenly I got this error any help please?
Dear @klenik I want to have your valuable feedback on this please?
Has joined the channel.
i an new and i want help releated to caliper
anyone would like to tell me how to install caliper and configure it with fabric
emmmm,the issue above has been partly solved.I thought it was 0.4.2 but it was 0.3.2 ,so the networkConfig.yaml did not match the version.So i change the yaml doc but there was still a error saying:child "orderers" fails because ["orderers" is required]
.But as far as i am concerned,the offcial tutorials'networkConfig.yaml does not require anything about orderer
see https://hyperledger.github.io/caliper/v0.4.2/fabric-config/new/
Hi there, I want to know how to monitor remote fabric docker with caliper?
http://121.37.172.198:7051/peer0.org1.example.com not helped
What is the theoretical maximum sending rate that ONE worker process can achieve?
Has joined the channel.
http://[remote_ip]:7051/peer0.org1.example.com
http://[remote_ip]:7051/peer0.org1.example.com is not helped
Screenshot from 2020-12-22 15-29-12.png
Anyone can help me ?
`Z$D`CS_XR@]]]9PE%Q1IX7.png
depends on the platform you are running on (CPU speed) but expect the capability of circa 75TPS from a single client
seems to be an npm failure pulling packages
recommend looking into peer logs
there is my peer'log:TLS handshake failed with error EOF server=PeerServer remoteaddress=172.22.0.1:58714
How can i deal with that?Thank you
looks like it could be a certificates issue, so if that aspect is relating to the client connection aspect then either the wrong certificate is being specified in the configuration file, or the specified path for the file does not exist
correct, the tutorial assumes that discovery is being used and therefore the orderer specification is not required
but i can deploy the network which includes 5 orderers and 4 peers and i installed and instantiated the chaincode,if it was a certificates issue,the steps above would have some errors,right?
did caliper configure the network? It might be easier to diagnose by using the explicit caliper phases (https://hyperledger.github.io/caliper/v0.4.2/installing-caliper/#caliper-test-phase-control) as you will be able to inspect for any errors within those phases instead of having to look at a sizable log
how can I solve this
Has joined the channel.
Hi, I'm trying to install caliper. My underlying network is fabric 2.2.0. Does all the caliper version supports fabric 2.2.0? In the caliper bind command I have passed fabric sdk version as 2.2.0 (--caliper-bind-sut fabric:2.2.0) , it throws the following error
error [caliper] [bind] Unknown "fabric" SDK version "2.2.0"
Can anyone tell how to pass fabric 2.2.0 in bind command?
Hi, I am trying to launch caliper v0.3.2 in my fabric network 2.2.0 using fabric 2.1.0 sdk. I am facing the following issue
Caliper currently only supports gateway based operation using the 2.1.0 Fabric-SDK. Please retry with the gateway flag
Can anyone suggest how to pass launch command?
I used the following command
npx caliper bind \
--caliper-bind-sut fabric:2.1.0
npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/k8_benchconfigAllCC.yaml --caliper-networkconfig networks/k8_fabric-goAllCC.yaml --caliper-flow-only-test
https://hyperledger.github.io/caliper/v0.3.2/fabric-tutorial/tutorials-fabric-existing/
missing `caliper-fabric-gateway-usegateway`
if you are using discovery, you will also need `caliper-fabric-gateway-discovery`
if you are in k8s then you will also need a localhost false flag `caliper-fabric-gateway-gatewaylocalhost=false`
Has joined the channel.
Hello !!
Is it possible to install Hyperledger caliper along with Iroha on Raspberry pi 4?
I already have Iroha running on Rasp4. Now I need to install Caliper to measure the Iroha implementation performance (benchmark tool).
Thanks. Now I am facing the following error
error: [EventService]: send[peer0.xyz-net] - #1 - Starting stream to peer0.xyz-net failed
2021-01-04T14:58:14.527Z - error: [EventService]: EventService[peer0.xyz-net] timed out after:3000
I tried to add connection timeout ( connection:
timeout:
peer:
endorser: 6000
eventHub: 6000
eventReg: 6000 ) in channels but channel config doesn't support connection. How to extend connection timeout?
that's deep down in the fabric sdk, i'm surprised that the 3s timeout is being hit though
connection timeout appears to be locked in the fabric-sdk (for the version that you are using)
is the connection being made?
Yeah connection is there.
The following is the sample benchconfig
- label: BankDetailsCC -- SaveBank
description: Test description to store bank details through the deployed chaincode
txNumber: 100
rateControl:
type: fixed-rate
opts:
tps: 20
arguments:
callback: src/fabric/scenario/bankema/BankDetailsCC/SaveBank.js
- label: BankDetailsCC -- GetAllBank
description: Test description for listing the bank details through the deployed chaincode
txNumber: 100
rateControl:
type: fixed-rate
opts:
tps: 50
arguments:
callback: src/fabric/scenario/bankema/BankDetailsCC/GetAllBank.js
For invoke,
out of 100, 60,70 upto 90 got success. max latency around 4 - 6 s
For query,
out of 100, 100 got success. max latency 0.01s
For invoke I want all the transactions should be success but in the middle i got connection timeout
ah, so the transaction itself times out?
that is a Fabric peer level setting
depending on the peer veersion, it may be dynamically configurable
that's ... never been done before! (to my knowledge)
yeah during transaction got timeout. my peer version 2.2.0
ok, so you can either rebuild the network, and ensure that the `CORE_CHAINCODE_EXECUTETIMEOUT` setting is "high" (https://github.com/hyperledger/caliper-benchmarks/blob/master/networks/fabric/docker-compose/2org1peercouchdb/docker-compose.yaml) or check the fabric docs for dynamically setting it if you want to keep the current network in place
ok thanks:slight_smile:
so is there any other benchmark tool for Iroha compatible with Rasp4?
unknown - is there a reason that you need to install caliper on a Rasp4? All you need is network connection to the Iroha SUT? Just because it hasn't been done, doesn't mean it isn't possible .. we run caliper on ubuntu quite happily, by which i mean that if you can get nodeJS based projects working on a Pi, then you can get Caliper running on a Pi
Since I have installed Iroha on Rasp4, and now I need a benchmarking tool to analyse Iroha performance on Rasp4.
I would recommend *not* running the benchmark tool on the same device that Iroha is on
Sorry I am totally new to Iroha and Caliper. Would you kindly guide me or direct me some links?
What would you recommend?
since you are looking at testing iroha, you are restricted to the 0.3.2 version of caliper. (https://hyperledger.github.io/caliper/v0.3.2/getting-started/) due to the absence of anyone willing to maintain the iroha aspect, it was removed from the caliper code base in the 0.4 release. I would recommend getting the iroha network set up on the target platform (in your case a Pi) and then using a different system to test the performance, in theory you only need to be on the same network to connect and interact. Caliper running on the same system will steal resources and therefore skew your results
@nkl199 Appreciate your feedback. Would you kindly direct me to some links/instructions regarding connecting my Rasp4 (iroha network) with caliper (different system).
I would start with a basic connection to the iroha network on your Pi - and for that would direct you to the iroha docs/RC channel. Once you have confirmed the ability to transact from a different system, you will be able to use Caliper as a client without having to debug everything at once
E5ZSW@P[GM`}8FQ{{OBPZDQ.png
LCNI$[D)27[[G3A_FVT2`QD.png
i indeed put six arguments in the callback file:chaincodeArguments: [assetID,'3','2020','rsu1','pub1','0.5','detail']
i count 7?
i count 7? (not zero based indexing here)
1:3 2:2020 3:rsu1 4:pub1 5:0.5 6:detail
@nkl199 Thanks a lot. I will try as you said. But I would really appreciate if you could share some related links which might help me.
i think there are 6 arugments..
so you don't include `assetID` in the arguments as well?
my bad ,i will keep testing
thank you
iroha: https://github.com/hyperledger/iroha
caliper/irhoa is probably best checked by the integratino tests: https://github.com/hyperledger/caliper/tree/v0.3.2/packages/caliper-tests-integration/iroha_tests
@nkl199 million thanks
but when i turned the assetID to a specific argument like "10",the error comes out:2021-01-06T12:40:21.544Z - warn: [TransactionEventHandler]: _strategyFail: strategy fail for transaction "216b5222128fd064e5daa9dbefd7a713f31748e141d8880ce5e85b7531ddcad7": Error: Peer localhost:8051 has rejected transaction "216b5222128fd064e5daa9dbefd7a713f31748e141d8880ce5e85b7531ddcad7" with code "MVCC_READ_CONFLICT"
2021.01.06-20:40:21.545 error [caliper] [adapters/fabric] Failed to perform submit transaction [addVehicle] using arguments [10,2020,rsu1,pub1,0.8,detail], with error: Error: Peer localhost:8051 has rejected transaction "216b5222128fd064e5daa9dbefd7a713f31748e141d8880ce5e85b7531ddcad7" with code "MVCC_READ_CONFLICT"
2021-01-06T12:40:21.620Z - warn: [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G0:0 - endorsement failed - Error: This vehicle already exists: 10
2021-01-06T12:40:21.620Z - error: [DiscoveryEndorsementHandler]: _endorse - endorsement failed::Error: Endorsement has failed
MVCCREAD_CONFLICT is what happens when the same item is being updated at the same time
that assetId passed needs to be unique for each invokation
yes,so in fact when i type "10"
the vehicleid "10" has already existed
if, in the same ordering batch of transactions that "10" is interacted with more than once, it means the read/write set can differe .. and it will be rejeected
so init can not prepare any items any more
so how can i do
you can prepare unique items in the init stage, but they need to be unique for the clients too. For instance, if you just use 0->n each client will create the same thing ... you need to augment with the clientId that is passed in. Check out the sample-benchmarks for that being done
if i do not use "10",the error will be:incorrect num ,else if the error wiil be this
but that's a heavy workload,i want to init addvehicle function(put state api),and test the performance of querying info.But if i want to test with 1000 or more txs,i can not prepare so many unique items...
this might help: https://github.com/hyperledger/caliper-benchmarks/blob/master/benchmarks/api/fabric/lib/batch-get-asset.js
by the way,if i want to test the performance of adding sth,what should i put towards "init"
init can be empty, so just have the "adding" in the main run section
ok,i will do some work and try to do the test as you said.Thanks a lot!
excuse me...i can not understand what does "init can be empty" mean.If i delete this module,there will be a error saying"TypeError: cb.init is not a function"
the function body can simply return without actually doing anything
yes,that's right.And another question...Does“unfinished_per_client” means the total number of clients send request to the network?
no,i think what i mean should be clients or workers..
depends on the caliper version used, but that is a rate control parameter to indicate a backlog of pending transactions https://hyperledger.github.io/caliper/v0.4.2/rate-controllers/
yeah,i am testing my network according to this
Hi there, I have a question with caculating TPS, I read the source code of caliper, `tps=(successTx + failedTx)/spentTime`. Some failed transactions are time out, it means peers didn't handle this transaction, why still participate in the tps calculation?
As well as timeouts, transactions can fail due to other reasons. The decision was made to include them here because even failing transactions incur a cost in the underlying system, and we have followed the PSWG definitions such that all transactions are considered when making summary information.
There's definitely an argument that perhaps more detailed information should be rendered like "passing txn tps" alongside "all txn tps", and it would be easy enough to be added if there is support for it
Clipboard - January 11, 2021 10:38 AM
the literal answer is "the get method is being applied to an undefined object". This could be for many reasons, from either a badly formatted prometheus monitor, or the round not being run long enough to get results into the prometheus store. Which caliper veersion are you using?
Has joined the channel.
@nkl199 v0.3.2
@awsl999 0.4.2 is more stable with regards to the use of prometheus, and far more stable with regards to collecting aggregate statistics from multiple distributed workers, since the metrics are now collected direct from the workers via mqtt and aggregated by the manager. I would highly recommend moving to the 0.4.2 version
ok. thank u
Which version of nodejs should I use when I use v0.4.2
the latest v10 release, we are looking at moving up to v12+ but that will require dropping certain bindings due to compatibility issues
(need to be 10.22 and above due to a nodeJS bug)
Has joined the channel.
Hello!Is there a limit to the maximum size of a block? And what does “The block is hardcoded at 64MB” this means?
can you provide a bit more context, not sure you are asking on the right channel
Has joined the channel.
Hi everyone, I'm working on a project that focuses on blockchain and IoT integration using Hyperledger Aries and BeagleBone Black. I got everything working and my aries cloud agent deployed on my beaglebone and communicating with the host machine cloud agent and sending it sensor values. Now, I want to test the performance metrics of Aries Communication Protocol and Hyperledger Aries vs current communication protocols(MQTT, CoAP, XMPP, Matrix etc.) and blockchains (Public & Private). Can anybody help me with existing research in benchmarking Aries using Caliper or provide links that may help me. Any existing connector to Caliper?
Hi everyone, I'm working on a research project that focuses on blockchain and IoT integration using Hyperledger Aries and BeagleBone Black. I got everything working and my aries cloud agent deployed on my beaglebone and communicating with the host machine cloud agent and sending it sensor values. Now, I want to test the performance metrics of Aries Communication Protocol and Hyperledger Aries vs current communication protocols(MQTT, CoAP, XMPP, Matrix etc.) and blockchains (Public & Private). Can anybody help me with existing research in benchmarking Aries using Caliper or provide links that may help me. Any existing connector to Caliper?
Hi @prakharsr , thanks for reaching out and it's nice to hear that Beagleboards are still being used :D At the moment there is not an Aries connector, though it appears that there is an aries javascript sdk, so it is possible to add one. We would absolutely welcome the contribution, and would offer guidance in the integration with Caliper. At current no maintainers here have any direct experience with Aries (or at least to my knowledge they do not), so we would not necessarily be able to help with the underlying implementation details (aries-sdk) but would be able to help in all other aspects. If this is of interest, there is a fortnightly call you could join, or simply reach out on the caliper-contributors channel :thumbsup:
Has joined the channel.
Has joined the channel.
Hi all, I would like to use caliper to test my chaincode and I need help to set the yaml file related to the network. In the tutorial, under the "channels" section you refer to the "id" parameter which is set to "basic". In my case, I started the test network and then instantiated my chaincode via package generated with vscode extension. I can't figure out which "id" parameter to set to make the tests go successful. Thanks
would recommend looking at https://developer.ibm.com/technologies/blockchain/tutorials/blockchain-performance-testing-smart-contracts-vscode-caliper if you started with VSCode
Ok, thankyou
Ok, thank you
Has joined the channel.
Hi all, I have a private network made by go-ethereum, and I wanna apply to large scale application, so the first, i have to benchmark my network (transactions per second, number of forks,...)
And luckly, I found caliper, but for sure, I don't know how to apply this tool in my network.
Can anyone help me or give me a tutorial?
Thx so much for reading!!
At the moment there are no explicit tutorials, just the configuration docs https://hyperledger.github.io/caliper/v0.4.2/ethereum-config/ and the integration test samples https://github.com/hyperledger/caliper/tree/master/packages/caliper-tests-integration/ethereum_tests
If the above are not quite enough, it might be worth reaching out on the Besu channel
Has joined the channel.
Hello, we modified Hyperledger Fabric 1.4.8 for a student project and are currently running some performance tests using Caliper on a Docker Swarm network. Since we're experiencing lower tps than expected, I wanted to ask what we could improve in the following setup:```
- Total 17 VM's with 16 vCPU's, 32GB RAM, 60 GB HDD, 1 Gbps network speed
```
Hello, we modified Hyperledger Fabric 1.4.8 for a student project and are currently running some performance tests using Caliper on a Docker Swarm network. Since we're experiencing lower tps than expected, I wanted to ask what we could improve in the following setup:```
- Total 17 VM's with 16 vCPU's, 32GB RAM, 60 GB HDD, 1 Gbps network speed
- 3x Zookeeper, 4x Kafka on 4 different VM's
- 1x Orderer and 1x Peer on 2 different VM's
- CaliperManager and CaliperWorkers distributed on the remaining ones (we tested with up to 40 Workers)
- MaxMessageCount on Blocks between 200-500, BatchTimeout at 500 ms
- Chaincode: Fixed-Assets
With 20 different Caliper Workers we get about 400 tps in the testrun "create-assets-100", while "empty-contract-evaluate" is at about 1k and "empty-contract-submit" at 500.
I was hoping for some experiences/hints about where potential bottlenecks could hide in a setup like the above :)
```
Hello, we modified Hyperledger Fabric 1.4.8 for a student project and are currently running some performance tests using Caliper on a Docker Swarm network. Since we're experiencing lower tps than expected, I wanted to ask what we could improve in the following setup:```
- Total 17 VM's with 16 vCPU's, 32GB RAM, 60 GB HDD, 1 Gbps network speed
- 3x Zookeeper, 4x Kafka on 4 different VM's
- 1x Orderer and 1x Peer on 2 different VM's
- CaliperManager and CaliperWorkers distributed on the remaining ones (we tested with up to 40 Workers)
- MaxMessageCount on Blocks between 200-500, BatchTimeout at 500 ms
- Chaincode: Fixed-Assets
```
With 20 different Caliper Workers we get about 400 tps in the testrun "create-assets-100", while "empty-contract-evaluate" is at about 1k and "empty-contract-submit" at 500.
I was hoping for some experiences/hints about where potential bottlenecks could hide in a setup like the above :)
Hello, we modified Hyperledger Fabric 1.4.8 for a student project and are currently running some performance tests using Caliper on a Docker Swarm network. Since we're experiencing lower tps than expected, I wanted to ask what we could improve in the following setup:```
- Total 17 VM's with 16 vCPU's, 32GB RAM, 60 GB HDD, 1 Gbps network speed
- 3x Zookeeper, 4x Kafka on 4 different VM's
- 1x Orderer and 1x Peer on 2 different VM's
- CaliperManager and CaliperWorkers distributed on the remaining ones (we tested with up to 40 Workers)
- MaxMessageCount on Blocks between 200-500, BatchTimeout at 500 ms
- Chaincode: Fixed-Assets
```
With 20 different Caliper Workers we get about 400 tps in the testrun "create-assets-100", while "empty-contract-evaluate" is at about 1k and "empty-contract-submit" at 500.
Thinking of an obvious answer to the bottleneck I added a second peer, but then my tps drop to around 300.
I was hoping for some experiences/hints about where potential bottlenecks could hide in a setup like the above :)
Hi,
I randomly get an error like this when running the Caliper benchmark:
```...
2021.01.27-20:25:20.241debug [caliper] [default-observer] [Trace creation 3 Round 3 Transaction Info] - Submitted: 376 Succ: 375 Fail:0 Unfinished:1
2021.01.27-20:25:25.242debug [caliper] [default-observer] [Trace creation 3 Round 3 Transaction Info] - Submitted: 376 Succ: 375 Fail:0 Unfinished:1
2021.01.27-20:25:30.243debug [caliper] [default-observer] [Trace creation 3 Round 3 Transaction Info] - Submitted: 376 Succ: 375 Fail:0 Unfinished:1
2021.01.27-20:25:35.244debug [caliper] [default-observer] [Trace creation 3 Round 3 Transaction Info] - Submitted: 376 Succ: 375 Fail:0 Unfinished:1
2021.01.27-20:25:40.245debug [caliper] [default-observer] [Trace creation 3 Round 3 Transaction Info] - Submitted: 376 Succ: 375 Fail:0 Unfinished:1
...
```
The worker remains blocked indefinitely waiting for the "unfinished" transaction.
My benchmark uses the Docker images with the distributed configuration with the *MQTT broker*.
*Caliper Version: 0.4.2*
*SUT Version: Fabric 1.4.9*
I assume this is a known error. Do you have any explanation?
Thank you for your help.
hmmm, i've never hit this error before - what nodeJS version are you using?
that's quite a serious setup! Are you using solid state drives? Depending on the way you have configured Caliper to drive the transactions, the endorsement policy could impact due to the overhead in network/compute. Certainly worth making sure that any logging in the peer/chaincode is turned off as well.
Are you able to hook up any monitoring to see if compute/network limits are being hit?
I use Caliper Docker image, so the NodeJS of this image, that seems to be *node:10.22-alpine*.
when that error appears, are you able to get any useful logging information from the worker container?
No unfortunately, the worker will continue to display these logs for minutes, I have to interrupt the test manually.
are you using a manager container too?
yes, all the components are running in Docker (manager, workers, broker, Fabric network)
any chaincode/peer logs that are helpful? and might point to a poorly handled error in caliper?
No, I don't have the execution logs anymore. The next time the error occurs I will try to capture logs.
Hey everyone.
I'm following this Caliper-Fabric tutorial: https://hyperledger.github.io/caliper/v0.4.2/fabric-tutorial/tutorials-fabric-existing/
On the last step when running the `npx caliper launch manager --caliper-workspace ./ --caliper-networkconfig networks/networkConfig.yaml --caliper-benchconfig benchmarks/myAssetBenchmark.yaml --caliper-flow-only-test --caliper-fabric-gateway-enabled` command, I got a `TypeError: Cannot read property 'stat' of undefined` but fixed it when I used node v10.23.2. Thought it would be worth mentioning.
which version of node were you using before?
v8.17.0
hmmm, yeah - we should make the Node version requirements more clearly available on the documentation pages ... but in our defence ... v8 has been unsupported for some time? In reality, there is not much life left in v10 either :worried:
When I use caliper for generating workloads, almost 90% of transactions are successful and the rest are failing due to "failed to perform submit trasnaction, no valid responses from any peer." Any idea how to fix that?
Has joined the channel.
hi , how to i modify caliper to measure the TPS on individual peer level ?
Hi, thanks for the reply.
1. Afaik the VM's do not use SSD's.
2. In Caliper 0.4.0 I'm using the fabric-api-node.yaml as my caliper config file, which does not explicitly state anything for contracts/endorsement-policy. In configtx.yaml isn't set anything either, which is why I assumed that by default it would use the 1-of policy (I hope that this assumption is correct).
3. Logging is disabled via
- FABRIC_LOGGING_SPEC=grpc=fatal:fatal
Hi, thanks for the reply.
1. Afaik the VM's do not use SSD's.
2. In Caliper 0.4.0 I'm using the fabric-api-node.yaml as my caliper config file, which does not explicitly state anything for contracts/endorsement-policy. In configtx.yaml isn't set anything either, which is why I assumed that by default it would use the 1-of policy (I hope that this assumption is correct).
3. Logging is disabled via
```
FABRIC_LOGGING_SPEC=grpc=fatal:fatal
```
for orderers and peers and for Kafka via
```
logging:
driver: none
```
4. The CPU usage seems to be relatively high for all peers and caliper workers
Hi, thanks for the reply.
1. Afaik the VM's do not use SSD's.
2. In Caliper 0.4.0 I'm using the fabric-api-node.yaml as my caliper config file, which does not explicitly state anything for contracts/endorsement-policy. In configtx.yaml isn't set anything either, which is why I assumed that by default it would use the 1-of policy (I hope that this assumption is correct).
3. Logging is disabled via
```
FABRIC_LOGGING_SPEC=grpc=fatal:fatal
```
for orderers and peers and for Kafka via
```
logging:
driver: none
```
4. The CPU usage seems to be relatively high for all peers and caliper workers, but since Fabric uses all cores to validate the transactions I'm not sure how meaningful this information is :sweat_smile:
Hi, thanks for the reply.
1. Afaik the VM's do not use SSD's.
2. In Caliper 0.4.0 I'm using the fabric-api-node.yaml as my caliper config file, which does not explicitly state anything for contracts/endorsement-policy. In configtx.yaml isn't set anything either, which is why I assumed that by default it would use the 1-of policy (I hope that this assumption is correct).
3. Logging is disabled via
```
FABRIC_LOGGING_SPEC=grpc=fatal:fatal
```
for orderers and peers and for Kafka via
```
logging:
driver: none
```
4. The CPU usage seems to be relatively high for all peers and caliper workers, but since Fabric uses all cores to validate the transactions I'm not sure how meaningful this information is :sweat_smile:
I've set up prometheus on the network, but I can only get the cpu usage of the local containers (running on the same vm as prometheus/cadvisor etc)
Currently I run the network with 5 orgs (1 peer each), 3 orderers, 4 kafka, 3 zookeeper and 32 caliper workers (on 4 different VM's with each 8 vCPU's)
It is probably worth mentioning that the VM's are not located in the same data center, but split into 3 different ones.
Currently I run the network with 5 orgs (1 peer each), 3 orderers, 4 kafka, 3 zookeeper and 32 caliper workers (on 4 different VM's with each 8 vCPU's)
It is probably worth mentioning that the VM's are not located in the same data center, but split into 3 different ones (which is possibly a bigger bottleneck)
With this setup I tried to follow the setup from:
https://dl.acm.org/doi/abs/10.1145/3190508.3190538?casa_token=8gg6EtALapAAAAAA%3ABx6jPyc8-EVESveA_SxVAQJfM2EV7nBx3UF8_Pk7i9DjWmim0ZOyP0utoUcv9uDyhEL0ulnm8fM
For reference, I'm using the following repo (mostly some minor chances from the caliper-benchmarks repo which allows me to deploy efficiently to the VM's):
https://github.com/eggersn/fabricstar-benchmarks
Benchmark file:
https://github.com/eggersn/fabricstar-benchmarks/blob/master/benchmarks/default/base.yaml
Config file:
https://github.com/eggersn/fabricstar-benchmarks/blob/master/network/config/fabric-api-node.yaml
Docker files:
https://github.com/eggersn/fabricstar-benchmarks/tree/master/network/docker
Has joined the channel.
You would need to look into the peer/chaincode logs
Use prometheus and hook into the peer metric? have a network with only one peer? use peer targeting with your transactions so that only one peer is used?
peer_cpu_usage.png
orderer_cpu_usage.png
kafka_cpu_usage.png
caliperworker_cpu_usage.png
I was able to setup Prometheus on my docker swarm network. The testruns are "empty-contract-evaluate", "empty-contract-submit", "create-assets-100", "get-asset-evaluate-100", "get-asset-submit-100".
The blue and orange line in the "peer_cpu_usage" image are noticeably higher, since they are only using 8 vCPUs, while the others can utilize 16 vCPUs.
Is there something obvious I'm missing out on the kafka side? :sweat_smile:
I was able to setup Prometheus on my docker swarm network. The testruns are "empty-contract-evaluate", "empty-contract-submit", "create-assets-100", "get-asset-evaluate-100", "get-asset-submit-100".
The blue and orange line in the "peer_cpu_usage" image are noticeably higher, since they are only using 8 vCPUs, while the others can utilize 16 vCPUs.
Is there something obvious I'm missing out on the kafka side? :sweat_smile:
Edit: It seems like kafka starts out with a high CPU usage, but flattens out over time (to about 40%)
I was able to setup Prometheus on my docker swarm network. The testruns are "empty-contract-evaluate", "empty-contract-submit", "create-assets-100", "get-asset-evaluate-100", "get-asset-submit-100".
The blue and orange line in the "peer_cpu_usage" image are noticeably higher, since they are only using 8 vCPUs, while the others can utilize 16 vCPUs.
Is there something obvious I'm missing out on the kafka side? 😅
Edit: It seems like kafka starts out with a high CPU usage, but flattens out over time (to about 40%)
Any reason that you are using kafka over raft?
Yes, unfortunately our project is based on a modification on kafka from a previous project.
Thus we need to compare the performance of the modified and unmodified network using kafka :sweat_smile:
Has joined the channel.
Hello everyone. I have a problem with caliper when trying to connect to the IBM Blockchain Platform. My intention is to check performance of certain smart contract installed on IBM BP. The basic network on IBM BP and caliper project on local PC using ubuntu is set up according to provided tutorials. I have run a test with caliper on the local fabric network using Visual Studio Code IBM Blockchain Platform extension. But when I try to run the same test with IBM Blockchain Platform on the cloud, I get error from caliper: [ServiceEndpoint]: Error: Failed to connect before the deadline on Committer. Could anyone help me?
By the way, caliper shows a warning: [DEP0123] DeprecationWarning: Setting the TLS ServerName to an IP address is not permitted by RFC 6066. This will be ignored in a future version.
But it shows, that conection was successful: [caliper] [connectors/v2/FabricGateway] Successfully connected user with identity adm to a Network Gateway
Could you post the actual entries from the log just to see the context ?
at a guess could be a localhost flag set to false being required?
Thank you for replay. Davidkel, are you asking for terminal log or the log caliper writes to workspace folder? There are many lines - should I just put them all in the chat?
nkl199, how could I change that flag to try another option? Should it be in some configuration file or as an option to cli command?
I see I can add as file so there they are - copied terminal log and log from caliper workspace.
I see I can add as file so there they are - copied terminal log and log from caliper workspace (renamed to txt).
terminal.txt
caliper.txt
shall I add caliper network and benchmark configuration files as well?
@nkl199 is correct here, if you look at this output
```
021-02-03T17:10:41.783Z - error: [ServiceEndpoint]: Error: Failed to connect before the deadline on Committer- name: 169.57.50.19:32396, url:grpcs://localhost:32396, connected:false, connectAttempted:true
```
you will see that the url it's trying to connect to says localhost. This is because by default the 2.2 node sdk forces all urls to be changed to `localhost`. You need to add another flag to your invocation
```
--caliper-fabric-gateway-localhost=false
```
to stop this automatic conversion
as @nkl199 has correctly stated, if you look at this output
```
021-02-03T17:10:41.783Z - error: [ServiceEndpoint]: Error: Failed to connect before the deadline on Committer- name: 169.57.50.19:32396, url:grpcs://localhost:32396, connected:false, connectAttempted:true
```
you will see that the url it's trying to connect to says localhost. This is because by default the 2.2 node sdk forces all urls to be changed to `localhost`. You need to add another flag to your invocation
```
--caliper-fabric-gateway-localhost=false
```
to stop this automatic conversion
as @nkl199 has correctly stated, if you look at this output
```
021-02-03T17:10:41.783Z - error: [ServiceEndpoint]: Error: Failed to connect before the deadline on Committer- name: 169.57.50.19:32396, url:grpcs://localhost:32396, connected:false, connectAttempted:true
```
you will see that the url it's trying to connect to says localhost. This is because by default the 2.2 fabric node sdk forces all urls to be changed to `localhost`. You need to add another flag to your invocation
```
--caliper-fabric-gateway-localhost=false
```
to stop this automatic conversion
Thank you very much! At last it worked. I wondered about that "localhost" in url:grpcs://localhost:32396. Strange, this option to stop conversion wasn't mentioned neither in tutorials nor caliper documentation!
It's not mentioned in the tutorial because the tutorial relies on it to work with test network. It's briefly mentioned in the reference documentation for fabric however but not a great deal.
It's not mentioned in the tutorial because the tutorial relies on it to work with test network. It's briefly mentioned in the reference documentation for fabric however but not a great deal. Might be worth raising a github issue
Has joined the channel.
hello, i am beginner in hyperledger fabric and currently working in 2.3 version. i deployed the chaincode and my database is couchdb. i have created identities for wallet but i am confused how should peer of org 2 can interact with it. because only admin is able access not others identites. how they will interact with each other? can anyone please help me with it?
After some further tests, I was able to get up to ~650tps for create-assets-100, when deploying 1 orderer, 1 kafka and 4 peers (2 orgs) in one data center.
But after adding a third organization with 2 peers to the second data center (around ~150 km distance) it dropped to 570tps.
Hi, I am using fabric 2.2 setup using BAF in kubernetes cluster with 5 org (A,B,C,D,E) each with one peer and 1 orderer. I installed caliper version 0.3.2 and fabric sdk version 2.1.0. I tried to run caliper in my existing setup without service discovery. In the network config file, I have mentioned the client for org A. When I run caliper, I checked the peer logs of all the 5 peer orgs. I created client only for orgA. But in the peer logs I can able to see all the chaincode transactions. How is this possible? As per logic, the transaction should take place only in the org A peer. The chaincode is committed in the channel, it contains endorsement policy how come when the caliper tries to invoke it is not showing endorsement policy failure error?
I have written a bench config,
name: Bank
description: This is an Test senario for the module Bank
workers:
type: local
number: 1
rounds:
- label: BankDetailsCC -- SaveBank
description: Test description to store bank details through the deployed chaincode
txNumber: 100
rateControl:
type: fixed-rate
opts:
tps: 20
arguments:
callback: src/fabric/scenario/BankDetailsCC/SaveBank.js
- label: BankDetailsCC -- GetAllBank
description: Test description for listing the bank details through the deployed chaincode
txNumber: 100
rateControl:
type: fixed-rate
opts:
tps: 50
arguments:
callback: src/fabric/scenario/BankDetailsCC/GetAllBank.js
In this, I allocate one worker and 100 transactions. I got output report sheet.
The report shows, 100 successful transactions for invoke function with max latency 7.02s, send rate: 107.9tps, min latency:3.78s, avg:5.00s, throughtput:14.1tps.
I have a doubt in this. I mentioned above in the network config file I set client as org A but I can able to see all the transaction details in all the peers. Are these 100 transactions executed in org A peer ?
Can you please clarify how caliper does this?
Caliper relies on the fabric node sdk to perform transaction submission. It looks like the fabric node sdk decides that since you haven't used discovery, targeted any peers or organisations that it will send the transaction proposal to all peers in the channel
which means transaction was happened only in one peer but all the transaction details were gossip across the peers right?
Has joined the channel.
Hello,
When I am running caliper inside a docker container how can I user o monitor for remote docker containers?
When I am running caliper inside a docker container how can I user a monitor for remote docker containers?
No, the fabric node sdk will send a proposal request to each peer and each peer will simulate that proposal and provide a response
ok each peer will execute 100 transactions tps or it will split 100 transactions and executes?
ok each peer will execute 100 transactions tps or it will split 100 transactions and executes? Because the final report i got 100 success
In this case, caliper won't see endorsement policy right?
Each transaction is executed by all peers on the channel. Caliper itself doesn't do anything with endorsement policies, you either have to manage that yourself using peer/org targeting or turn on discovery and let fabric and the fabric node sdk manage it
Each transaction is executed by all peers on the channel. Caliper itself doesn't do anything with endorsement policies, you either have to manage that yourself using peer/org targeting or turn on discovery and let fabric and the fabric node sdk manage it (and caliper utilises the fabric node sdk)
that 100 successful transaction is executed in single peer or all the peers
you can use prometheus, or specify absolute urls to the remote container
all peers execute same transaction, SDK merges results and submits to orderer. Caliper considers all of this to be a single transaction, and it is "just one" but is confirmed across all peers before being ordered and considered complete
To be honest, I did not understand when should I go for docker containers or for prometheus
What benefict one has over the other?
prometheus can collect more statistics, and target more sources, can show live views and integrate with grafana, plus it has persistence ... but it is more involved to configure
Thank you ;)
One more thing, I am defining some monitors but the report does not present any info about the resource consumption
Any idea?
could be a badly formatted yaml file, i constantly find myself defining them in json and converting to yaml.
I was missing the quotes when adding the containers
That is solved by now
:thumbsup:
However, I cannot get the charts being displayed on the report
Do I have to install prometheus for that?
no, you should not need prometheus if using the docker monitor
But the charts are simply not being displayed
:frowning2:
do you get tabulated values?
yes
i've had issues with that before, and it was because of indenting errors in the charting section
`monitors:
resource:
- module: docker
options:
interval: 5
containers: ['http://172.17.0.1:2375/peer1-org1', 'http://172.17.0.1:2375/peer2-org1', 'http://172.17.0.1:2375/peer1-org2', 'http://172.17.0.1:2375/peer2-org2', 'http://172.17.0.1:2375/orderer1-org0']
charting:
bar:
metrics: [Memore(avg), CPU%(avg)]
polar:
metrics: ['all']`
I do not think so
I tried several combinations fetched from official documentation and did not succed
try the config from here: https://github.com/hyperledger/caliper-benchmarks/blob/master/benchmarks/samples/fabric/marbles/config-prometheus.yaml
if the docker section doesn't work for you, recommend raising an issue
if the docker charting section doesn't work for you, recommend raising an issue
Did not work
Anyway, ty for your help
ok - can you please raise an issue, as there might be an underlying code problem
I will open an issue ;)
thanks
Why the number of TPS do not increase even if I increase the number of workers?
what is the benchmark config driving at?
what is the benchmark config driving at? (the rate mechanism)
I am using a fixed rate with 10000 tps
I am using a fixed rate with 10000 tps
But no matter how many workers I add I always have the same number of TPS for a given stretch of time
`fixed rate` is for the complete system, not per worker
the total number is distributed across available workers
Right
(10k TPS seems awfully ambitios)
(10k TPS seems awfully ambitious)
But if I a set a rate at 1000 I would expect that no mattter how many workers that rate would be always met
Otherwise I would see some of them failing
-the workers attempt to reach that, depending on how long you run the benchmark for, you might see timeouts
Well, I set txNumber to 1000000 and set a fixed rate of 100000
I see the number of submitted transactions increasing but always at a constant rate
i seriously doubt the ability of fabric to hit that TPS, 4k is the most I have seen published
looks like you are targetting fabric, i seriously doubt the ability to hit the target TPS you are setting
Right, but as I told the rate of increase is always the same no matter how many workers I have
i suspect that is a CPU bottle neck on the target system
are you running this in a kubernetes clister?
Right, but what can I do if I want to check what is the system threshold
The point where it starts rejecting transactions
No, I am running on docker containers
I use a "fixed backlog" that aims to maintain a steady "pressure" of incomplete transactions ... then you will find out the maximum TPS at that pressure, you can also try a ramp TPS controller
to my knowledge the correlation between the TPS and the point of transaction rejection is not yet possible using a ramp controller
So, when will I see the number of failed transactions increasing?
depends on configured timeouts on the underlying system, the driving tps, and the lag in processing the transactions
normally after a few minutes
Is not the failed transactions related to the threshold point of the SUT?
the SUT can configure a timeout value for processing a transaction, as can the SDK
Ok, but what is the standard method for testing the maximum TPS of SUT?
not sure if there is an accepted standard yet, but common methods include:
- sequence of rounds, increasing TPS loading
- TPS ramp test noting time of first failure and correlating that with the driven TPPS at the time
When you say TPS ramp test you mean using the maximum rate controller?
no, there is a linear-rate controller
I did that but I have the same "problem"
I did that but I had the same "problem"
ok- try using "time based rounds" run for 10mins
that is the `txDuration` option
The increasing rate is always the same no matter what
the first few mins will see an increasing rate as the system adjusts to the load, this is typical of most performance tests
usually in performance tests, the first/last x minutes are discounted
Let me see if I get it right
I have to set several round with increasing TPS number at a fixed rate
And run each one of them for 10 minutes?
minimum 5mins ... yes, it takes a while!
you want the time to be long enough to reach a steady state
Any suggestion for the TPS values on each round?
depends on the system hosting the SUT, on a "reasonable spec" VM you could expect to see maybe 1000TPS, so to investigate that one I would jump in 200 TPS increments
And what should be the expected output as we increase the TPS rate?
Screenshot 2021-02-08 at 19.27.31.png
readAsset and readAsset2 had a fixed TPS os 2000 and 3000, respectively.
readAsset and readAsset2 had a fixed TPS of 2000 and 3000, respectively.
Can I assume the values shown on column `Send Rate (TPS)` are the maximum number of TPS my SUT can process?
j
Why `Send Rate` does not match the value I set for TPS when running a rate controller?
is it too low or too high? A single worker is only capable of around 100TPS before it is CPU bound. The workers are single threaded, so it is a hard limit - hence we scale the number of workers. Once the platform they are on is itself CPU bound, it just won't be able to go any faster
Hi nk,
I believe the bottleneck is the platform itself
I am running caliper on a docker container and when I check the stats of that same container I see that the CPU (%) is around 140%
ah, so taking up 1.4 cores
there are some published perf results here: https://hyperledger.github.io/caliper-benchmarks/fabric/performance/2.1.0/nodeContract/nodeSDK/configuration/
so you can see the expected performance with a particular setup
I'll take a look
Just one more thing, If I start to see some unfinished transaction for a given TPS then I can assume the SUT is getting overloaded, right?
yes
well, if the unfinished number starts to grow
the nature of fabric is that it actually runs faster under a slight loading
that was the main reason for the "constant load" style rate controller
Are you talking about `fixed-load` controller?
yes
Btw, I am not sure if I get it what it actually does
think of the transactions being submitted into a queue for processing - that controller aims to keep the queue depth at a fixed level
So, If the queue start growing beyond that level, then Caliper will decrease the TPS in order to keep the fixed load, right?
So, if the queue start growing beyond that level, then Caliper will decrease the TPS in order to keep the fixed load, right?
yes
whereas a fixed tps would carry on increasing the queue depth and eventually you will get timeouts
it gets a bit tricky because the orderer batches things, so the queue depth is not continuous
Based on what you have said I believe Fabric keeps that queue for a real life situation
sort of, so Fabric will process transactions sequentially, but when they are submitted to be ordered, you have no control over which transactions go into which block
Right, but if it starts getting overloaded it will push the transactions into a queue before timing out
yes
though there is more than one timeout in play - the SDK will have a timeout, and fabric will also have a "commit timeout"
So, fixed-load is the most similar one can get to a production situation
yes, ... or you can stitch controllers together as well if you wanted more complex scenarios
By looking here I see you are mixing several fixed-load controllers with one fixed-rate
By looking here https://github.com/hyperledger/caliper-benchmarks/blob/master/benchmarks/api/fabric/base/get-asset.yaml I see you are mixing several fixed-load controllers with one fixed-rate
What is the reasoning?
fixed-load for "general results"; fixed-rate for comparing system performance if you change the underlying infrastructure. They give slightly different perspectives
ok
But how did you get to the `Throughput (TPS)` present here https://hyperledger.github.io/caliper-benchmarks/fabric/performance/2.1.0/nodeContract/nodeSDK/evaluate/get-asset/
But how did you get to the `Throughput (TPS)` presented here https://hyperledger.github.io/caliper-benchmarks/fabric/performance/2.1.0/nodeContract/nodeSDK/evaluate/get-asset/
the numebrs?
yah
used a dedicated bare metal server
(spec is given)
Right
just running ubuntu, no graphics etc
Right
I was more interested on how you get to those numbers
What test have you run and which were the controllers
ah right, they are in the github repo caliper-benchmarks .. the fixed asset ones
Was it the result of running these tests for the `Get Asset` https://hyperledger.github.io/caliper-benchmarks/fabric/performance/2.1.0/nodeContract/nodeSDK/evaluate/get-asset/?
yes
Any reason for setting the `transactionLoad` to 50?
this was (by trial) the upper limit of capability when investigating the larger size items being retrieved
If you set a larger value for transactionLoad you would see a decrease in throughput for larger size items?
timeouts
Sorry, I did not get it
above 50, the queue depth was too great. as a result the transactions took too long to process and they timed out
-> when trying to perform a 'get' on unreasonably large assets
I see
But why using that value for smaller size item?
If I get it right, the smaller ones could have a larger value without timing out, right?
yep, that's right - the aim was to keep the run consistent
yep, that's right - the aim was to keep the run consistent as the investigation was the impact on "asset size" being pulled through the system
Ty ;)
Your help was invaluable!
no worries
Has joined the channel.
Hello! I am just starting to discover Caliper and i face some difficulties...My question is whether the chaincodeArguments we can pass structs
Hello! I am just starting to discover Caliper and i face some difficulties...My question is whether in the chaincodeArguments we can pass structs, or only strings
i get the following error: Proposal response error by peer0.org1.example.com: unable to convert value to struct
from the documentation i just found the following: "chaincodeArguments: string[]. Optional. The list of string arguments to pass to the chaincode."
So in case that the chaincode function receives a strict instead is there a way to use invokeSmartContract?
So in case that the chaincode function receives a struct instead is there a way to use invokeSmartContract?
this one passes a json object that has been "stringified" https://github.com/hyperledger/caliper-benchmarks/blob/master/benchmarks/api/fabric/lib/mixed-rich-query-asset.js
Perfect! I will try it thanks
Perfect! I will try it thank you!
the contract that consumes that is there too if you wanted to see the corresponding part
Hello!! What would be the possible reasons for not generating the result html and not showing the results from the report-builder on the console.. But benchmark completing without any errors. I can even see the logs on Chaincodes that it was going smooth. When finishing the benchmark it exited with code 0.
configuration file error most likely - are there any "suspicious" console logs in the output?
log2.PNG
log1.PNG
Strange this is it works perfectly well on another machine I have the identical copy of the project directory on both machines. Attaching the logs of both machines.
hmmm, it claims to have gernerated the report at the path /hyperleger/caliper/workspace/report.js
hmmm, it claims to have gernerated the report at the path /hyperleger/caliper/workspace/report.html
or is this for 2 different runs?
Yeah. 2 runs on 2 machines.
same operating system?
Yes. Ubuntu.
same command to launch? not missing any overrides?
I'm running a Caliper Docker container on both instances. So It's the same launch command
ighto
righto
what version?
Fabric 2.1.0 and Caliper 0.3.2
ah, 0.4.2 is out now
a few breaking changes in the config files, but much more stable
@nkl199, can I assume that the highest load my SUT can sustain without a degrading the number of TPS is 300 by looking at this table:
@nkl199, can I assume that the highest load my SUT can sustain without degrading the number of TPS is 300 by looking at this table:
I see. Let me try with the new version. Thanks.
Screenshot 2021-02-09 at 17.56.43.png
so this is a "get" which is different to the "put" (a put is much more expensive) so that is more accurately the highest rate that you can retrieve information
no worries
there are some tutorials in the docs for it too, which should help with the config files
So, if now I want to test the maximum TPS per asset size, I must use the transactionLoad set to 300, right?
So, if now I want to test the maximum TPS per `asset size`, I must use the transactionLoad set to 300, right?
ok it worked! Thanks again!
transaction load != TPS
Hi @nkl199 ,
Right, but now that I played around with the value of transactionLoad and found the one that gave me the best results
Right, but now that I played around with the value of transactionLoad and found the one that gave me the best throughput
I was thinking in fix that parameter in order to test how TPS change based on asset size
I was thinking in fixing that parameter in order to test how TPS change based on asset size
Does that make sense?
Sorry - I miss read you initial question, yes - fix txnLoad and vary the asset size :thumbsup:
ty ;)
Thanks. I followed the tutorial on doc. In this (0.4.2) version I don't see any whereto put the details of the Orderer. Is it the Org connection profile ?
ah, this is assuming a "discovery enabled" network, the complete details can be found https://hyperledger.github.io/caliper/v0.4.2/fabric-config/new/
Here also I don't see a place to put Orderer profile.
ah - so if you are using the "new format" then all you need is the common connection profile reference
otherwise it is this ref: https://hyperledger.github.io/caliper/v0.4.2/fabric-config/legacy/
Thanks. I'll try the legacy format. But to figure out what's wrong is there a link to sample connection profile ?
we use both in our integration tests
https://github.com/hyperledger/caliper/tree/master/packages/caliper-tests-integration/fabric_tests
perfect. thanks a million.
Clipboard - February 10, 2021 9:13 PM
Any ideas on exiting the benchmark like this on 0.4.2 ?
Apparently this happen only on Dockerized Caliper. Normal run works fine. Thank for the assistance.
TransactionLoad_CreateAsset1000_Evaluation.png
TransactionLoad_CreateAsset1000_Evaluation.png
TransactionLoad_CreateAsset1000_Evaluation.png
TransactionLoad_CreateAsset1000_Evaluation.png
Hi all, I'm currently trying to understand my performance test results:
I utilized 17 VM's, with 4 Kafka Broker, 3 Zookeeper (sharing 4 VM's with 8 vCPUs), 3 Orderer (one VM with 8 vCPUs each), 8 Peers (one VM with 16 vCPUs each) and finally 2 VM's with 20 Caliper workers.
The benchmark is Create-Asset with 1000 bytes payload, with "fixed-load" as the rate controller (x-axis for varying transaction loads)
The red line is Hyperledger Fabric 1.4.8, while the green line is our modification (where we biggest performance hit is an additional layer of computation for the validation phase).
Im mostly curious about two things in the plot above:
1) It seems like the two lines converge after which some saturation point is hit for Hyperledger. Is the assumption correct, that this is probably caused by some endorsement bottleneck? And is there some way to verify this hypothesis?
2) Furthermore, I do not fully understand the x=1500. Since I set the Kafka MaxMessageCount to 300 I would intuitively say that the maximum is reached at a multiple of 300
Hi all, I'm currently trying to understand my performance test results:
I utilized 17 VM's, with 4 Kafka Broker, 3 Zookeeper (sharing 4 VM's with 8 vCPUs), 3 Orderer (one VM with 8 vCPUs each), 8 Peers (one VM with 16 vCPUs each) and finally 2 VM's with 20 Caliper workers.
The benchmark is Create-Asset with 1000 bytes payload, with "fixed-load" as the rate controller (x-axis for varying transaction loads)
The red line is Hyperledger Fabric 1.4.8, while the green line is our modification (where we biggest performance hit is an additional layer of computation for the validation phase).
Im mostly curious about two things in the plot above:
1) It seems like the two lines converge after some saturation point is hit for Hyperledger. Is the assumption correct, that this is probably caused by some endorsement bottleneck? And is there some way to verify this hypothesis?
2) Furthermore, I do not fully understand the x=1500. Since I set the Kafka MaxMessageCount to 300 I would intuitively say that the maximum is reached at a multiple of 300
Hi all, I'm currently trying to understand my performance test results:
I utilized 17 VM's, with 4 Kafka Broker, 3 Zookeeper (sharing 4 VM's with 8 vCPUs), 3 Orderer (one VM with 8 vCPUs each), 8 Peers (one VM with 16 vCPUs each) and finally 2 VM's with 20 Caliper workers.
The benchmark is Create-Asset with 1000 bytes payload, with "fixed-load" as the rate controller (x-axis for varying transaction loads)
The red line is Hyperledger Fabric 1.4.8, while the green line is our modification (where we biggest performance hit is an additional layer of computation for the validation phase).
Im mostly curious about two things in the plot above:
1) It seems like the two lines converge after some saturation point is hit for Hyperledger. Is the assumption correct, that this is probably caused by some endorsement bottleneck? And is there some way to verify this hypothesis?
2) Furthermore, I do not fully understand the x=1500 result. Since I set the Kafka MaxMessageCount to 300 I would intuitively say that the maximum is reached at a multiple of 300
In addition to the above, I'm also still looking for various ways to stress test our modification. The main goal with the performance test above was to test the sut at different levels of workload.
I'm also running the same kind of tests for other payload sizes (100, 2k, 4k, 8k and 16k) (for 32k and 64k I get some kind of EventHub Timeout but nvm). I'm also planing on measuring the resource utilization for a fixed payload and throughput.
Does anyone spontaneously know some further benchmarks which would stress test the validation phase of the peers or the capabilities of the orderer-service?
Thanks in advance :grinning:
Hello! I am trying to create simple network by using ansible script (exactly as described in https://cloud.ibm.com/docs/blockchain?topic=blockchain-ansible-build). I am using Visual Studio Code and invoke commands in built-in terminal. When the script build_network.sh is run it stops at 08-import-ordering-service.yml with message:
TASK [Import the ordering service] *********************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Ordering service exists and appears to be managed by this console, refusing to continue"}
what does it mean and how to resolve it and proceed with the rest of this script?
At this point I would be looking to expose the internal fabric metrics (https://hyperledger-fabric.readthedocs.io/en/release-1.4/metrics_reference.html). You can get prometheus to scrape this information and view it in grafana
I think you are hitting just about everything there! Any "commit" action will bring involvement of the validation and orderer. Variation in payload size, and applied load will cover the max-size, max-number, and max-timeout aspects ... so I thinkk you are in the "finding the best loads" phase of the investigation
quite possibly my favourite chart generated using caliper, ever :thumbsup:
bottleneck could come from CPU restriction in endorsement phase, or perhaps a networking limitation
Thanks for the advice, prometheus is already set up (currently disabled). After the current benchmarks I'll focus on the resource utilization :-)
That's exactly what I was hoping for :-)
If you are interested in the following benchmarks, I'd be glad to keep you updated :grinning:
absolutely!
I think that I'll finish the other benchmarks in the coming days (the graph is generated by using the avg and standard deviation of 10 runs, so it takes some time)
theres a caliper call every 2 weeks, if you get to the stage where you would like to present something, you would be more than welcome to join the call. Maybe share pain points etc that could help develop caliper
nice to see some genuine long term runs being performed
Thanks for the invitation! We finish our work in april, where all of my exams are over as well. So I'll definitely keep it in mind! :)
Error: Unable to detect required Fabric binding packagesType a message
although i have given binding command
Error: Unable to detect required Fabric binding packages
did the binding command work?
Has joined the channel.
anyone here i need an urgent help please
[ ](https://chat.hyperledger.org/channel/caliper?msg=jWJJWzacphzP77dpc) What type of help??
sir when i install configurad my network with caliper they give msp error any here ??
at the last path and files correct
network is up and runing everything is fine but at the end when put benchmark script it give ms error
are you using the wrong credentials for the caliper client connection?
can yo help me please setting up this one only
@MrSE400 would you mind how you generate this chart ? i m using the prometheus matrix published by fabric https://hyperledger-fabric.readthedocs.io/en/release-1.4/metrics_reference.html#id2
https://hyperledger.github.io/caliper/v0.4.2/fabric-tutorial/tutorials-fabric-existing/
Thank you
i will follow this one
:thumbsup:
Hey, I'm using a basic shell script which scrapes those report.html files and simply puts them in one .csv file. Afterwards I simply use python to calculate average and standard deviation and plot the results with matplotlib :-)
If you are interested in details you can have a look at my repo:
https://github.com/eggersn/fabricstar-benchmarks
where i use "evaluation.sh" and "Evaluation.py". You probably have to modify both files to match your paths (and Evaluation.py to fit your x-axis).
I'm currently a little busy, but maybe I'll find in 1-2 months some time to document all of those scripts :sweat_smile:
Has joined the channel.
Hi,
i want execute the existing project caliper benchmarks i download this project from github https://github.com/hyperledger/caliper-benchmarks
i use fabric 2.1.0
Did anyone face this problem when trying to run caliper-benchmarks "Received error response from: grpcs://localhost:7051 error: Error: 2 UNKNOWN: access denied: channel [mychannel] creator org [Org1MSP]"
error.png
Hi all, I used caliper with fabric v1.4.x, I know with 2.x there are differences and you need to add parameters and override commands because there are restrictions. I tried executing the command but it still says I need to use the gateway parameter, I am a little sleep deprived :) second pair of eyes would help
```shell
Npx caliper launch manager --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig networks/fabric/v2/v2.1.0/2org1peercouchdb_raft/fabric-go-tls-solo.yaml --caliper-workspace ./ --caliper-flow-only-test --caliper-fabric-gateway-usegateway --caliper-fabric-gateway-discovery
```
This is the error I am getting
```shell
Error: Caliper currently only supports gateway based operation using the 2.1.0 Fabric-SDK. Please retry with the gateway flag
```
thanks @MrSE400 , this is useful, i will give a try on this. wondering if you ever use caliper to publish the matrix the prometheus push gateway. i am not able to get same result per setup in https://hyperledger.github.io/caliper/v0.3.2/caliper-monitors/
I'm not quite sure what you mean.
The test runs evaluated in the graph were all without any kind of monitor. If I add prometheus to the setup I also find a small decrease in performance (but for prometheus you probably should take a look at the fixed-rate controller).
Additionally, if you look at the post below the graph I listed the specs of my setup. So this might explain some differences in the results.
https://hyperledger.github.io/caliper/v0.4.2/fabric-tutorial/tutorials-fabric-existing/ claims the following if you are on v 0.4.2 `npx caliper launch manager --caliper-workspace ./ --caliper-networkconfig networks/networkConfig.yaml --caliper-benchconfig benchmarks/myAssetBenchmark.yaml --caliper-flow-only-test --caliper-fabric-gateway-enabled`
(looks like you are using the old flag for gateway)
Hi,
i want execute the existing project caliper benchmarks i download this project from github https://github.com/hyperledger/caliper-benchmarks
i use fabric 2.1.0
Did anyone face this problem when trying to run caliper-benchmarks "Received error response from: grpcs://localhost:7051 error: Error: 2 UNKNOWN: access denied: channel [mychannel] creator org [Org1MSP]"
is this for all benchmarks or just one in particular?
for the existing project in github i want to execute it
@nkl199 for the existing project in github i want to execute it
pleas check your network is up and runing and chanel is created successfully
yes
@nkl199 I got some new plots to share, if you're interested :-)
TransactionLoad_CreateAsset100_Evaluation.png
TransactionLoad_CreateAsset1000_Evaluation.png
TransactionLoad_CreateAsset2000_Evaluation.png
TransactionLoad_CreateAsset4000_Evaluation.png
TransactionLoad_CreateAsset8000_Evaluation.png
TransactionLoad_CreateAsset16000_Evaluation.png
thank you!!
i find it helpful to step through the explicit caliper "phases" one by one to help with the above (in the docs) and check the docker container logs. Depending on the docker version being used, the networks used are not correct (use latest docker) and so containers can't talk
@MrSE400 You officially win "Caliper chart of the year" with the above, which also takes "Caliper chart of the decade" with it at the moment!
@MrSE400 You officially win "Caliper chart of the year" with the above, which also takes "Caliper chart of the decade" with it at the moment! (subject to future submissions of course!)
@Tanveer5 my channel is exist
@nkl199 must change version of docker?
thanks @MrSE400 , i am actually looking to capture the TPS and validation latency on peer level. i can get the peer TPS but not validation latency based on the fabric published prometheus matrix. for caliper the tps and latecy is more for channel level.. not useful for me to measure the peer level performance
thanks @MrSE400 , i am actually looking to capture the TPS and validation latency on peer level. i can get the peer TPS but not validation latency based on the fabric published peer prometheus matrix. for caliper observer matrix, the tps and latecy is more for channel level.. not useful for me to measure the peer level performance
Ah okay, what query are you using to get the peer TPS (just wondering what you actually mean with "peer TPS" :grinning: )?
And for latency: Isn't "ledger_block_processing_time" going in the right direction?
hey guys I wanted to ask for the statement : "For a single publisher, among the three protocols, CoAP performs the best with latencies around 5-6 ms even at high throughput (10,000 messages/ second).", are the two terms "throughput" and "messages per second" same? I am calculating round trip latency and my concern is, while transmitting some packets might get lost and not reach the destination, so while the term "messages/ second" signifies the rate at which messages are being sent from the publisher, I am not sure if the term "throughput" carries the same meaning or is equivalent to "number of messages sent for which acknowledgement was received per second".
I am using ledger_transaction_count to get the Number of transactions processed.. it is published by each peer. in PromQL i use rate function to get the Transaction per second
I am using ledger_transaction_count to get the Number of transactions processed.. it is published by each peer. in PromQL i use rate function to get the Transaction per second. attach graph captured from Fabric matrix and caliper matrix
Clipboard - March 1, 2021 6:11 PM
Clipboard - March 1, 2021 6:12 PM
Throughput means "the number of requests processed in a time unit", which usually means from a benchmarking point of view that the client received X number of replies (10k, for example) for its requests/messages in a time unit (second, minute, hour, etc.). So a 10k/1s througput means the client received an average of 10k replies from the server in a second.
This number usually includes both successful and failed requests. You will see the term goodput, in which case only the replies for the successful requests are counted. Similarly, failure rate denotes the number of replies for failed requests in a given time unit.
These are the usual meaning of the above concepts. However, a good benchmark evaluation should always include the precise meaning of the terms, how they are measured, what is included, etc.
Has joined the channel.
Hi, I'm new to this domain, happy to see an active moment in the chat, I'll try to setup my environment, If I found any issue will ask you guys. Kindly guide me if possible....!!
Has joined the channel.
Hi, I'm new to this caliper thing, while doing load tests it's run an infinite loop .
Did anyone faces this issue??
can you elaborate a bit on the above? Caliper version? SUT target? Binding being used? Sample or your own network and smart contracts? Any error messages? Any logs?
Has joined the channel.
Hi, I am new to this domain. i want to integrate hyperledger fabric with caliper to measure my project performance. I will appreciate your help thanks.
The Caliper documentation is a good start: https://hyperledger.github.io/caliper/v0.4.2/getting-started/
Then you can head to the Caliper-Fabric tutorial: https://hyperledger.github.io/caliper/v0.4.2/fabric-tutorial/tutorials-fabric-existing/
Thanks
background processing this one, the only thing i can think of we had that sounds familiar is if you are on an old version of nodeJS that had a memory leak and using distributed workers. You need to be on the most recent v10 of NodeJS, otherwise the caliper workers terminate without informing the manager, which then sits there waiting forever
I have been background processing this one: the only thing i can think of we had that sounds familiar is if you are on an old version of nodeJS (that had a memory leak) and using distributed workers. You need to be on the most recent v10 of NodeJS, otherwise the caliper workers terminate without informing the manager, which then sits there waiting forever for message that will never arrive
caliper_question.png
Hi all, I'm currently performing some resource utilization tests and was wondering why we consider for metrics like "Network Out", "Disc Write" etc. the statistic "sum" instead of "avg".
If I understand correctly, the query itself already returns the average of transmitted bytes in MB/s (and the statistic itself therefore simply sums up all of these average values)
Dear. Mr. MrSE400.
Dear. Mr. MrSE400. i will appreciate if help even i can't start simple first running of caliper.
Error.png
Hi all i am facing this problem "Error: Invalid "mychannel" channel configuration: child "contracts" fails because ["contracts" is required]. "chaincodes" is not allowed", when i run caliper benchmark. Please help me to fix this issue. i will appreciate your help.
Maybe some upgrade issue from caliper 0.3.2 to 0.4.x? A simple fix of the config file (replacing "chaincodes" with "contracts") should do the trick
I am using caliper version v0.4.0. I will check for config file. Thanks
Error-2.png
Hi all i have got this problem please help me "error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Enrollment failed with errors [[{"code":19,"message":"CA 'ca.org1.example.com' does not exist"}]]"
Error: Benchmark failed with error code 4
Which example are you trying to run? It looks like that the CA name on the server/CA side doesn't match the CA name in your Caliper network configuration
Thanks. Mr Klenik. Even i checked and matched CA name from server and Caliper network. and the problem still exist with same "code":19,"message":"CA 'ca.org1' does not exist"
Error3.png
Error4.png
Thanks all, I fixed first errors, but this new error about benchmark execution
What does your network config file's `caliper` section look like?
name: Fabric
version: "1.0"
mutual-tls: false
caliper:
blockchain: fabric
command:
#start: export FABRIC_VERSION=1.4.1;docker-compose -f networks/fabric/docker-compose/2org1peercouchdb/docker-compose.yaml up -d;sleep 3s
# end: docker-compose -f networks/fabric/docker-compose/2org1peercouchdb/docker-compose.yaml down;(test -z \"$(docker ps -aq)\") || docker rm $(docker ps -aq);(test -z \"$(docker images dev* -q)\") || docker rmi $(docker images dev* -q);rm -rf /tmp/hfc-*
info:
Version: 1.4.4
Size: 2 Orgs with 1 Peer
Orderer: Solo
Distribution: Single Host
StateDB: CouchDB
clients:
client0.org1.example.com:
client:
organization: Org1
credentialStore:
path: /tmp/hfc-kvs/org1
cryptoStore:
path: /tmp/hfc-cvs/org1
clientPrivateKey:
path: ../fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/priv_sk.pem
clientSignedCert:
path: ../fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem
client0.org2.example.com:
client:
organization: Org2
credentialStore:
path: /tmp/hfc-kvs/org2
cryptoStore:
path: /tmp/hfc-cvs/org2
clientPrivateKey:
path: ../fabric-samples/first-network/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/priv_sk.pem
clientSignedCert:
path: ../fabric-samples/first-network/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem
channels:
mychannel:
#configBinary: networks/fabric/config_solo/mychannel.tx
created: true
orderers:
- orderer.example.com
peers:
peer0.org1.example.com:
eventSource: true
peer0.org2.example.com:
eventSource: true
contracts:
- id: fabcar
version: v1
language: golang
path: fabric/samples/fabcar/go
organizations:
Org1:
mspid: Org1MSP
peers:
- peer0.org1.example.com
certificateAuthorities:
- ca.org1.example.com
adminPrivateKey:
path: ../fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/priv_sk.pem
signedCert:
path: ../fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem
Org2:
mspid: Org2MSP
peers:
- peer0.org2.example.com
certificateAuthorities:
- ca.org2.example.com
adminPrivateKey:
path: ../fabric-samples/first-network/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/priv_sk.pem
signedCert:
path: ../fabric-samples/first-network/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem
orderers:
orderer.example.com:
url: grpc://localhost:7050
grpcOptions:
ssl-target-name-override: orderer.example.com
peers:
peer0.org1.example.com:
url: grpc://localhost:7051
grpcOptions:
ssl-target-name-override: peer0.org1.example.com
grpc.keepalive_time_ms: 600000
peer0.org2.example.com:
url: grpc://localhost:8051
grpcOptions:
ssl-target-name-override: peer0.org2.example.com
grpc.keepalive_time_ms: 600000
certificateAuthorities:
ca.org1.example.com:
url: http://localhost:7054
httpOptions:
verify: false
registrar:
- enrollId: admin
enrollSecret: adminpw
ca.org2.example.com:
url: http://localhost:8054
httpOptions:
verify: false
registrar:
- enrollId: admin
enrollSecret: adminpw
my config file's caliper section look like that
Your `command` attribute is undefined (because of the commented `start` and `end` attributes), so you also have to comment the `command` attribute for it to work
Thanks
Err.png
I got this error. please help me. i appreciate your help
Seems like you specified the CA address in the network configuration as `http`, but TLS is enabled on the server-side. At least that is what the HTTP vs HTTPS message suggests
Hi all, How can I vary the rate of conflicting key per round with Caliper?
Auto increment the key on every test iteration. Within the callback you have access to the "clientId" and the txnId that may be concatenated to create unique keys
Hi all, I have a problem with networkconfig file in caliper file. I will apriciate if any one can share with working networkconfig file
Has joined the channel.
Hi everyone! I'm new to Hyperleger Project and I have encoutered some problem when using Fabric and Caliper. Here's my question in Stackoverflow and I'm really looking forward to your answer. Thanks in advance! https://stackoverflow.com/questions/66651171/channelmychannel-received-discovery-erroraccess-denied
Check whether the discovery mechanism is configured correctly on the Fabric side. If you recreate the network from scratch when starting a new benchmark, make sure you always use the up-to-date crypto materials (used by the Fabric side)
So cleaning up previous credentials is needed if they are regenerated
Also check out this mailing list thread about the policies needed for discovery: https://lists.hyperledger.org/g/fabric/topic/node_js_sdk_error_like/75895183?p=
I am working on hyperledger fabric 2.3
Whenever I try to deploy chaincode in javascript I get the problem while invoking it and I am also not able to use peer command outside the cli.
ubuntu@ip-172-31-18-117:~/fabric-samples/test-network$ export PATH=${PWD}/../bin:$PATH
ubuntu@ip-172-31-18-117:~/fabric-samples/test-network$ export FABRIC_CFG_PATH=$PWD/../config/
ubuntu@ip-172-31-18-117:~/fabric-samples/test-network$ peer chaincode invoke -o orderer.example.com:7050 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt --isInit -c '{"function":"InitLedger","Args":[]}'
then I got the error:
Error: 2021-03-16 13:36:52.033 UTC [main] InitCmd -> ERRO 001 Cannot run peer because cannot init crypto, specified path "/home/ubuntu/fabric-samples/config/msp" does not exist or cannot be accessed: stat /home/ubuntu/fabric-samples/config/msp: no such file or directory
please do help
I am stuck with this for a long time
and when I try to invoke chaincode from CLI then it gives an error
Error:
2021-03-16 13:34:14.062 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> DEBU 05f ESCC invoke result: response:
@swatim These look like Fabric-related errors, so you should try asking for help in the #fabric channel
I checked the log in peer0.org1.example.com, got an error:
```
Principal deserialization failure (the supplied identity is not valid: x509: certificate signed by unknown authority (possibly because of "x509: ECDSA verification failure" while trying to verify candidate authority certificate "ca.org1.example.com"))
```
So is it an Fabric-related error or my misconfiguration in network_config.json? Could you please instruct me to identify that?
I'm new to Fabric and Caliper, so I may not have enough ablity to find it out myself. I'll appreciate for your patient help. You can send direct messages to me
You probably regenerated the certificates between benchmarks, and you forgot to change the certificate PEM in your network config JSON. It's recommended to refer to the certificate with a path (not the content directly), so when it's regenerated, Caliper picks up the new certs automatically.
Can you provide a sample on how to `refer to the certificate with a path`?
here's my `network_config.json`
```
{
"caliper": {
"blockchain": "fabric"
},
"clients": {
"Admin@org1.example.com": {
"client": {
"credentialStore": {
"path": "tmp/hfc-kvs/org1",
"cryptoStore": {
"path": "tmp/hfc-kvs/org1"
}
},
"organization": "Org1",
"clientPrivateKey": {
"path": "../fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/c3427637d0c13b434b8c97da64b3d5554486f6026598a720997c0e9bac9a34d5_sk"
},
"clientSignedCert": {
"path": "../fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem"
},
"connection": {
"timeout": {
"peer": {
"endorser": "300"
}
}
}
}
}
},
"channels": {
"mychannel": {
"created" : true,
"chaincodes": [
{
"id":"fabcar",
"version":"1.0"
}
]
}
},
"name": "test-network-org1",
"organizations":{
"Org1": {
"mspid": "Org1MSP",
"peers": [
"peer0.org1.example.com"
],
"certificateAuthorities": [
"ca.org1.example.com"
],
"adminPrivateKey": {
"path": "../fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/c3427637d0c13b434b8c97da64b3d5554486f6026598a720997c0e9bac9a34d5_sk"
},
"signedCert": {
"path": "../fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem"
}
}
},
"peers": {
"peer0.org1.example.com": {
"url": "grpcs://localhost:7051",
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\nMIICSjCCAfCgAwIBAgIRANHyPrndHJctvPKv3FaOjQcwCgYIKoZIzj0EAwIwdjEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs\nc2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMjEwMzE2MDIzMjAwWhcNMzEwMzE0MDIz\nMjAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE\nBxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G\nA1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49\nAwEHA0IABHUCuPhQ06CAf2btTeyjVXTOJuqWMi7nZJH4WZoQVcpYMHVqToO9Teqr\nHL3F6h9u1It3YrnTFbj9ElZgj1gBz9WjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV\nHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIMG49gcJ4W3Q\n34qDqr4v5D0cAUq73c3KnoRG8UcBzsEDMAoGCCqGSM49BAMCA0gAMEUCIQDtlLg7\nHaMQ1b17CZle3p+LA5pQ8iuueVu6Tta5NcoWawIgPihVEPgk4YFZiONYYH9roCNg\nTOrlNtGcQmjQtgMAaHk=\n-----END CERTIFICATE-----\n"
},
"grpcOptions": {
"ssl-target-name-override": "peer0.org1.example.com",
"hostnameOverride": "peer0.org1.example.com"
}
}
},
"certificateAuthorities": {
"ca.org1.example.com": {
"url": "https://localhost:7054",
"caName": "ca-org1",
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\nMIICQzCCAemgAwIBAgIQFaToFH3d7qnBs5cpKwal4TAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMTAzMTYwMjMyMDBaFw0zMTAzMTQwMjMyMDBa\nMHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD\nExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE\n2nFcumHBsAlkFpbbruHdoObSOEAKJGNni5Wm38O976wlVhfAsD+zpmDqhzAN1IOz\nzgVVlcBGqHO9sAsKHrtiGqNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG\nBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgBG7igrC2fgAzBoqp/d5U\ny/LNoHHdo0QPMV7MkwwWq9QwCgYIKoZIzj0EAwIDSAAwRQIhAPyim62SB8yQOQT1\nZjctFe/3zVuqNYUnUbfhltymDd/jAiAb5luGa2oICGxqlYDUMwAkUImO8yngeLF9\nYxHQGAzOZg==\n-----END CERTIFICATE-----\n"
},
"httpOptions": {
"verify": false
}
}
},
"version": "1.0"
}
```
Sorry to bother you but i'm new to Caliper with little experience :(
You've already used the path attribute at several places in your network config, but you should use it everywhere instead of the pem attributes. But there's still a tricky part: the certificate file names still contains varying parts when regenerated: c3427637d0c13b434b8c97da64b3d5554486f6026598a720997c0e9bac9a34d5_sk. You also have to make sure you update these. Here is a sample script that renames these files every to a consistent name: https://github.com/hyperledger/caliper-benchmarks/blob/master/networks/fabric/config_raft/generate.sh#L19
So in summary, always double check that you point to the correct certificate files. And always clean up the previous certificates (that way you'll get an earlier error saying that the outdated file doesn't exists).
I followed your instruction, however, it doesn't work. I have edited my question in Stackoverflow, please check it for one more time :cry:
Also, I checked peer0.org1's log. I paste it below due to limited space in Stackoverflow
zhuch - Wed Mar 17 2021 18:46:49 GMT+0800 (中国标准时间).txt
Has joined the channel.
Dear Caliper maintainers,
I am trying to use caliper 0.4.2 with Fabric 2.2. It seems to me using the new connector implementation is better.
The documentation said that:
> version: "1.0"
> would select the legacy connector and the file must conform to the old deprecated network configuration file format
> version: "2.0.0"
> would select the new connector and the file must conform to the new network configuration file format
However, when looking at caliper source code, e.g. https://github.com/hyperledger/caliper/blob/v0.4.2/packages/caliper-fabric/lib/FabricConnectorFactory.js
I am confused because there are LEGACY_V2_GATEWAY_CONNECTOR as well as NEW_V1_GATEWAY_CONNECTOR, that point to v1/ and v2/ folders in connector-versions/ folder.
I wonder if the v1 and v2 folders indicate the Fabric version, connector version, or something else.
Thank you in advance,
Hoang
Dear Caliper maintainers,
I am trying to use caliper 0.4.2 with Fabric 2.2. It seems to me using the new connector implementation is better.
The documentation said that:
> version: "1.0"
> would select the legacy connector and the file must conform to the old deprecated network configuration file format
> version: "2.0.0"
> would select the new connector and the file must conform to the new network configuration file format
However, when looking at caliper source code, e.g. https://github.com/hyperledger/caliper/blob/v0.4.2/packages/caliper-fabric/lib/FabricConnectorFactory.js
I am confused because there are LEGACY_V2_GATEWAY_CONNECTOR as well as NEW_V1_GATEWAY_CONNECTOR, that point to v1/ and v2/ folders in connector-versions/ folder.
I wonder if the v1 and v2 folders indicate the Fabric version, connector version, or something else.
Thank you in advance,
Hoang
Dear Caliper maintainers,
I am trying to use caliper 0.4.2 with Fabric 2.2. It seems to me using the new connector implementation is better.
The documentation said that:
> version: "1.0"
> would select the legacy connector and the file must conform to the old deprecated network configuration file format
> version: "2.0.0"
> would select the new connector and the file must conform to the new network configuration file format
However, when looking at caliper source code, e.g. https://github.com/hyperledger/caliper/blob/v0.4.2/packages/caliper-fabric/lib/FabricConnectorFactory.js
I am confused because there are LEGACY_V2_GATEWAY_CONNECTOR as well as NEW_V1_GATEWAY_CONNECTOR, that point to v1/ and v2/ folders in connector-versions/ folder.
I wonder if the v1 and v2 folders indicate the Fabric version, connector version, or something else.
And I have the same confusion about the word `LEGACY` and `NEW` in above constants.
Thank you in advance,
Hoang
Dear Caliper maintainers,
I am trying to use caliper 0.4.2 with Fabric 2.2. It seems to me using the new connector implementation is better.
The documentation said that:
> version: "1.0"
> would select the legacy connector and the file must conform to the old deprecated network configuration file format
> version: "2.0.0"
> would select the new connector and the file must conform to the new network configuration file format
>
However, when looking at caliper source code, e.g. https://github.com/hyperledger/caliper/blob/v0.4.2/packages/caliper-fabric/lib/FabricConnectorFactory.js
I am confused because there are LEGACY_V2_GATEWAY_CONNECTOR as well as NEW_V1_GATEWAY_CONNECTOR, that point to v1/ and v2/ folders in connector-versions/ folder.
I wonder if the v1 and v2 folders indicate the Fabric version, connector version, or something else.
And I have the same confusion about the word `LEGACY` and `NEW` in above constants.
Thank you in advance,
Hoang
V1 implies it uses the 1.x node sdk, V2 implies it used the 2.x node sdk. Legacy means it's using the old network configuration format (ie version 1.0) and New means it's using the new network configuration format (2.0.0)
Thank @davidkel for the clarification!
Network.png
Hey everyone,
I'm getting some weird results (as can be seen in the above plot). The plot shows the average network transmissions in KB/s (there's a typo in the plot title).
Using the benchmark "Create-Assets-8000" with a fixed-rate controller set to 200TPS, the prometheus query "sum(rate(container_network_transmit_bytes_total{instance=~".+"}[1m])) by (instance)" returns the above values (i.e. ~60 KB/s).
Shouldn't one expect to get around 1.2 MB/s?
Hey everyone,
I'm getting some weird results (as can be seen in the above plot). The plot shows the average network transmissions in KB/s (there's a typo in the plot title).
Using the benchmark "Create-Assets-8000" with a fixed-rate controller set to 200TPS, the prometheus query "sum(rate(container_network_transmit_bytes_total{instance=~".+"}[1m])) by (instance)" returns the above values (i.e. ~60 KB/s).
Shouldn't one expect to get around 1.6 MB/s?
Error-from-fabric-sample-caliper.png
Hi, everyone. I got that error. please can you help me.
Hi everyone, How can get the eefective throughput with caliper?
Has joined the channel.
Has joined the channel.
Hi everyone, I'm using caliper 0.4.2, I'm trying to use the record-rate and replay-rate to test fabric, I wrote the rateControl according to the offical docs`rounds:
- label: mytest
description: Read asset benchmark
txDuration: 10
rateControl: {
"type": "record-rate",
"opts": {
"rateController": {
"type": "fixed-rate",
"opts": {"tps" : 100}
},
"pathTemplate": "../tx_records_client
Clipboard - March 30, 2021 12:00 AM
Hi everyone, I'm using caliper 0.4.2, I'm trying to use the record-rate and replay-rate to test fabric, I wrote the rateControl according to the offical docs:```
`test:
name: basic-contract-benchmark
description: test benchmark
workers:
type: local
number: 4
rounds:
- label: mytest
description: Read asset benchmark
txDuration: 10
rateControl: {
"type": "record-rate",
"opts": {
"rateController": {
"type": "fixed-rate",
"opts": {"tps" : 100}
},
"pathTemplate": "../tx_records_client
Clipboard - March 30, 2021 12:01 AM
Help me please, how to use record-rate and replay-rate in proper way?
```Error while performing "install" step: Error: Invalid endorsement for marbles@v0 in mychannel from peer0.org1.example.com: 2 UNKNOWN: Stream removed
```
Please help
Hi everyone, Please How can get the effective throughput with caliper?
@roxhens
Has joined the channel.
Is there a tutorial how to benchmark Fabric 2.3.0 with Hyperledger Caliper? I have been searching for 2 weeks and found nothing.
I found a tutorial on Caliper website for version 2.2, but when I try withe version 2.3 it does not work and gives me the following error:
`error [caliper] [connectors/v2/FabricGateway] Failed to perform submit transaction [CreateAsset] using arguments [0_1,blue,20,penguin,500], with error: Error: No valid responses from any peers. Errors:
peer=undefined, status=grpc, message=Peer endorsements do not match`
That error indicates a problem with the chaincode you are using. If you are using the samples and following the tutorial make sure you check out the explicit tag as shown in the tutorial because there are problems with the node.js chaincode in the samples and the explicit tag will ensure you get a chaincode that wasn't broken. If not then the problem is whatever chaincode you are using, it's not deterministic
That error indicates a problem with the chaincode you are using. If you are using the samples and following the tutorial make sure you check out the explicit tag as shown in the tutorial because there are problems with the node.js chaincode in the samples and the explicit tag will ensure you get a chaincode that wasn't broken. If not then the problem is in whatever chaincode you are using, it's not deterministic
Hello David,
yes, " git checkout 22393b629bcac7f7807cc6998aa44e06ecc77426 " was the problem, my chaincode was a few commits later in time.
Thanks a lot for your help. :D
Error-12.png
Screenshot from 2021-04-06 01-53-49.png
Has joined the channel.
Has joined the channel.
Hi everyone,
I am trying to create a benchmark for the commercial paper smart contract using the new Fabric connector.
However, I am facing some issues to define the network configuration file. How can one define this file to say that:
-the "issue" transaction is carried out by the peer (isabella) in Org2 (Magnetocorp)
-the "buy" transaction is carried out by the peer (balaji) in Org1 (Digibank)
I tried to launch the benchmark with the files attached. I got the error: "No organizations have been defined"
networkConfig.PNG
networkConfig.PNG
networkConfig.PNG
issueTxWorloadFile.PNG
buyTxWorkloadFile.PNG
benchmarkFile.PNG
Hi everyone,
I am trying to create a benchmark for the commercial paper smart contract using the new Fabric connector.
However, I am facing some issues to define the network configuration file. How can one define this file to say that:
-the "issue" transaction is carried out by the peer (isabella) in Org2 (Magnetocorp)
-the "buy" transaction is carried out by the peer (balaji) in Org1 (Digibank)
I tried to launch the benchmark with the files attached. I got the error: "No organizations have been defined"
Hi everyone,
I am trying to create a benchmark for the commercial paper smart contract using the new Fabric connector.
However, I am facing some issues to define the network configuration file. How can one define this file to say that:
-the "issue" transaction is carried out by the peer (isabella) in Org2 (Magnetocorp)
-the "buy" transaction is carried out by the peer (balaji) in Org1 (Digibank)
I tried to launch the benchmark with the files attached above. I got the error: "No organizations have been defined"
Has joined the channel.
Hi everyone,I just got in touch with caliper not long ago.However,I want to try to test the performance of the writing in ledger by using createAsset of fabric's basic.
Hi everyone,I just got in touch with caliper not long ago.However,I want to try to test the performance of the writing in ledger by using createAsset of fabric's basic. Can somebody show me the Configuration file.
check out the caliper-benchmarks repository, all the configuration files are in there
[ ](https://chat.hyperledger.org/channel/caliper?msg=YzBhAhXK9JF4b6qco) Do they also apply to fabric2.3? I tested the performance of createAsset(), while the TPS was only 9.5. I don't know where the problem is. Could you help me? If you could show me how to configure files to run correctly, I will be very grateful to you.
Hi @Vgkmanju, I get exactly the same error
` EventService[peer] "timed out after:3000" Starting stream to peer0 failed`
Do you remember how to solve this issue?
Thanks in advance.
Has joined the channel.
Hi, I just modified a little bit in source code of Geth and I wanna benchmark this code (maximum tps)?
How can I deal with that? thx
Hi, What would be the possible reasons for not showing the docker resource utilization on the report. I got no errors on the Caliper log. Caliper version is 0.4.2 and Fabric version is 2.1.0. Here's my benchmark Config and I'm benchmarking a remote setup.
Clipboard - April 13, 2021 3:04 PM
Clipboard - April 13, 2021 3:06 PM
Has joined the channel.
Hi, I got "Error: Could not find details for contract ID fixed-asset" when I tried to run
Hi, I got "Error: Could not find details for contract ID fixed-asset" when I tried to run ```
``` "npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/api/fabric/levelDB/base.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml"```
``` ```
My caliper is v0.3.0, what shall I do before I run this command?```
Thanks very much!
```
```
Hi, I got Error: Could not find details for contract ID fixed-asset" when I tried to run
npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/api/fabric/levelDB/base.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
My caliper is v0.3.0, what shall I do before I run this command?```
Thanks very much!
Hi, I got Error: Could not find details for contract ID fixed-asset" when I tried to run
npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/api/fabric/levelDB/base.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
My caliper is v0.3.0, what shall I do before I run this command?
Thanks very much!
Clipboard - 14. duben 2021 15:29
error message
Hi, I got this error message when I running ```
npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/api/fabric/levelDB/base.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/api/fabric-api-go.yaml
```What shall I do to deal with it?thx a lot!
error message
Hi, I got this error message when I running ```
npx caliper launch master --caliper-workspace . --caliper-benchconfig benchmarks/api/fabric/levelDB/get-asset.yaml --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/api/fabric-api-go.yaml
```What shall I do to deal with it?thx a lot!
error message
Has joined the channel.
Hi everyone. How to pass arguments to the smart contract constructor during running the benchmark test?
Clipboard - 2021年4月14日晚上11点33分
Hello, I got another problem, I set rate controller to fixed-rate, tps = 5000, but the send rate is only 1700tps, could anybody help me? thank you very much!
Clipboard - 2021年4月14日晚上11点33分
running caliper benchmarks
[ ](https://chat.hyperledger.org/channel/caliper?msg=ywYLmgTB9H2Qta7Sg) someone can help me T.T
Has joined the channel.
Is anyone from support here? I dont see any questions answered :thinking:
@KozakJ These channels are for the community, so anyone in the community can help if they can.
Your Caliper node may not have enough resources to generate the load that you expect. See the resource utilization of the host when the Benchmark is running,
I have a Fabric 2.1.0 Network running on a distributed Docker Swarm environment. I have successfully install and initiated a Chaincode on this setup. When I'm running a Caliper 0.4.2 Benchmark on this I get the following error :
I have a Fabric 2.1.0 Network running on a distributed Docker Swarm environment. I have successfully install and initiated a Chaincode on this setup. When I'm running a Caliper 0.4.2 Benchmark on this I get the following error :Scotland:
2021-04-16T20:49:41.631Z - error: [ServiceEndpoint]: Error: Failed to connect before the deadline on Committer- name: orderer3.digiblocks.com, url:grpcs://localhost:9050, connected:false, connectAttempted:true
2021-04-16T20:49:41.631Z - error: [ServiceEndpoint]: waitForReady - Failed to connect to remote gRPC server orderer3.digiblocks.com url:grpcs://localhost:9050 timeout:3000
2021-04-16T20:49:41.631Z - error: [NetworkConfig]: buildOrderer - Unable to connect to the committer orderer3.digiblocks.com due to Error: Failed to connect before the deadline on Committer- name: orderer3.digiblocks.com, url:grpcs://localhost:9050, connected:false, connectAttempted:true
at checkState (/home/user/fabric-framework/benchmarksv2/node_modules/@grpc/grpc-js/build/src/client.js:69:26)
at Timeout._onTimeout (/home/user/fabric-framework/benchmarksv2/node_modules/@grpc/grpc-js/build/src/channel.js:292:17)
at listOnTimeout (internal/timers.js:549:17)
at processTimers (internal/timers.js:492:7)
Calliper cant connect to any of the ordering services. The VM that I'm running Caliper is also on the same Swarm cluster. Following is the network configuration on the orderers.
I have a Fabric 2.1.0 Network running on a distributed Docker Swarm environment. I have successfully install and initiated a Chaincode on this setup. When I'm running a Caliper 0.4.2 Benchmark on this I get the following error
2021-04-16T20:49:41.631Z - error: [ServiceEndpoint]: Error: Failed to connect before the deadline on Committer- name: orderer3.digiblocks.com, url:grpcs://localhost:9050, connected:false, connectAttempted:true
2021-04-16T20:49:41.631Z - error: [ServiceEndpoint]: waitForReady - Failed to connect to remote gRPC server orderer3.digiblocks.com url:grpcs://localhost:9050 timeout:3000
2021-04-16T20:49:41.631Z - error: [NetworkConfig]: buildOrderer - Unable to connect to the committer orderer3.digiblocks.com due to Error: Failed to connect before the deadline on Committer- name: orderer3.digiblocks.com, url:grpcs://localhost:9050, connected:false, connectAttempted:true
at checkState (/home/user/fabric-framework/benchmarksv2/node_modules/@grpc/grpc-js/build/src/client.js:69:26)
at Timeout._onTimeout (/home/user/fabric-framework/benchmarksv2/node_modules/@grpc/grpc-js/build/src/channel.js:292:17)
at listOnTimeout (internal/timers.js:549:17)
at processTimers (internal/timers.js:492:7)
Calliper cant connect to any of the ordering services. The VM that I'm running Caliper is also on the same Swarm cluster. Following is the network configuration on the orderers.
Clipboard - April 16, 2021 9:58 PM
Clipboard - April 16, 2021 9:59 PM
This configurations work fine when deployed on a single host. Since I'm running this on a Swarm node I suppose i can refer to other instances as localhost. Is There a problem with that ? Any insight how to solve this issue ?
Unfortunately I don't know anything about docker swarm but I would be surprised that you can refer to those nodes as localhost
What would be the possible reasons for Dockerized Caliper Benchmark to hang without giving any errors on the docker logs ? My Caliper version is 0.4.2 and Fabric version is 2.1.0 ? Following is the console log. Any idea guys ?
Clipboard - April 17, 2021 3:38 PM
If someone having this issue I highly recommend using the CLI version of Caliper. Just make sure you use all the port accessible from the Caliper host machine in the network configuration. The CLI version worked for me while Dockerized version still has this issue.
Hello all. I want to run 50 peers with 60s and 960 transaction and it block size from 10 to 60 blocks. how can i configure this parameters. for example caliper side or hyperledger fabric side. please help me.
Has joined the channel.
Hello. How do I pass through caliper client transient data when connecting Caliper to Fabric (I am using private collections)
For caliper 0.4.x here is an example
https://github.com/hyperledger/caliper-benchmarks/blob/3106657c1917ba515f3b8e5caa66e9d260f0763b/benchmarks/api/fabric/lib/create-private-asset.js#L68
Thanks, @davidkel . It happens I am using version 0.3.2 of Caliper, and this "content" key does not work. Do you know some examples for version 0.3.x?
I don't, but I would also not recommend using 0.3.2 now either
Looking at the 0.3.2 codebase that key should work. I would recommend moving to caliper 0.4.2 though
Ok
Isn't there any examples with v0.3.2, @davidkel ?
I'm not really familiar with caliper 0.3.2 I'm more familiar with 0.4.2 as I overhauled the fabric connectors with a new config and better implementation. I've heard that there are other issues with 0.3.2 that have been addressed with 0.4 which is why I recommended it
that is fabric side (block size is an orderer parameter) you would want to configure caliper to spread/distribute the transactions across the peers though
Has joined the channel.
Hi, I am integrating ethereum with hyperledger caliper. When I executed the benchmark, I got below error.
2021.04.29-00:33:28.666 error [caliper] [caliper-engine] Error while performing "init" step: Error: connection not open on send()
Hi all, I am using a fabric network with 2 org, 1 peer per organization and an endorsement policy Or(org1,org2). The problem is when I use caliper I am getting endorsement from the 2 peers, however I want to get only one endorsement to do some benchmark. Any help please ?
Hi everyone, I'm trying to do an experiment using distributed caliper 0.4.2 and kubernetes with fabcar. However I encounter an error during benchmark process saying `cannot read property prepareTest of undefined` - any hints would be much appreciated. Thanks!
```
2021.05.01-10:08:47.893 +0000 debug [mqtt-messenger] Messenger "mqttjs_be7e8313" processing message from topic worker/update: {"sender":"mqttjs_4a08546e","recipients":["mqttjs_be7e8313"],"type":"prepared","content":{},"date":"2021-05-01T10:08:47.890Z","error":"TypeError: Cannot read property 'prepareTest' of undefined"}
2021.05.01-10:08:47.893 +0000 debug [worker-orchestrator] Dealing with prepared message {"sender":"mqttjs_4a08546e","recipients":["mqttjs_be7e8313"],"type":"prepared","content":{},"date":"2021-05-01T10:08:47.890Z","error":"TypeError: Cannot read property 'prepareTest' of undefined"}
```
I was able to do that here with 0.3.2. The transientMap atribute is not properly a map, but a JavaScript object.
Has joined the channel.
Hi everyone, does anyone have any experience using Hyperledger Caliper with Besu, or maybe know a good tutorial?
HI everyone, How can I benchmark a network with an OR(Org1,Org2) with caliper. I try it but I am getting endorsement from the 2 organizations
Make sure you use discovery, if not then you will have to peer targeting in you workload implementation
Make sure you use discovery, if not then you will have to use peer targeting in you workload implementation
Make sure you use discovery, if not then you will have to use peer targeting in your workload implementation
Has joined the channel.
Why is the throughput of Fabric measured by caliper only 4? 4 orderers with Smart-BFT consusen, 1 peer
Has joined the channel.
Hey everyone, can I benchmark a Besu Network without having any smart contract deployed?
Has joined the channel.
Hi I wrote a function which verify if the user has already sent a document. Is this kind of functions suitable for performance analysis with caliper?
I tried that but apparently that constraint didnt work and the same tx issued by the same issuer was uploaded to the ledger, I mean, now I have 100 documents issued by one client when this client was supposed to issue one and only one document.
Thank you
Hi! The Caliper team doesn't have a Caliper-Besu tutorial currently. But you can check out the integrations test for Besu, that might help: https://github.com/hyperledger/caliper/tree/master/packages/caliper-tests-integration/besu_tests
Can you share more info about your setup and benchmark configuration (and workload)?
If this function is called on the smart contract side, then yes, you can include it in performance tests. Please share some more info about your Caliper workload module, but I think it's the smart contract's responsibility to handle duplications, even if clients submit the same documents again
Here it is https://github.com/oliverRuas/caliper
ppa.go is the chaincode and the function im trying to analyse is WritePayments, which queries with the function QueryIdentityHistory if the client has submitted a payment.
I will try using the API SetEvent after the PutState.
One more question, if my chaincode performance was like i want it to, caliper can't duplicate the document?
Thank you @klenik
hi klenik, thinks for your reply. I have solved this problem by configuring only one sort node in the network config.
Has joined the channel.
Hi, I am integrating ethereum with hyperledger caliper. When I executed the benchmark, I got below error.
2021.04.29-00:33:28.666 error [caliper] [caliper-engine] Error while performing "init" step: Error: connection not open on send()
Hi, I am integrating ethereum with hyperledger caliper. When I executed the benchmark, I got below error.
2021.04.29-00:33:28.666 error [caliper] [caliper-engine] Error while performing "init" step: Error: connection not open on send(). Can someone please help me to resolve this issue?
hi klenik
Can caliper use fabric-sdk-go instead fabric-sdk-node ?
Can caliper use fabric-sdk-go instead fabric-sdk-node ?
No it can't
Has joined the channel.
Hey everyone. Does the Caliper GUI dashboard support Besu networks?
@zeminzhou Caliper is written in JS at the moment. Once we stabilize the code-base, it will be possible to implement Caliper workers in different languages (golang, java, etc). But it's further down the road, unfortunately.
@oliveruas Testing correct functionality is not the purpose of Caliper. You should use unit and integration tests for that. Caliper helps you in submitting multiple transactions from multiple clients concurrently (and with varying transaction parameters), to put a workload stress on your ledger infrastructure, while measuring its response times. What behaviors you deem correct, that should be a separate concern from performance testing.
the caliper GUI is still very much a prototype - i wouldn't recommend it for use with the main branch functions
hi team, I want to use discovery but i am getting this error Unexpected error during benchmark execution: Error: Use of discovery is only supported through a gateway transaction
You need to add `--caliper-fabric-gateway-usegateway`
Better still, use 0.4.2 and the new configuration format see tutorial https://hyperledger.github.io/caliper/v0.4.2/fabric-tutorial/
Ok, I think Im getting it. If my network had a correct functionality, I just would have to concern (now) about the workload that submits multiple txs from one client (because I've proved its functionality and would be the same using one client ID or a hundred IDs).
Is this correct?
Thanks @klenik
@oliveruas Yes, the "worker clients" of Caliper are just a scaling mechanism. You could use different DLT-side identities for each TX, even if you're just using a single Caliper worker.
Has joined the channel.
Ok, I got it.
Thank you!
Has joined the channel.
Has joined the channel.
Hi guys.. how to run caliper on besu? I'm have a error: Worker [1] encountered an error during prepare test phase for round 0: Error: You must provide the json interface of the contract when instantiating a contract object.
Has joined the channel.
2021.04.29-00:33:28.666 error [caliper] [caliper-engine] Error while performing "init" step: Error: connection not open on send(). Can someone please help me to resolve this issue?
i am also getting the same error, pls help
i am also getting the same error. can any one pl help
Has joined the channel.
Check out the docs for the besu integration. You probably need to supply the abi for the contract if you want to deploy it through Caliper
In my experience, this usually means that the node can't accept request. You either provided the access point incorrectly, or the node is still doing some initialization, in which case you should wait a bit more before connecting with Caliper
Clipboard - 17 de Junho de 2021 às 19:02
I'm supply path abi to network config, but don't have success
The path should point to a JSON file containing the following attributes:
https://hyperledger.github.io/caliper/v0.4.2/ethereum-config/#contract-definition-file
Hello .. I followed the documents exactly, but to no avail.
this is my json -> http://dontpad.com/rsu-abi
http://dontpad.com/rsu-abi
My network config -> http://dontpad.com/rsu-network
My workload ->
http://dontpad.com/rsu-workload
My caliperrun.sh -> http://dontpad.com/rsu-caliper-run
Can u help-me?
Has left the channel.
Has joined the channel.
Hi, I am measuring my fabric project with caliper. But the charting option mentioned in the documentation won't show up
https://github.com/hyperledger/caliper/issues/1126
Its something related to this issue here
Has joined the channel.
Has joined the channel.
Hi , I'm trying to to deploy hyperledger calliper for my existing Fabric Network version 2.3, However I'm getting the following error.
caliper_2.2 | + fabric-ca-client@2.2.3
caliper_2.2 | added 187 packages from 168 contributors in 52.942s
caliper_2.2 | 2021.07.08-19:55:01.981 info [caliper] [cli-launch-manager] Set workspace path: /hyperledger/caliper/workspace
caliper_2.2 | 2021.07.08-19:55:01.981 info [caliper] [cli-launch-manager] Set benchmark configuration path: /hyperledger/caliper/workspace/benchmarks/myAssetBenchmark.yml
caliper_2.2 | 2021.07.08-19:55:01.981 info [caliper] [cli-launch-manager] Set network configuration path: /hyperledger/caliper/workspace/networks/networkConfig.yml
caliper_2.2 | 2021.07.08-19:55:01.982 info [caliper] [cli-launch-manager] Set SUT type: fabric
caliper_2.2 | 2021.07.08-19:55:02.025 info [caliper] [benchmark-validator] No observer specified, will default to `none`
caliper_2.2 | 2021.07.08-19:55:02.025 info [caliper] [caliper-engine] Starting benchmark flow
caliper_2.2 | 2021.07.08-19:55:02.670 info [caliper] [fabric-connector] Initializing gateway connector compatible with installed SDK: 2.2.3
caliper_2.2 | 2021.07.08-19:55:02.701 info [caliper] [IdentityManager] Adding user-org2 (admin=false) as user-org2 for organization org2MSP
caliper_2.2 | 2021.07.08-19:55:02.704 info [caliper] [caliper-engine] Network configuration attribute "caliper.command.start" is not present, skipping start command
caliper_2.2 | 2021.07.08-19:55:02.708 error [caliper] [caliper-engine] Error while performing "init" step: TypeError: this.connectorConfiguration.getConnectionProfileDefinitionForOrganization(...).isTLSEnabled is not a function
caliper_2.2 | 2021.07.08-19:55:02.709 info [caliper] [caliper-engine] Executed "init" step in 0.004 seconds
caliper_2.2 | 2021.07.08-19:55:02.709 info [caliper] [caliper-engine] Network configuration attribute "caliper.command.end" is not present, skipping end command
caliper_2.2 | 2021.07.08-19:55:02.709 error [caliper] [cli-launch-manager] Benchmark failed with error code 4
caliper_2.2 | Usage:
caliper_2.2 | caliper launch manager --caliper-bind-sut fabric:1.4 [other options]
caliper_2.2 |
caliper_2.2 | Options:
caliper_2.2 | --help, -h Show usage information [boolean]
caliper_2.2 | --version Show version information [boolean]
caliper_2.2 | --caliper-bind-sut The name and version of the platform to bind to [string]
caliper_2.2 | --caliper-bind-cwd The working directory for performing the SDK install [string]
caliper_2.2 | --caliper-bind-args Additional arguments to pass to "npm install". Use the "=" notation when setting this parameter [string]
caliper_2.2 | --caliper-bind-file Yaml file to override default (supported) package versions when binding an SDK [string]
caliper_2.2 |
caliper_2.2 | Error: Benchmark failed with error code 4
caliper_2.2 | at Function.handler (/home/node/.npm-global/lib/node_modules/@hyperledger/caliper-cli/lib/launch/lib/launchManager.js:70:23)
caliper_2.2 exited with code 1.
Any help is appreciated.
Thanks
What does your network config file look like ?
It's a bug in the init flow using the new connector format. You should be able to get around it by specifying `--caliper-flow-skip-init` or by specifying `--caliper-flow-only-test`. With an SUT of 2.2 and the new connector format, the init phase doesn't do anything
Has joined the channel.
Has joined the channel.
hello, can any maintainer take a look at https://github.com/hyperledger/caliper/issues/1149 ?
What is the difference between the Send Rate (TPS) statistic and Throughput (TPS) ?
I am getting the same value so I don't understand where they differ?
Sorry for the late reply, I've added some remarks to the above issue.
The send rate is the number of transactions per second Caliper sends towards the backend system (so the input rate of the SUT). The throughput is the number of transactions per second Caliper receives a successful confirmation from the backend system (so the successful output rate of the SUT).
If the two are equal, that means that the SUT can handle the given sending/input rate without any problems.
The send rate is the number of transactions per second Caliper sends towards the backend system (so the input rate of the SUT). The throughput is the number of transactions per second Caliper receives a successful confirmation for from the backend system (so the successful output rate of the SUT).
If the two are equal, that means that the SUT can handle the given sending/input rate without any problems.
Thank you for your answer!
What can I do for the SUT to fail some transactions?
But sometimes even without failed transactions the send rate is not equal to the troughput?
But sometimes even without failed transactions the send rate is not equal to the troughput
Are the unfinished transactions the ones responsible for that difference?
Yes. Sending transactions is easy, processing them on the SUT side is not, it's more time. Even if you can send 100 TXs per second, the SUT might be able to process only 50 TXs per second, depending on its configuration. While the processing time is under the timeout threshold for transactions, you won't see failed transactions just because processing is slower. When you really overload the SUT with transactions, then you will start seeing timeout errors.
In case of timeout erros, I will start seeing some failed transactions, right?
Yes. However, there are different kind/sources of timeouts, depending on the SUT. For Fabric, the timeout can occur in the peer, on in Caliper, waiting for endorsement and/or ordering.
Right
How can I force the failed transactions?
Tweaking the `transactionLoad` parameter?
Depends on what you want to achieve. You could increase the different timeout values to allow more time for processing. Or you could scale your SUT to gain more processing power. Or you could lower the transaction load to decrease the stress on the SUT.
The transaction load sets how many transactions at most will be buffered before the SUT starts discarting them, right?
The transaction load sets how many transactions at most will be buffered before the SUT starts discarding them, right?
Is that a Fabric peer setting? I'm not familiar with it
Yes
I can't find it anywhere in the peer's core.yaml setting file, can you pinpoint its location please?
recently I don't have enough time to verify the reply in this issue. will update later on github.
Thanks it worked
Hi Team, While I was trying to use calliper with new fabric connector and CALIPER_BIND_SUT=fabric:2.2, While running the test with user from org2, I'm getting the bellow error
aliper_2.2 | 2021-07-29T06:50:02.084Z - error: [DiscoveryService]: send[mychannel] - Channel:mychannel received discovery error:access denied
caliper_2.2 | 2021.07.29-06:50:02.085 warn [caliper] [connectors/v2/FabricGateway] Couldn't initialize mychannel for user-org2. user-org2 not available for use on this channel. Error: DiscoveryService: mychannel error: access denied
caliper_2.2 | 2021-07-29T06:50:02.084Z - error: [DiscoveryService]: send[mychannel] - Channel:mychannel received discovery error:access denied
caliper_2.2 | 2021.07.29-06:50:02.085 warn [caliper] [connectors/v2/FabricGateway] Couldn't initialize mychannel for user-org2. user-org2 not available for use on this channel. Error: DiscoveryService: mychannel error: access denied
caliper_2.2 | 2021-07-29T06:50:02.095Z - error: [DiscoveryService]: send[mychannel] - Channel:mychannel received discovery error:access denied
caliper_2.2 | 2021.07.29-06:50:02.095 info [caliper] [caliper-worker] Worker [0] encountered an error during prepare test phase for round 0: Error: DiscoveryService: mychannel error: access denied
caliper_2.2 | at DiscoveryService.send (/home/node/.npm-global/lib/node_modules/fabric-network/node_modules/fabric-common/lib/DiscoveryService.js:345:11)
After looking at the peer1-org2 which is here an endorsing peer, I go this error
2021-07-29 06:47:46.651 UTC [kvledger] commit -> INFO 052 [mychannel] Committed block [4] with 1 transaction(s) in 4ms (state_validation=0ms block_and_pvtdata_commit=2ms state_commit=0ms) commitHash=[c6b8940c82729ba0b69fc8a8d4efb1002a1087cccd371084824cc541092a5e8d]
2021-07-29 06:50:02.077 UTC [discovery] processQuery -> WARN 053 got query for channel mychannel from 172.18.0.14:33498 but it isn't eligible: implicit policy evaluation failed - 0 sub-policies were satisfied, but this policy requires 1 of the 'Writers' sub-policies to be satisfied
2021-07-29 06:50:02.077 UTC [discovery] processQuery -> WARN 054 got query for channel mychannel from 172.18.0.14:33498 but it isn't eligible: implicit policy evaluation failed - 0 sub-policies were satisfied, but this policy requires 1 of the 'Writers' sub-policies to be satisfied
2021-07-29 06:50:02.077 UTC [comm.grpc.server] 1 -> INFO 055 unary call completed grpc.service=discovery.Discovery grpc.method=Discover grpc.peer_address=172.18.0.14:33498 grpc.peer_subject="CN=user-org2,OU=user,O=Hyperledger,ST=North Carolina,C=US" grpc.code=OK grpc.call_duration=1.137997ms
After looking at the logs I came to know that user-org2 doesn't have right access to the the channe so i upate my configtx.yaml
But still I'm getting the same error [DiscoveryService]: send[mychannel] - Channel:mychannel received discovery error:access denied
caliper_2.2 | 2021.07.29-06:50:02.085 warn [caliper] [connectors/v2/FabricGateway] Couldn't initialize mychannel for user-org2. user-org2 not available for use on this channel. Error: DiscoveryService: mychannel error: access denied
Hi Team, @davidkel While I was trying to use calliper with new fabric connector and CALIPER_BIND_SUT=fabric:2.2, While running the test with user from org2, I'm getting the bellow error
aliper_2.2 | 2021-07-29T06:50:02.084Z - error: [DiscoveryService]: send[mychannel] - Channel:mychannel received discovery error:access denied
caliper_2.2 | 2021.07.29-06:50:02.085 warn [caliper] [connectors/v2/FabricGateway] Couldn't initialize mychannel for user-org2. user-org2 not available for use on this channel. Error: DiscoveryService: mychannel error: access denied
caliper_2.2 | 2021-07-29T06:50:02.084Z - error: [DiscoveryService]: send[mychannel] - Channel:mychannel received discovery error:access denied
caliper_2.2 | 2021.07.29-06:50:02.085 warn [caliper] [connectors/v2/FabricGateway] Couldn't initialize mychannel for user-org2. user-org2 not available for use on this channel. Error: DiscoveryService: mychannel error: access denied
caliper_2.2 | 2021-07-29T06:50:02.095Z - error: [DiscoveryService]: send[mychannel] - Channel:mychannel received discovery error:access denied
caliper_2.2 | 2021.07.29-06:50:02.095 info [caliper] [caliper-worker] Worker [0] encountered an error during prepare test phase for round 0: Error: DiscoveryService: mychannel error: access denied
caliper_2.2 | at DiscoveryService.send (/home/node/.npm-global/lib/node_modules/fabric-network/node_modules/fabric-common/lib/DiscoveryService.js:345:11)
After looking at the peer1-org2 which is here an endorsing peer, I go this error
2021-07-29 06:47:46.651 UTC [kvledger] commit -> INFO 052 [mychannel] Committed block [4] with 1 transaction(s) in 4ms (state_validation=0ms block_and_pvtdata_commit=2ms state_commit=0ms) commitHash=[c6b8940c82729ba0b69fc8a8d4efb1002a1087cccd371084824cc541092a5e8d]
2021-07-29 06:50:02.077 UTC [discovery] processQuery -> WARN 053 got query for channel mychannel from 172.18.0.14:33498 but it isn't eligible: implicit policy evaluation failed - 0 sub-policies were satisfied, but this policy requires 1 of the 'Writers' sub-policies to be satisfied
2021-07-29 06:50:02.077 UTC [discovery] processQuery -> WARN 054 got query for channel mychannel from 172.18.0.14:33498 but it isn't eligible: implicit policy evaluation failed - 0 sub-policies were satisfied, but this policy requires 1 of the 'Writers' sub-policies to be satisfied
2021-07-29 06:50:02.077 UTC [comm.grpc.server] 1 -> INFO 055 unary call completed grpc.service=discovery.Discovery grpc.method=Discover grpc.peer_address=172.18.0.14:33498 grpc.peer_subject="CN=user-org2,OU=user,O=Hyperledger,ST=North Carolina,C=US" grpc.code=OK grpc.call_duration=1.137997ms
After looking at the logs I came to know that user-org2 doesn't have right access to the the channe so i upate my configtx.yaml
But still I'm getting the same error [DiscoveryService]: send[mychannel] - Channel:mychannel received discovery error:access denied
caliper_2.2 | 2021.07.29-06:50:02.085 warn [caliper] [connectors/v2/FabricGateway] Couldn't initialize mychannel for user-org2. user-org2 not available for use on this channel. Error: DiscoveryService: mychannel error: access denied
idiota101 - Thu Jul 29 2021 12:40:12 GMT+0530 (India Standard Time).txt
I'd suggest setting the peer log level to debug to see what is the expected policy and what was received. And double-check you policy settings. Can you run any operational queries with the same client using the Fabric peer CLI? (Just to further locate the source of error: policy settings or Caliper.)
https://github.com/SamYuan1990/Probe probe now supports testing fabric network with caliper as test harmer now. :-)
https://github.com/SamYuan1990/Probe probe now supports testing fabric network with caliper as test harmer now. :-)
Probe is a tool with UI to investigate how some fabric block output parameters influence fabric network performance.
Has joined the channel.
how can we use caliper with IBM Blockchain Platform
Has joined the channel.
Has joined the channel.
Hello, i am trying to run a benchmark with Caliper on multiple channels but i have kind of hit a wall. I am able to run the benchmark on a single-channel network, however when i add other channels to the my network yaml file, i get the following error "2021-08-11T22:00:09.668Z - error: [DiscoveryService]: send[mychannel1] - Channel:mychannel1 received discovery error:access denied
2021.08.11-22:00:09.668 warn [caliper] [connectors/v2/FabricGateway] Couldn't initialize mychannel1 for _Org3MSP_User1. _Org3MSP_User1 not available for use on this channel. Error: DiscoveryService: mychannel1 error: access denied" . This is happening because Caliper is trying to use Users from Orgs that are not members of this channel. Did i miss something from the Documentation or is benchmarking multiple channels currently not supported? i would be very grateful for any advice.
caliper as part of it's initalisation builds a cache of gateways for each identity then attempts to build a set of contracts objects for each gateway against each defined channel and chaincode id which is why you see this warning. It does all this at initialisation so as not to include any overhead when running the workloads.
These warnings shouldn't stop caliper initialising.
You need to make sure you include identities in your network config that are permitted for that channel and select that identity when you submit transactions for that channel as part of your invoke settings for your workload. Otherwise caliper just selects the first identity in the first org defined in the network config to use
caliper as part of it's initalisation builds a cache of gateways for each identity then attempts to build a set of contracts objects for each gateway against each defined channel and chaincode id which is why you see this warning. It does all this at initialisation so as not to include any overhead when running the workloads.
These warnings shouldn't stop caliper initialising.
You need to make sure you include identities in your network config that are permitted for that channel and select that identity (or select the mspId and caliper will choose the first identity for that mspId) when you submit transactions for that channel as part of your invoke settings for your workload. Otherwise caliper just selects the first identity in the first org defined in the network config to use
Thank you so much for the detailed reply @davidkel i will double check everything then :)
[ ](https://chat.hyperledger.org/channel/caliper?msg=z9guNNC8emYDvaPF3) Create a file "caliper.yaml" and place it in the root folder of your benchmark, or wherever you are running the commands.
In the file,
```yaml
caliper:
fabric:
gateway:
localhost: false
enabled: true
```
The command would look something like
```sh
npx caliper launch manager \
--caliper-workspace . \
--caliper-benchconfig benchmarks/config.yaml \
--caliper-networkconfig networks/networkConfig.yaml --caliper-flow-only-test --caliper-fabric-gateway-usegateway
```
In the network configurations,
it is sufficient to to define the following under organisations:
```yaml
organizations:
- mspid: Org1MSP
identities:
wallet:
path: 'networks/Wallet'
adminNames:
- Org1Admin
connectionProfile:
path: 'networks/connection.json'
discover: true
```
I assume you import the wallet and the connection profile and place them accordingly as per the paths defined above.
Hope this helps
Ali Alzubaidi
[ ](https://chat.hyperledger.org/channel/caliper?msg=z9guNNC8emYDvaPF3) Create a file "caliper.yaml" and place it in the root folder of your benchmark, or wherever you are running the commands.
In the file,
```yaml
caliper:
fabric:
gateway:
localhost: false
enabled: true
```
The command would look something like
```shell
npx caliper launch manager \
--caliper-workspace . \
--caliper-benchconfig benchmarks/config.yaml \
--caliper-networkconfig networks/networkConfig.yaml --caliper-flow-only-test --caliper-fabric-gateway-usegateway
```
In the network configurations,
it is sufficient to to define the following under organisations:
```yaml
organizations:
- mspid: Org1MSP
identities:
wallet:
path: 'networks/Wallet'
adminNames:
- Org1Admin
connectionProfile:
path: 'networks/connection.json'
discover: true
```
I assume you import the wallet and the connection profile and place them accordingly as per the paths defined above.
Hope this helps
Ali Alzubaidi
Has joined the channel.
Hi Folks,
Clipboard - August 18, 2021 7:15 PM
Hi Folks
I want to run a sample test for the Hyperledger fabric platform which I already installed....I have caliper-benchmarks also installed but I am unable to run any sample test using caliper for my fabric network....tried various ways but not able to do it....please let me know if anybody can help me with this...
what files I need to create in which folder and with what details....
Attached are the folder details
I recommend you to go through the tutorial in this link: https://hyperledger.github.io/caliper/v0.4.2/fabric-tutorial/tutorials-fabric-existing/
How can we use caliper with IBP network for Golang chaincode
I followed this link and created all the folders and made the fabric network up.
I followed this tutorial created all the folders and files as per the tutorial and made the fabric network up.
But when I am running below command to generate a report I am getting below error even though i have kept the benchmark file in that folder already:
Error: Benchmark configuration file "/home/docker-pack/fabric-samples/caliper-workspace/benchmarks/benchmarks/myAssetBenchmark.yaml" does not exist
at Function.assertConfigurationFilePaths (/home/docker-pack/fabric-samples/caliper-workspace/node_modules/@hyperledger/caliper-core/lib/common/utils/caliper-utils.js:69:19)
at Function.handler (/home/docker-pack/fabric-samples/caliper-workspace/node_modules/@hyperledger/caliper-cli/lib/launch/lib/launchManager.js:32:22)
at Object.module.exports.handler (/home/docker-pack/fabric-samples/caliper-workspace/node_modules/@hyperledger/caliper-cli/lib/launch/launchManagerCommand.js:46:44)
at Object.runCommand (/home/docker-pack/fabric-samples/caliper-workspace/node_modules/yargs/lib/command.js:240:40)
at Object.parseArgs [as _parseArgs] (/home/docker-pack/fabric-samples/caliper-workspace/node_modules/yargs/yargs.js:1154:41)
at Object.runCommand (/home/docker-pack/fabric-samples/caliper-workspace/node_modules/yargs/lib/command.js:198:30)
at Object.parseArgs [as _parseArgs] (/home/docker-pack/fabric-samples/caliper-workspace/node_modules/yargs/yargs.js:1154:41)
at Object.get [as argv] (/home/docker-pack/fabric-samples/caliper-workspace/node_modules/yargs/yargs.js:1088:21)
at Object.
The command:
npx caliper launch manager --caliper-workspace ./ --caliper-networkconfig networks/networkConfig.yaml --caliper-benchconfig benchmarks/myAssetBenchmark.yaml --caliper-flow-only-test --caliper-fabric-gateway-enabled
Error: path property does not point to a file that exists for clientSignedCert for name User1 in organization Org1MSP
at IdentityManager._extractPEMFromPath (/home/docker-pack/fabric-samples/caliper-workspace/node_modules/@hyperledger/caliper-fabric/lib/identity-management/IdentityManager.js:324:23):
How to resolve this issue
Below is the code:
/**
* Extract the PEM from the file pointed to by the path
*
* @param {string} pathToPEMFile The path to the file containing the PEM information
* @param {string} propertyNameBeingProcessed A string of the provided property
* @param {string} identityName The name associated with this identity
* @param {string} mspId mspId of the organisation
* @returns {Promise
not able to find the path of the file stored in the variable: pathToPEMFile
please help
Hello, im trying to run a benchmark with multiple channels and im getting this error : "Error: fabcar has already been defined in the configuration". i have deployed fabcar on multiple channels and i am trying to run a benchmark on these channels. This error happens due to my network config having the chaincode fabcar defined under multiple channels. Is it from caliper's view not allowed for the same chaincode to have the same name on multiple channels or did i miss something? Here are the channel definitions in my network config, i would be very grateful for any suggestions : ```
channels:
- channelName: mychannel1
created: true
contracts:
- id: fabcar
contractID: fabcar1
peers:
- peer0.org1.example.com
- peer0.org2.example.com
- channelName: mychannel2
created: true
contracts:
- id: fabcar
contractID: fabcar2
peers:
- peer0.org1.example.com
- peer0.org3.example.com
- channelName: mychannel8
created: true
contracts:
- id: fabcar
contractID: fabcar3
peers:
- peer0.org2.example.com
- peer0.org3.example.com
```
Hi everyone, I started multiple-round benchmark simulation with 8 workers, but I got randomly stuck in one of the rounds. For example: worker 1 and worker 5 still send transaction even though other worker already stop in figure bellow.
Hi everyone, I started multiple-round benchmark simulation with 8 workers, but I got randomly stuck in one of the rounds. For example: worker 1 and worker 5 still send transaction even though other worker already stopped in figure bellow.
Hi everyone, I started multiple-round benchmark simulation with 8 workers, but I got randomly stuck in one of the rounds. For example: worker 1 and worker 5 still send transaction even though other worker already stopped in figure bellow. The same issue when using Empty Contract invoke transaction.
Clipboard - August 26, 2021 3:42 PM
Does anyone have any suggestion ?
Has joined the channel.
Hello, I'm a newbie to use hlf and caliper. I got a error when using the caliper.
Error like -> error [caliper] [connectors/v2/FabricGateway] Failed to perform submit transaction [InsertRequest] using arguments [a,b,c,d,e,f], with error: Error: No endorsement plan available
Anyone can help me?
Has joined the channel.
I am a new to user hype ledger and caliper . I got the following error why I try to launch the manager
error [caliper] [cli-launch-manager] Unexpected error during benchmark execution: Error: Module "fabric-network" could not be loaded: Error: Cannot find module 'long'
I am a new to caliper
I would like to benchmark my network
Fabric sdk 2.1
Caliper 0.4.0
Once I launch master command it showed me the following error
error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Calling enrollment endpoint failed with error [Error: Client network socket disconnected before secure TLS connection was established], stack=Error: Calling enrollment endpoint failed with error [Error: Client network socket disconnected before secure TLS connection was established]
Has joined the channel.
Has joined the channel.
Hey Caliper team. I am trying to build caliper from source as starting point to extended benchmarking facilities for besu private transaction. But I can't get the build process run through. I tried a couple of node versions (8, 12, 14) but they all fail for various reasons. I usually would work out the correct version by starting from the CI process. But the travis link on the repository leads to nowhere--or is it just private? Is there an publicly available CI system for caliper that I could use to figure out some known good versions for software to get caliper build?
Hey Caliper team. I am trying to build caliper from source as starting point to extended benchmarking facilities for besu private transactions. But I can't get the build process to run through. I tried a couple of node versions (8, 12, 14) but they all fail for various reasons. I usually would work out the correct version by starting from the CI process. But the travis link on the repository leads to nowhere--or is it just private? Is there an publicly available CI system for caliper that I could use to figure out some known good versions for software to get caliper build?
I think hyperledger stopped using travis and moved to azure pipelines but now it seems that may go away and it could be github actions, Hopefully caliper will get going again very soon and catching up with the infrastructure changes
I think hyperledger stopped using travis and moved to azure pipelines (and so caliper has moved to azure pipelines too) there could a plan to move to github actions in the future
So check out https://github.com/hyperledger/caliper/blob/master/azure-pipelines.yml for how the build works, however because the build hasn't been run for a while there could be build failures that need to be fixed
Has joined the channel.
Has joined the channel.
Hi Everyone!
How can I setup hyperledger caliper for ethereum? Can anyone guide me?
https://ethereum.stackexchange.com/questions/109829/caliper-integration-with-local-ethereum-network-giving-json-path-error
I'm facing this issue.
I just added a PR to make onchain privacy groups a bit more usable: https://github.com/hyperledger/caliper/pull/1156. The only box I did not tick yet is documentation. The existing private transaction support is scarcely documented, so I was not sure where to add documentation. As far as I am concerned the integration tests are a sufficient place to glean how privacy groups in caliper work. I did maintain that level of documentation but am of course open to suggestions to improve it further.
Has joined the channel.
Have you check that your network config is picked up by caliper (e.g. insert invalid json and make sure it fails) and that the path is correct? As far as I see the configuration looks valid--that is, assuming all the parts not posted are in order.
I thinks it.means that you have no interface field in the JSON object which the string compiledFactory is parsed into. Print it (or simply open the file which you read it from), and find out what fields you have there, and which one of them represents a legal ABI.
I opened another PR that fixes a problem we had with the duration not being honoured in fixed duration rounds: https://github.com/hyperledger/caliper/pull/1162. But it looks like that CI is broken. For both of my PRs it fails at the same very unrelated place (https://github.com/hyperledger/caliper/pull/1162#partial-pull-merging) that shows problems when running locally. Any chance this is bitrot of the CI pipeline?
Yes, the build process is currently broken
Has joined the channel.
Has joined the channel.
Hello everyone, I have some experience working on besu and already have an existing besu network where each node is running in a docker container. It has 4 nodes and one of them is a bootnode. To be noted websocket is enabled in that besu network.
I am completely new to caliper, and I want to start testing using it in that existing besu network. I have tried to follow caliper docs : https://hyperledger.github.io/caliper/v0.4.2/
It seems the doc is targeted for hyperledger fabric and got little info about besu ("Ethereum" under connector configuration). Can anyone please help me from where to start?
I will be grateful if anyone can provide me any easier ( :sweat_smile: ) doc which targets besu
Thanks in advance
Finally I am able to configure caliper for besu. Feel free to knock me if anyone needs any help regarding starting of caliper on an existing besu network. To be noted, I may not be able to solve or understand all errors, I am still a newbie. I will try to write a doc on it and once I finish I will share it. Thank you @klenik for providing the caliper-tests-integration github link in one comment reply in this chat as a reference to start caliper on besu. I am pasting the link here as well: https://github.com/hyperledger/caliper/tree/main/packages/caliper-tests-integration
@iffathossain You're welcome :) If you feel like writing some documentation, you could extend the Caliper-Besu page with a FAQ section, or elaborate on descriptions you feel insufficient :)
You'd need to extend the following doc file on the gh-pages branch: https://github.com/hyperledger/caliper/blob/gh-pages/docs/vNext/Ethereum_Configuration.md
Let me know if you need any guidance!
Has joined the channel.
Hello everyone, I am new to Caliper and working on benchmarking an existing deployment and had a question. Is it possible to override the IP addresses for discovered nodes using dynamic connection profiles? I am running a modified version of test network (2 orgs with 2 peers each, 5 orderers raft with `asset-transfer-basic` installed and working) deployed multi-host across 4 machines (docker swarm) and am having trouble connecting my caliper instance. I followed the docs and had no issues benchmarking a local deployment of test network. However, when I use discovery with my profile, I receive connection timeout errors for the nodes running on other machines (I am running Caliper on the primary host, which is also running 2 orders and a peer). In the error, the url is always grpcs://localhost:xxxx which seems to be the issue because I am not running a purely localhost setup. However, I am unsure of how to rectify this after much searching and reading of the documents. For full disclosure I have already tried multiple times to write static connection profiles and turn off discovery, but all of my static profile attempts yield errors like _No valid responses from any peers_ or _failed to commit transaction %undefined, order response status: UNKNOWN_, which leads me to believe the hardcoded addresses in the static profile are also not working. If anyone can help point me in the right direction it would be much appreciated and I can provide any of the profile code if needed.
Hello everyone, I am new to Caliper and working on benchmarking an existing deployment and had a question. Is it possible to override the IP addresses for discovered nodes using dynamic connection profiles? I am running a modified version of test network (2 orgs with 2 peers each, 5 orderers raft with `asset-transfer-basic` installed and working) deployed multi-host across 4 machines (docker swarm) and am having trouble connecting my caliper instance. I followed the docs and had no issues benchmarking a local deployment of test network. However, when I use discovery with my profile, I receive connection timeout errors for the nodes running on other machines (I am running Caliper on the primary host, which is also running 2 orders and a peer). In the error, the url is always grpcs://localhost:xxxx which seems to be the issue because I am not running a purely localhost setup. However, I am unsure of how to rectify this after much searching and reading of the documents. For full disclosure I have already tried multiple times to write static connection profiles and turn off discovery, but all of my static profile attempts yield errors like _No valid responses from any peers_ or _failed to commit transaction %undefined, order response status: UNKNOWN_, which leads me to believe the hardcoded addresses in the static profile are also not working. If anyone can help point me in the right direction it would be much appreciated as the issue seems relatively easy to resolve and clear but I must be missing something fundamental.
To stop the node sdk (used by caliper) annoyingly by default converting discovered nodes host names to localhost, take a look at https://hyperledger.github.io/caliper/v0.4.2/fabric-config/new/
And specifically under runtime settings. It's the `caliper-fabric-gateway-localhost` flag you need to set to false or have your own config settings
Thank you for this link and your advice, this seems like exactly what I need.
Has joined the channel.
Hi, I have a problem with running my benchmark test, I get the following error ```
Error: Unable to detect required Fabric binding packages
at new Fabric (/usr/local/lib/node_modules/@hyperledger/caliper-cli/node_modules/@hyperledger/caliper-fabric/lib/fabric.js:42:19)
at CaliperEngine.adapterFactory (/usr/local/lib/node_modules/@hyperledger/caliper-cli/node_modules/@hyperledger/caliper-fabric/lib/adapterFactory.js:26:21)
at CaliperEngine.run (/usr/local/lib/node_modules/@hyperledger/caliper-cli/node_modules/@hyperledger/caliper-core/lib/master/caliper-engine.js:94:34)
at Function.handler (/usr/local/lib/node_modules/@hyperledger/caliper-cli/lib/launch/lib/launchMaster.js:62:43)
at Object.module.exports.handler (/usr/local/lib/node_modules/@hyperledger/caliper-cli/lib/launch/launchMasterCommand.js:46:43)
at Object.runCommand (/usr/local/lib/node_modules/@hyperledger/caliper-cli/node_modules/yargs/lib/command.js:240:40)
at Object.parseArgs [as _parseArgs] (/usr/local/lib/node_modules/@hyperledger/caliper-cli/node_modules/yargs/yargs.js:1154:41)
at Object.runCommand (/usr/local/lib/node_modules/@hyperledger/caliper-cli/node_modules/yargs/lib/command.js:198:30)
at Object.parseArgs [as _parseArgs] (/usr/local/lib/node_modules/@hyperledger/caliper-cli/node_modules/yargs/yargs.js:1154:41)
at Object.get [as argv] (/usr/local/lib/node_modules/@hyperledger/caliper-cli/node_modules/yargs/yargs.js:1088:21)
```
I also get this : `Unexpected error during benchmark execution: ValidationError: child "clients" fails because ["clients" is required]. child "channels" fails because ["channels" must be an object]. child "organizations" fails because ["organizations" must be an object]. child "orderers" fails because ["orderers" is required]. child "peers" fails because ["peers" is required]`
@GergelyLengyel The first error indicates that you didn't run a bind command before executing your benchmark (https://hyperledger.github.io/caliper/v0.4.2/installing-caliper/#the-bind-command)
The second error states that every element of your network configuration file is wrong. Based on which Fabric connector you use, the schema of the network configuration file differs a bit (for the new connector: https://hyperledger.github.io/caliper/v0.4.2/fabric-config/new/)
To get a high-level overview about the above concepts (binding, network configuration, etc), I'd recommend reading the architecture documentation: https://hyperledger.github.io/caliper/v0.4.2/architecture/
I basically copied the network config , benchmark config and workload.js files from the fabric-caliper tutorial
Did you run the bind command during step 1? (`npx caliper bind --caliper-bind-sut fabric:2.2`)
And ensure that everything is in its correct path/file, as required by step 5
Error: Unknown "fabric" SDK version "2.2" - only version 2.1 works for some reason
But i get som errors during the bind execution
`gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/root/caliper-benchmarks/node_modules/pkcs11js/build'
gyp ERR! System Linux 5.11.0-37-generic
gyp ERR! command "/usr/bin/node" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /root/caliper-benchmarks/node_modules/pkcs11js
gyp ERR! node -v v10.19.0
gyp ERR! node-gyp -v v6.1.0
gyp ERR! not ok
`
Which Caliper version are you using? v0.4.2 contains a binding configuration for the 2.2 Fabric SDK (https://github.com/hyperledger/caliper/blob/v0.4.2/packages/caliper-cli/lib/lib/config.yaml#L55)
Also, don't install and bind Caliper as root user, npm doesn't like that
okay, I managed to install the right versions with 2.2 SDK but I still get the errors for the network config file
`name: 'ValidationError',
details:
[ { message: '"clients" must be an object',
path: [Array],
type: 'object.base',
context: [Object] },
{ message: '"channels" must be an object',
path: [Array],
type: 'object.base',
context: [Object] },
{ message: '"organizations" must be an object',
path: [Array],
type: 'object.base',
context: [Object] },
{ message: '"orderers" must be an object',
path: [Array],
type: 'object.base',
context: [Object] },
{ message: '"peers" must be an object',
path: [Array],
type: 'object.base',
context: [Object] } ],
`
However there absolutely no mention about peers,orderers and clients in the tutorial and the channels and organizations are defined as arrays there
so I have absolutely no idea how to change it
What is version number in the network configuration file?
1.0
i cant write 2.0 because that also throws an error that its unkown
oh wait
they want 2.0.0
2.0 (or 2.0.0) should be okay
(Hmm, I guess semver takes the missing patch version seriously: https://github.com/hyperledger/caliper/blob/v0.4.2/packages/caliper-fabric/lib/FabricConnectorFactory.js#L113)
thank you for the help
im doing my masters thesis right now so thanks a lot
No problem, good luck for your thesis :four_leaf_clover:
I'm here again :D :(
I have this error when caliper tries to create assets: ```
error: [Transaction]: Error: No valid responses from any peers. Errors:
peer=peer0.org1.example.com:7051, status=500, message=error in simulation: failed to execute transaction 68450f118f04147183cad600c91e93aaa406abb9ad50e9d2c02d1defffde4e75: could not launch chaincode sensors_1.0:f1fc20f711a376ddaa6c0897c05c6242b9c4b8e1ed91b269ffd4a2cc189a7533: error starting container: error starting container: API error (400): failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "chaincode": executable file not found in $PATH: unknown
peer=peer0.org2.example.com:9051, status=500, message=error in simulation: failed to execute transaction 68450f118f04147183cad600c91e93aaa406abb9ad50e9d2c02d1defffde4e75: could not launch chaincode sensors_1.0:f1fc20f711a376ddaa6c0897c05c6242b9c4b8e1ed91b269ffd4a2cc189a7533: error starting container: error starting container: API error (400): failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "chaincode": executable file not found in $PATH: unknown
2021.10.05-12:43:38.245 error [caliper] [connectors/v2/FabricGateway] Failed to perform submit transaction [CreateAsset] using arguments [0_0,blue,20,penguin,500], with error: Error: No valid responses from any peers. Errors:
peer=peer0.org1.example.com:7051, status=500, message=error in simulation: failed to execute transaction 68450f118f04147183cad600c91e93aaa406abb9ad50e9d2c02d1defffde4e75: could not launch chaincode sensors_1.0:f1fc20f711a376ddaa6c0897c05c6242b9c4b8e1ed91b269ffd4a2cc189a7533: error starting container: error starting container: API error (400): failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "chaincode": executable file not found in $PATH: unknown
peer=peer0.org2.example.com:9051, status=500, message=error in simulation: failed to execute transaction 68450f118f04147183cad600c91e93aaa406abb9ad50e9d2c02d1defffde4e75: could not launch chaincode sensors_1.0:f1fc20f711a376ddaa6c0897c05c6242b9c4b8e1ed91b269ffd4a2cc189a7533: error starting container: error starting container: API error (400): failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "chaincode": executable file not found in $PATH: unknown
at newEndorsementError (/home/ubuntu/node_modules/fabric-network/lib/transaction.js:49:12)
at getResponsePayload (/home/ubuntu/node_modules/fabric-network/lib/transaction.js:17:23)
at Transaction.submit (/home/ubuntu/node_modules/fabric-network/lib/transaction.js:212:28)
at process._tickCallback (internal/process/next_tick.js:68:7)
Worker 0: Creating asset 0_1
```
Seems like there was an issue with installing and instantiating the chaincode. If you're using the 2.x SDK, then Caliper won't install/instantiate the chaincode for you (the feature is missing from the SDK itself). You make sure that you correctly installed everything for the network (the tutorial contains the link for the corresponding Fabric docs, and also a quick list of required commands that should work)
Has joined the channel.
Hi, I am planning to deploy a HLF environment on Raspberry Pi and I was curious if anyone tried to create a Hyperledger Caliper docker image compatible with ARM64 devices. Any links to existing images or instructions on how to do that would be greatly appreciated, thanks!
This is the Dockerfile that create the Caliper image: https://github.com/hyperledger/caliper/blob/main/packages/caliper-publish/caliper.Dockerfile
Let us know if you succeed, it's an interesting idea :)
This is the Dockerfile that creates the Caliper image: https://github.com/hyperledger/caliper/blob/main/packages/caliper-publish/caliper.Dockerfile
Let us know if you succeed, it's an interesting idea :)
Many thanks! I just wanted to confirm that I managed to successfully build the Docker image on my Raspberry Pi without any modifications whatsoever.
I need to test it but if the build goes fine then I believe that the execution looks promising as well
Awesome! There's still one thing that could go wrong, the communication between Caliper processes (manager and workers). You should test the following deployment modes: https://hyperledger.github.io/caliper/v0.4.2/architecture/#process-distribution-models
How should I setup the benchmark file to monitor resources on the fabric test-network? Currently I have the following but it gives no result for any resources (CPU, memory....)```
monitors:
resource:
- module: process
options:
interval: 3
processes: [{ command: 'node', arguments: 'caliper.js', multiOutput: 'avg' }]
charting:
bar:
metrics: [all]
```
How should I setup the benchmark file to monitor resources on the fabric test-network? Currently I have the following but it gives no result for any resources (CPU, memory...) I have no idea what should go to the command and arguments fields```
monitors:
resource:
- module: process
options:
interval: 3
processes: [{ command: 'node', arguments: 'caliper.js', multiOutput: 'avg' }]
charting:
bar:
metrics: [all]
```
As it's the fabric-samples test network why not use the docker monitor instead ?
that didnt work either,but i will try it again
I used test network with this and it worked fine
```
monitors:
resource:
- module: docker
options:
interval: 5
containers:
- all
```
I used test network and caliper 0.4.2 with this and it worked fine
```
monitors:
resource:
- module: docker
options:
interval: 5
containers:
- all
```
I used test network and caliper 0.4.2 with this and it worked fine assuming you are running caliper and the network on the same machine
```
monitors:
resource:
- module: docker
options:
interval: 5
containers:
- all
```
I get this error: Could not find any active local containers
Has joined the channel.
Has joined the channel.
Hi .. Can I use Caliper to test the performance of testnet of Fantom?
If it's API is web3js compatible, then you could direct the Ethereum connector to that network. If not, then you need to write your own connector
Hi guys, i'm running "npm i &&npm run repoclean -- --yes && npm run bootstrap" command on caliper and recieve : npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm ERR! code ETARGET
npm ERR! notarget No matching version found for @ethersproject/transactions@^5.5.0.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget
npm ERR! notarget It was specified as a dependency of '@ethersproject/abstract-provider'
npm ERR! notarget
I didn't upgrade or change any thing since few days ago, and it was working yesterday.
npm: 6.14.8
node: v10.13.0
Ubuntu 18.04.5
Does anyone else have this issue?
Maybe a temporary problem with the npm registry ?
Just tried on a clean machine with node 10.24.1 and no problems (unlikely to be the node version based on the error)
Hi David, thanks for replying. I change the node version to node 10.24.1 and still getting error
lerna ERR! npm install --global-style --no-package-lock exited 1 in '@hyperledger/caliper-ethereum'
lerna ERR! npm install --global-style --no-package-lock stderr:
npm WARN deprecated ethereumjs-common@1.5.2: New package name format for new versions: @ethereumjs/common. Please update.
npm WARN deprecated ethereumjs-tx@2.1.2: New package name format for new versions: @ethereumjs/tx. Please update.
npm WARN deprecated uuid@3.3.2: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated cids@0.7.5: This module has been superseded by the multiformats module
npm WARN deprecated multicodec@0.5.7: This module has been superseded by the multiformats module
npm WARN deprecated multicodec@1.0.4: This module has been superseded by the multiformats module
npm WARN deprecated multibase@0.6.1: This module has been superseded by the multiformats module
npm WARN deprecated multibase@0.7.0: This module has been superseded by the multiformats module
npm WARN deprecated mkdirp-promise@5.0.1: This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm ERR! code ETARGET
npm ERR! notarget No matching version found for @ethersproject/bignumber@^5.5.0.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget
npm ERR! notarget It was specified as a dependency of '@ethersproject/abstract-provider'
npm ERR! notarget
I didn't think it would be the node version. Ensure you do a repoclean and delete all package-lock.json files. If you still get the problem try cleaning the npm cache. It could still be a problem with the npm registry that you are using though
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hey guys, I'm trying to run the test on the network I created, which is fully functional, but I'm getting error 6 as a return
Does anyone have any idea where I can start looking for the cause of the error? Along with error 6 I get the following message: " 2021.12.17-18:07:49.191 error [caliper] [caliper-engine] Error while performing "test" step: TypeError: Cannot read property 'hasOwnProperty' of undefined
I´m using a Fabric 2.3 version and caliper 0.4.2
Any help is most welcome. I am really desperate.
@barcellosrod Double check your network and/or benchmark configuration file. The error hints at a missing part of the configuration (hence calling `hasOwnProperty` on an undefined attribute)
Has joined the channel.
Hello ,iffathossain,I am a newbie too,I am trying to test the besu network with caliper(The main goal is to test how much TPS BESU can achieve), just like you did. But it's hard for me to figure out how Caliper sets up for BESU. If you succeed, can you give me some guidance or documentation?I am very grateful for any guidance.
Hi guys, I'm trying to run a project in the https://github.com/hyperledger/caliper/tree/main/packages/caliper-tests-integration/besu_tests ( I just want to use the caliper on besu to figure out the TPS of besu )but there is a error ------error [caliper-engine] Error while performing "install" step: Error: connection not open on send().
Hi guys, I'm trying to run a project in the https://github.com/hyperledger/caliper/tree/main/packages/caliper-tests-integration/besu_tests ( I just want to use the caliper on besu to figure out the TPS of besu )but there is a error ------error [caliper-engine] Error while performing "install" step: Error: connection not open on send().Anyone can help me or give me some instructions. Any assistance you could give me will be greatly appreciated
The Besu node is not ready to accept requests yet. Make sure it started correctly, or wait a little more time between starting the node and starting Caliper
Has joined the channel.
Am facing issue in launching caliper.
ERROR: No peer defined for msp "mspname" to discover from
Getting this error while launching caliper
I have defined the same mspname in network and connection profile files
@neetusharma What is the content of your connection profile? It looks like that you'd like to enable peer discovery (`discovery: true`), but you don't specify an initial "seed" peer in your connection profile file
Can i share related file in this forum
neetusharma - Sat Jan 08 2022 17:07:15 GMT+0530 (India Standard Time).txt
This profile doesn't contain an MSP with the name `mspname`. Is this the network configuration file you pass to Caliper? The yaml content must follow the following schema: https://hyperledger.github.io/caliper/v0.4.2/fabric-config/new/#network-configuration-file-reference
No ihave mentioned the mspname manufacturerMSP in my code
[ ](https://chat.hyperledger.org/channel/caliper?msg=WefHSDr9wK9rLuhjk) Is this the actual error message? Could you include the surrounding logs too please?
@neetusharma The shared error originates from the Fabric SDK that Caliper uses. Make sure the connection profile file (that you reference from the network configuration file) is correctly filled with msp<->peer information
Yes i mentioned the msp information correctly in connection profile
@neetusharma could you post your caliper network config file.
name: Caliper test
version: "2.0.0"
caliper:
blockchain: fabric
channels:
- channelName: pharmachannel
contracts:
- id: pharmanet
organizations:
- mspid: manufacturerMSP
identities:
certificates:
- name: "User1"
clientPrivateKey:
path: "/home/neetu/workspace/pharma-net/network/crypto-config/peerOrganizations/manufacturer.pharma-network.com/users/User1@manufacturer.pharma-network.com/msp/keystore/ceb9610a7e2cd271c23f83f3e3ce61a41c85a79767ed9a5e1923f46b78657c4c_sk"
clientSignedCert:
path: "/home/neetu/workspace/pharma-net/network/crypto-config/peerOrganizations/manufacturer.pharma-network.com/users/User1@manufacturer.pharma-network.com/msp/signcerts/User1@manufacturer.pharma-network.com-cert.pem"
connectionProfile:
path: "/home/neetu/workspace/pharma-net/application/connection-profile/connection-profile-Manufacturer.yaml"
discover: true
Is there any mistake in this code
@neetusharma The contents of the `connection-profile-Manufacturer.yaml` file could still be wrong, can you share that too (substituting sensitive parts if necessary)?
neetusharma - Mon Jan 10 2022 16:49:57 GMT+0530 (India Standard Time).txt
plz go through it
am using fabric 1.4.3 , is this compatible with caliper0.4.2
@neetusharma Try adding `discover: true` to the
@neetusharma Try adding `discover: true` to some channel peers
```yaml
channels:
pharmachannel:
orderers:
- orderer.pharma-network.com
peers:
peer0.manufacturer.pharma-network.com:
endorsingPeer: true
chaincodeQuery: true
ledgerQuery: true
eventSource: true
discover: true
```
@neetusharma that connection profile is a static connection profile and as such doesn't require discovery I would suggest you set discover to `false` in your network config file, however it still doesn't explain where `mspname` comes from in your error message. It doesn't appear in the config files you provided and isn't part of the caliper or fabric-sdk code bases.
I think "mspname" was just a placeholder for the actual MSP name. But yeah, it's misleading
Ya sorry to mention mspname keyword instead of writing actual mspname, I just wrote this to make u understand easily, i din't think about the confusion that it was created. plz check the error in below screenshot
Screenshot from 2021-09-27 16-35-05.png
I had tried to run the code by setting discover to false, but that did'nt work
You get the same error when you set discover to false ? I definitely wouldn't expect to see that error as it will now not attempt discovery
unless specified the default is true anyway so defining all those roles as true is actually redundant. Being able to define and set these roles was also dropped in the v2 node sdk
That's good to know, thanks 😁
The connection profile standard become a real mess in the fabric sdks ;-(
The connection profile standard became a real mess in the fabric sdks ;-(
Thank you very much,I'm sure the node started correctly,and I wait about 120s between starting the node and starting Caliper,but the problem still there.
This is a recent run of the Besu integration test: https://dev.azure.com/Hyperledger/Caliper/_build/results?buildId=46153&view=logs&j=c74ca8ef-3b1c-5897-c7a0-7fd479b31877&t=ac63b0f0-2ddb-5bdf-e9be-1217aa0f104c&l=235
You should see Caliper logs similar to these. Could you please share the exact commands you run? And also the logs of the besu container as soon as it's started (and up to the error, after which it's teared down)?
Sorry for late asking, Actually I was facing some issues related to docker, Now i set only ledger query as true and rest all false. After comment out discover, iget the below attached error. Plz suggest
Screenshot from 2022-01-13 19-59-58.png
@neetusharma "ledgerQuery" means a different thing in this context (querying block data, etc). If you want to call a chaincode function as query, you need to set the "chaincodeQuery" attribute to true. If you also need to invoke read-write functions, then you also need the "endorsingPeer" attribute set to true.
Thank u for your valuable suggestion, No discover issue resolved after adding discover:true in connection profile. Now am getting error-
2022.01.13-19:58:17.738[31m error[39m [caliper] [connectors/v1/FabricGateway] Failed to perform submit transaction [addDrug] using arguments [drugName,serialNo,mfgDate,expDate,companyCRN], with error: Error: No event hubs for strategy. Plz suggest something . I attached the screenshots of caliper logs, workmodule and chaincode function that i want to test
Screenshot from 2022-01-14 18-41-49.png
Screenshot from 2022-01-14 18-53-28.png
Screenshot from 2022-01-14 18-55-34.png
async addDrug(ctx, drugName, serialNo, mfgDate, expDate, companyCRN) {
try {
if (ctx.clientIdentity.getMSPID() != "manufacturerMSP") {
return {
error: "Manufacturer Org can only add drugs on the pharma-network"
};
}
//To create composite key for storing drug asset
const productIDKey = ctx.stub.createCompositeKey(
"org.pharma-network.productIDKey",
[serialNo, drugName]
I have created composite keys based on 2 arguments drug name and serial but am not able to understand that how to pass these two arguments while submitting transaction in caliper workmodule
@neetusharma The event hub could occur because you didn't specify a peer as event source (similarly to your previous errors). I'd suggest setting every peer attribute to true (which is their default value) in the network configuration and connection profile:
```yaml
channels:
pharmachannel:
orderers:
- orderer.pharma-network.com
peers:
peer0.manufacturer.pharma-network.com:
endorsingPeer: true
chaincodeQuery: true
ledgerQuery: true
eventSource: true
```
Or just for one peer, depends on how you want to use your network. But I'd begin with allowing all peers to perform every role, and when that works, then you can restrict peer roles for the SDK if necessary.
@neetusharma The event hub error could occur because you didn't specify a peer as event source (similarly to your previous errors). I'd suggest setting every peer attribute to true (which is their default value) in the network configuration and connection profile:
```yaml
channels:
pharmachannel:
orderers:
- orderer.pharma-network.com
peers:
peer0.manufacturer.pharma-network.com:
endorsingPeer: true
chaincodeQuery: true
ledgerQuery: true
eventSource: true
```
Or just for one peer, depends on how you want to use your network. But I'd begin with allowing all peers to perform every role, and when that works, then you can restrict peer roles for the SDK if necessary.
Thank u for your kind response but eventSouce was set as true but still i got this error
I don't know where can we define event source inside the network configuration of caliper. plz let me know the same
@neetusharma I'd recommend asking around in the #fabric-sdk-node channel, since the error originates from the SDK. They might be pinpoint the reason more quickly
Ok thanks, let me post it on #fabric-sdk-node
Someone has answered that fabric-SDK 1.4 is no longer supported, Is it really true
Plz let me know whether fabric- SDK is supported by caliper or not curretly.
hyperledger fabric 1.4 as well as the client node 1.4, client java/gateway 1.4 and node/java chaincode 1.4 SDKs have reached end of life and are no longer getting new releases. All users of hyperledger fabric should have moved to the current LTS versions which as of now is hyperledger fabric 2.2 and the 2.2 versions of the client and chaincode sdks for node and java
Not sure I understand what you mean by supported. caliper uses the fabric node sdk to interact with a hyperledger fabric network. When you issue a bind you chose the version of the node sdk to be used so as shown in the fabric tutorial `Step 1 - Create a Caliper Workspace` the bind command means that node sdk 2.2 will be used
Not sure I understand what you mean by supported. caliper uses the fabric node sdk to interact with a hyperledger fabric network. When you issue a bind you chose the version of the node sdk to be used so as shown in the fabric tutorial https://hyperledger.github.io/caliper/v0.4.2/fabric-tutorial/tutorials-fabric-existing/ `Step 1 - Create a Caliper Workspace` the bind command means that node sdk 2.2 will be used
Not sure I understand what you mean by supported. caliper uses the fabric node sdk to interact with a hyperledger fabric network. When you issue a bind you chose the version of the node sdk to be used so as shown in the fabric tutorial https://hyperledger.github.io/caliper/v0.4.2/fabric-tutorial/tutorials-fabric-existing/ `Step 1 - Create a Caliper Workspace` that bind command means that node sdk 2.2 will be used
ok thank u for kind information
Has joined the channel.
Hi, is there a link for a tutorial on running caliper with fabcar-golang
There is a caliper tutorial that shows how to use caliper and takes the asset-transfer-basic chaincode as an example. It demonstrates how to take an existing network which has a chaincode deployed and create the caliper assets required to benchmark it. The tutorial can be found here https://hyperledger.github.io/caliper/v0.4.2/fabric-tutorial/tutorials-fabric-existing/
You would need to understand how your network was setup in order to create a network configuration, then you need to have an understanding of the chaincode in order to be able to write your workload modules and then create a benchmark file that utilises your workload
You would need to understand how your network was setup in order to create a network configuration but if you used test-network then the tutorial shows you how to create an appropriate network config file, then you need to have an understanding of the chaincode in order to be able to write your workload modules and then create a benchmark file that utilises your workload
It looks like there are some workload modules available for fabcar here https://github.com/hyperledger/caliper-benchmarks/tree/main/benchmarks/samples/fabric
It looks like there are some workload modules available for fabcar and a benchmark file here https://github.com/hyperledger/caliper-benchmarks/tree/main/benchmarks/samples/fabric
Thank toy for your reply and thank you for the references. All workload examples I found are in javascript. My understanding the caliper supports golang but could not fund any workload examples in go
Oh right, so caliper workloads currently have to be written in Javascript, but can drive chaincode written in any language. There will be the ability to describe workloads declaratively in the future and some work on that has already been done.
Oh right, so caliper workloads currently have to be written in Javascript, but can drive chaincode written in any language. There will be the ability to describe workloads declaratively (ie no code required) in the future and some work on that has already been done.
Great! Thank you for your support.
This time i have followed the link: https://hyperledger.github.io/caliper/v0.4.2/fabric-tutorial/tutorials-fabric-existing/ .Remove all fabric 1.4.3 binaries install fabric 2.2 and caliper0.4.2 using this link. I also copied the network configuration file, benchmark and workmodule file from the same link. But after launching caliper, i didn't get report. plz help me
Screenshot from 2022-01-23 16-50-08.png
Finally the caliper report has been generated, thank u all for your support. What is the meaning of assets key inside the round parameters in the benchmark file
test:
name: basic-contract-benchmark
description: test benchmark
workers:
type: local
number: 2
rounds:
- label: readAsset
description: Read asset benchmark
txDuration: 30
rateControl:
type: fixed-load
opts:
transactionLoad: 1
workload:
module: readAsset.js
arguments:
assets: 1
contractId: basic
Check the workload implementation, it parses and uses the `assets` argument somewhere (based on just the name, it could mean many things)
What was the issue before, I was wondering why caliper looks as though it just terminated after starting the workers without any sort of message
Initially, i had created the readAsset.js file inside the worModule folder, Now i have added it directly inside the caliper-workspace.
Has joined the channel.
Does the command "udo npx caliper launch manager --caliper-workspace ./ --caliper-networkconfig networks/networkConfig.yaml --caliper-benchconfig benchmarks/myAssetBenchmark.yaml --caliper-flow-only-test --caliper-fabric-gateway-enabled
" will also monitor resource cosumption such as cpu, memory etc . I have attached the bencmark file in which i have included the attribute monitor. But after running this command, am getting the report of performance parameters such as throughput latency. Plz let me know what changes i need to do to get the resource monitoring report.
test:
name: basic-contract-benchmark
description: test benchmark
workers:
type: local
number: 1
rounds:
- label: readAsset
description: Read asset benchmark
txDuration: 3
rateControl:
type: fixed-load
opts:
transactionLoad: 1
workload:
module: readAsset.js
arguments:
assets: 1
contractId: basic
monitor:
type:
- docker
docker:
containers:
- all
observer:
type: local
interval: 5
sorry its sudo
Because you have just pasted it without putting 3 back-ticks around it, all the formatting is lost and with yaml, seeing the indentation is vital, however it looks like you haven't defined the monitor correctly. Here is what I use
```
monitors:
resource:
- module: docker
options:
interval: 5
containers:
- all
```
This works for caliper 0.4.2
Thank u for ur response. Now am getting the resouce stats. I also tried to create the chart by introducing charting property within monitor. But i got the tabular report only. plz let me know the issue.
monitors:
resource:
- module: docker
options:
interval: 5
containers:
- all
charting:
bar:
metrics: [Memory(avg), CPU%(avg)]
polar:
metrics: [all]
observer:
type: local
interval: 5
Sorry without you pasting your sample inside of 3 backticks. It's impossible to see what mistakes you might have made.
Sorry without you pasting your sample inside of 3 backticks block. It's impossible to see what mistakes you might have made.
@neetusharma Please use the triple backtick formatting to include your YAML content: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks#fenced-code-blocks
@neetusharma this may help https://github.com/hyperledger/caliper/issues/1126
Ok thanks Davidkel and Klenik, let me try again
Has joined the channel.
Hello guys, quick question: how can I configure constructor arguments for contracts deployed at the beginning of the benchmark? Couldnt find it in the docs...
The contracts can be listed in the config.json file, but I need a way to inject constructor arguments dynamically ( there are few different contracts which depend on each other)
@rejnol93 It may help if you provide more info about which blockchain technology you are using ?
it's besu
hyperledger/besu:21.10.1-graalvm
@rejnol93 Ah ok, sorry my knowledge is for fabric.
@rejnol93 Ah ok, sorry my knowledge is for fabric. Hopefully someone else can provide some insight
is there a difference regarding smart contracts configuration?
@rejnol93 I checked quickly, and it looks like the Ethereum/Besu connector does not support contract arguments during deployment. I suggest that you deploy your contracts independently of Caliper, then provide the necessary contract data (in the network configuration file) for further interaction.
https://hyperledger.github.io/caliper/v0.4.2/ethereum-config/#contract-configuration
Am getting error while making my project network up in fabric 2.2 version. "ERROR: for chaincode Cannot start service chaincode: b'OCI runtime create failed: container_linux.go:367: starting container process caused: exec: "/bin/bash": stat /bin/bash: no such file or directory:" When i was using fabric 1.4.3, i didn't get any error but installation of fabric 2.2 to launch is giving this error. Plz suggest to resolve this issue. Do i need to make any changes in the docker files in which command: \bin\bash is defined for chaincode container.
@neetusharma This does not seems to be a Caliper-related error, since Caliper does not support chaincode deployment for Fabric v2. Please ask around in the #fabric channel or consult the official Fabric docs
@neetusharma This does not seem to be a Caliper-related error, since Caliper does not support chaincode deployment for Fabric v2. Please ask around in the #fabric channel or consult the official Fabric docs
Thank you for your answer, @klenik . Do you know how can I provide the already deployed contract's address to the tests?
Yes u are right, I asked in the #fabric channel but no one has answered yet. I think i need to make changes in my fabric project script that was designed for 1.4.3v to make it compatible with 2.2v
Well, looks like you need an ugly workaround to include such information manually.
1) Skip the contract installation part of the benchmark (`--caliper-flow-skip-install`), otherwise you will run into an error.
2) You must set the following attributes in the network configuration file for your contract (assuming it's named `mycontract`), under the `ethereum.contracts.mycontract` attribute:
2.1) `gas` (object) or `estimateGas` (boolean) attribute, as shown in the documentation (no hack so far)
2.2) `address` attribute, which is the address of your predeployed contract (undocumented, but should work)
2.3) `abi` attribute, as present in the contract definition file (https://hyperledger.github.io/caliper/v0.4.2/ethereum-config/#contract-definition-file). This is the ugly hack, you need to inlcude the ABI directly into the network configuration.
And then you can just reference your contract from the workload module as `mycontract`, as usual
You will be the first to test this workaround, so I'll eagerly await your results :) The Ethereum/Besu connector feature set is pretty limited currently, so feel free to raise a "Feature Request" issue in the repo
wow, thank you so much! I will test it and let you know :)
Has joined the channel.
hello
can anyone tell me how can i install caliper for ethereum?
Check out these doc pages:
https://hyperledger.github.io/caliper/v0.4.2/installing-caliper/
https://hyperledger.github.io/caliper/v0.4.2/ethereum-config/
hey, I'm almost there, but it seems that this:
` params.gas = 1000 + await contractInfo.contract.methods[request.verb].estimateGas(params);`
in ethereum-connector.js throws
`2022.01.27-19:40:08.454 error [caliper] [caliper-worker] Unhandled error while executing TX: TypeError: Cannot read properties of undefined (reading 'estimateGas')
at EthereumConnector._sendSingleRequest (/Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-ethereum/lib/ethereum-connector.js:243:87)
at EthereumConnector.sendRequests (/Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-core/lib/common/core/connector-base.js:78:39)
at AddLiquidity.submitTransaction (/Users/rejnol/src/caliper/caliper-benchmarks/benchmarks/scenario/uniswap/addLiquidity.js:43:31)
at /Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-core/lib/worker/caliper-worker.js:97:32
at Immediate.
hey, I'm almost there, but it seems that this:
` params.gas = 1000 + await contractInfo.contract.methods[request.verb].estimateGas(params);`
in ethereum-connector.js throws
`2022.01.27-19:40:08.454 error [caliper] [caliper-worker] Unhandled error while executing TX: TypeError: Cannot read properties of undefined (reading 'estimateGas')
at EthereumConnector._sendSingleRequest (/Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-ethereum/lib/ethereum-connector.js:243:87)
at EthereumConnector.sendRequests (/Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-core/lib/common/core/connector-base.js:78:39)
at AddLiquidity.submitTransaction (/Users/rejnol/src/caliper/caliper-benchmarks/benchmarks/scenario/uniswap/addLiquidity.js:43:31)
at /Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-core/lib/worker/caliper-worker.js:97:32
at Immediate.
hey, I'm almost there, but it seems that this:
` params.gas = 1000 + await contractInfo.contract.methods[request.verb].estimateGas(params);`
in ethereum-connector.js throws
`2022.01.27-19:40:08.454 error [caliper] [caliper-worker] Unhandled error while executing TX: TypeError: Cannot read properties of undefined (reading 'estimateGas')
at EthereumConnector._sendSingleRequest (/Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-ethereum/lib/ethereum-connector.js:243:87)
at EthereumConnector.sendRequests (/Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-core/lib/common/core/connector-base.js:78:39)
at AddLiquidity.submitTransaction (/Users/rejnol/src/caliper/caliper-benchmarks/benchmarks/scenario/uniswap/addLiquidity.js:43:31)
at /Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-core/lib/worker/caliper-worker.js:97:32
at Immediate.
it seems that `methods` is undefined. I've included abi in config:
` "erc20": {
"address": "0xb9B2CE7fC4D750d925cEF8DCc5C69c59DA26B43c",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
`2022.01.28-10:26:44.348 error [caliper] [caliper-worker] Unhandled error while executing TX: TypeError: contractInfo.contract.methods[request.verb].estimateGas is not a function
at EthereumConnector._sendSingleRequest (/Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-ethereum/lib/ethereum-connector.js:243:87)
at EthereumConnector.sendRequests (/Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-core/lib/common/core/connector-base.js:78:39)
at AddLiquidity.submitTransaction (/Users/rejnol/src/caliper/caliper-benchmarks/benchmarks/scenario/uniswap/addLiquidity.js:43:31)
at /Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-core/lib/worker/caliper-worker.js:97:32
at Immediate.
`2022.01.28-10:26:44.348 error [caliper] [caliper-worker] Unhandled error while executing TX: TypeError: contractInfo.contract.methods[request.verb].estimateGas is not a function
at EthereumConnector._sendSingleRequest (/Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-ethereum/lib/ethereum-connector.js:243:87)
at EthereumConnector.sendRequests (/Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-core/lib/common/core/connector-base.js:78:39)
at AddLiquidity.submitTransaction (/Users/rejnol/src/caliper/caliper-benchmarks/benchmarks/scenario/uniswap/addLiquidity.js:43:31)
at /Users/rejnol/src/caliper/node_modules/@hyperledger/caliper-core/lib/worker/caliper-worker.js:97:32
at Immediate.
it seems, that the methods from ABI get loaded. I added some logging:
console.log("methods: ",contractInfo.contract.methods)
console.log("verb: ",request.verb)
console.log("contractInfo.contract.methods[request.verb].estimateGas: ",contractInfo.contract.methods[request.verb].estimateGas)
params.gas = 1000 + await contractInfo.contract.methods[request.verb].estimateGas(params);
LOGS:
query: approve
args: 7.395805041027075e+47,100
methods: {
allowance: [Function: bound _createTxObject],
'0xdd62ed3e': [Function: bound _createTxObject],
'allowance(address,address)': [Function: bound _createTxObject],
approve: [Function: bound _createTxObject],
'0x095ea7b3': [Function: bound _createTxObject],
'approve(address,uint256)': [Function: bound _createTxObject],
balanceOf: [Function: bound _createTxObject],
'0x70a08231': [Function: bound _createTxObject],
'balanceOf(address)': [Function: bound _createTxObject],
totalSupply: [Function: bound _createTxObject],
'0x18160ddd': [Function: bound _createTxObject],
'totalSupply()': [Function: bound _createTxObject],
transfer: [Function: bound _createTxObject],
'0xa9059cbb': [Function: bound _createTxObject],
'transfer(address,uint256)': [Function: bound _createTxObject],
transferFrom: [Function: bound _createTxObject],
'0x23b872dd': [Function: bound _createTxObject],
'transferFrom(address,address,uint256)': [Function: bound _createTxObject]
}
verb: approve
contractInfo.contract.methods[request.verb].estimateGas:
it seems, that the methods from ABI get loaded. I added some logging:
console.log("methods: ",contractInfo.contract.methods)
console.log("verb: ",request.verb)
console.log("contractInfo.contract.methods[request.verb].estimateGas: ",contractInfo.contract.methods[request.verb].estimateGas)
params.gas = 1000 + await contractInfo.contract.methods[request.verb].estimateGas(params);
LOGS:
query: approve
args: 7.395805041027075e+47,100
methods: {
allowance: [Function: bound _createTxObject],
'0xdd62ed3e': [Function: bound _createTxObject],
'allowance(address,address)': [Function: bound _createTxObject],
approve: [Function: bound _createTxObject],
'0x095ea7b3': [Function: bound _createTxObject],
'approve(address,uint256)': [Function: bound _createTxObject],
balanceOf: [Function: bound _createTxObject],
'0x70a08231': [Function: bound _createTxObject],
'balanceOf(address)': [Function: bound _createTxObject],
totalSupply: [Function: bound _createTxObject],
'0x18160ddd': [Function: bound _createTxObject],
'totalSupply()': [Function: bound _createTxObject],
transfer: [Function: bound _createTxObject],
'0xa9059cbb': [Function: bound _createTxObject],
'transfer(address,uint256)': [Function: bound _createTxObject],
transferFrom: [Function: bound _createTxObject],
'0x23b872dd': [Function: bound _createTxObject],
'transferFrom(address,address,uint256)': [Function: bound _createTxObject]
}
verb: approve
contractInfo.contract.methods[request.verb].estimateGas:undefined
so it can't find the estimateGas function. I'll try to do it with a hardcoded gas value in config
Has joined the channel.
hi everyone.. I've got Caliper configured as a subtree of my custom Fabric blockchain. I have it configured correctly in order to connect the network and am running a small set of tests at the moment. The arguments I'm providing are absolutely correct in terms of the custom chaincode being run, but whenever I try to create a transaction via Caliper I get the error:
`Failed to perform submit transaction [CreateAsset] using arguments [
hi everyone.. I've got Caliper configured as a subtree of my custom Fabric blockchain. I have it configured correctly in order to connect the network and am running a small set of tests at the moment. The arguments I'm providing are absolutely correct in terms of the custom chaincode being run, but whenever I try to create a transaction via Caliper I get the error:
`Failed to perform submit transaction [CreateAsset] using arguments [
also it's worth noting that the querying part of my test rounds is yielding expected results... none of those assets get created due to the error thrown, and when querying for a given asset an error like so occurs:
`Failed to perform query transaction [ReadAsset] using arguments [0_18], with error: Error: error in simulation: transaction returned with failure: Error: The asset 0_18 does not exist`
I've compiled the above into an SO question: https://stackoverflow.com/questions/70893767/why-cant-i-commit-transactions-with-caliper-to-hyperledger-fabric
I've combined the above into an SO question: https://stackoverflow.com/questions/70893767/why-cant-i-commit-transactions-with-caliper-to-hyperledger-fabric
@Quasso That error message looks like it's a bug in the fabric node sdk (and looking at the code it doesn't appear to be fixed in newer releases) in the fact that it should actually report an error rather than fail with a runtime failure. If it was addressed I think the error might say something like `No orderers are available to send the transaction to`. I would guess therefore that there is something not right with the way your fabric network is set up or that your network config is using a connection profile but you have specified `discover: false` and you have no orderer information in your connection profile
@Quasso That error message looks like it's a bug in the fabric node sdk (and looking at the code it doesn't appear to be fixed in newer releases) in the fact that it should actually report an error rather than fail with a runtime failure. If it was addressed I think the error might say something like `No orderers are known to send the transaction to`. I would guess therefore that there is something not right with the way your fabric network is set up or that your network config is using a connection profile but you have specified `discover: false` and you have no orderer information in your connection profile
@davidkel thank you for your response!
That's actually exactly what I've been thinking since I first posted this! At first, when I tried to connect Caliper with discovery enabled, my user could not even connect to the gateway...
I disabled it and managed it to get it running, but I did tweak some configuration as I went along with it. Now, I've been able to revert to having `discovery: true` and the gateway is still connecting properly, but it can't connect to any orderers! So I am now debugging this. I have a sneaking suspicion that the documented way for v0.4.2 misled me slightly since I ended up configuring the main `config.yaml` to use the "Admin" user generated for a given organization... what I'm thinking is perhaps this configuration is also attempted for use with connecting to the orderer, in which case the TLS wouldn't match up. It's just a hunch I'm looking into for now though
and if that's the case with the SDK perhaps I'll file an issue on there :)
It's a minor bug in the SDK, regarding outputting an error message
It's a minor bug in the SDK, regarding outputting an error message but by all means try raising an issue
if a connection profile is defined as discover:true then it should discover your orderers if it doesn't find any orderers then that's a network setup issue
I totally agree yes, in fact I know how to fix it very easily. The problem code is:
```
// by now we should have a discovery handler or use the target orderers
// that have been assigned from the channel to perform the commit
const commitResponse = await commit.send(commitSendRequest);
logger.debug('%s - commit response %j', method, commitResponse);
if (commitResponse.status !== 'SUCCESS') {
const msg = `Failed to commit transaction %${endorsement.getTransactionId()}, orderer response status: ${commitResponse.status}`;
logger.error('%s - %s', method, msg);
eventHandler.cancelListening();
throw new Error(msg);
}
```
in particular it's line 237. It would work if it were `commitResponse['status'] !== 'SUCCESS'` inside the conditional
in particular it's line 237. It would work if it were `commitResponse !==undefined && commitResponse['status'] !== 'SUCCESS'` inside the conditional
in particular it's line 237. It would work if it were `(commitResponse !== undefined) && (commitResponse['status'] !== 'SUCCESS')` inside the conditional
in particular it's line 237. It would work if it were `(commitResponse == undefined) || (commitResponse['status'] !== 'SUCCESS')` inside the conditional
in particular it's line 237. It would work if it were `(commitResponse === undefined) || (commitResponse['status'] !== 'SUCCESS')` inside the conditional. That way the error would get thrown. In my instance `commitResponse === undefined`
in particular it's line 237. I think it would work if it were `(commitResponse === undefined) || (commitResponse['status'] !== 'SUCCESS')` inside the conditional. That way the error would get thrown. In my instance `commitResponse === undefined`
I can even submit a PR for it tbh, as long as they're cool with stuff like that
as for your second response, the orderers are discovered correctly, they just don't connect. Before my log level on the orderer pods was INFO so I've set it to DEBUG and I'm experimenting with the TLS now since I gather that's the source of connectFailed
By all means submit a PR, make sure you include a test for it as well
great, will aim to do so today. Thanks a lot for your really helpful input! I'm glad I progressed to a similar to page to you!
great, will aim to do so today, but certainly on my todo list now. Thanks a lot for your really helpful input! I'm glad I progressed to a similar to page to you!
have modified the transaction.js library file inside my pod now to return a useful error in the event commitResponse is undefined, it now outputs a specific message in that case to guide the person to the fix (the msg contruct needed adapting too because it also uses `commitResponse.status` which needed handling properly based on whether `commitReponse` is defined or not)
have modified the transaction.js library file inside my pod now to return a useful error in the event commitResponse is undefined, it now outputs a specific message in that case to guide the person to the fix (the msg contruct needed adapting too because it also uses `commitResponse.status` which needed handling properly based on whether `commitResponse` is defined or not)
have modified the transaction.js library file inside my pod (monkey-patched) now to return a useful error in the event commitResponse is undefined, it now outputs a specific message in that case to guide the person to the fix (the msg contruct needed adapting too because it also uses `commitResponse.status` which needed handling properly based on whether `commitResponse` is defined or not)
```
2022-01-28T14:36:27.668Z - error: [Transaction]: submit[CreateAsset] - Failed to commit transaction 9644afc95480496cdb6a0628b4ec3ce1cda225415c351eed36135ffea077d46e, orderer response status: ERROR: no response from orderer, orderer is not connected. Transaction commitResponse was undefined. Check your network configuration and ensure that you have configured TLS correctly for your orderers.
```
```
2022-01-28T14:36:27.668Z - error: [Transaction]: submit[CreateAsset] - Failed to commit transaction 9644afc95480496cdb6a0628b4ec3ce1cda225415c351eed36135ffea077d46e, orderer response status: ERROR: no response from orderer, orderer is not connected. Transaction commitResponse was undefined. Check your network configuration and ensure that you have configured TLS correctly for your orderers.
``
```
```
2022-01-28T14:36:27.668Z - error: [Transaction]: submit[CreateAsset] - Failed to commit transaction 9644afc95480496cdb6a0628b4ec3ce1cda225415c351eed36135ffea077d46e, orderer response status: ERROR: no response from orderer, orderer is not connected. Transaction commitResponse was undefined. Check your network configuration and ensure that you have configured TLS correctly for your orderers.
```
```
2022-01-28T14:36:27.668Z - error: [Transaction]: submit[CreateAsset] - Failed to commit transaction 9644afc95480496cdb6a0628b4ec3ce1cda225415c351eed36135ffea077d46e, orderer response status: ERROR: no response from orderer, orderer is not connected. Transaction commitResponse was undefined. Check your network configuration.
```
@davidkel so this is strange, while debugging this without modifying my TLS just yet (since it connects et al) I've noticed this about the error being thrown when trying to connect to orderers...
```
2022-01-28T14:53:35.676Z - error: [DiscoveryService]: _buildPeer[allorgs] - Unable to connect to the discovered peer peer0.org3:7051 due to Error: Failed to connect before the deadline on Endorser- name: peer0.org3:7051, url:grpcs://localhost:7051, connected:false, connectAttempted:true
```
What's strange about that is that in my `caliper-network.yaml` file (my entrypoint for my tests) I have set `caliper.fabric.gateway.localhost = false` which works as expected with the peers (e.g. if I set it to true, I can't connect to my peers becasue it attempts to use localhost...)
@davidkel so this is strange, while debugging this without modifying my TLS just yet (since it connects et al) I've noticed this about the error being thrown when trying to connect to orderers...
```
2022-01-28T14:53:35.676Z - error: [DiscoveryService]: _buildPeer[allorgs] - Unable to connect to the discovered peer peer0.org3:7051 due to Error: Failed to connect before the deadline on Endorser- name: peer0.org3:7051, url:grpcs://localhost:7051, connected:false, connectAttempted:true
```
What's strange about that is that in my `caliper-network.yaml` file (my entrypoint for my tests) I have set `caliper.fabric.gateway.localhost: false` which works as expected with the peers (e.g. if I set it to true, I can't connect to my peers becasue it attempts to use localhost...)
@davidkel so this is strange, while debugging this without modifying my TLS just yet (since it connects et al) I've noticed this about the error being thrown when trying to connect to orderers...
```
2022-01-28T14:53:35.676Z - error: [DiscoveryService]: _buildPeer[allorgs] - Unable to connect to the discovered peer peer0.org3:7051 due to Error: Failed to connect before the deadline on Endorser- name: peer0.org3:7051, url:grpcs://localhost:7051, connected:false, connectAttempted:true
```
What's strange about that is that in my `caliper-network.yaml` file (my entrypoint for my tests) I have set `caliper.fabric.gateway.localhost: false` which works as expected with the peers (e.g. if I set it to true, I can't connect to my peers because it attempts to use localhost...)
is there some other setting I need to use in order to use the actual hostnames which are accessible in the Kubernetes cluster?
it makes sense as to why I'm not seeing anything logged by the orderer now too
@Quasso That error message isn't for an endorser, it's for a peer
@Quasso That error message isn't for an ordere, it's for a peer
@Quasso That error message isn't for an orderer, it's for a peer
ah sorry, that also happened with the orderer... before the peer was connecting, happens with the orderer too though
even though `localhost: false`
```
2022-01-28T15:40:43.433Z - error: [ServiceEndpoint]: waitForReady - Failed to connect to remote gRPC server orderer.org1:7050 url:grpcs://localhost:7050 timeout:3000
2022-01-28T15:40:43.433Z - error: [DiscoveryService]: _buildOrderer[allorgs] - Unable to connect to the discovered orderer orderer.org1:7050 due to Error: Failed to connect before the deadline on Committer- name: orderer.org1:7050, url:grpcs://localhost:7050, connected:false, connectAttempted:true
```
When trying to run my tests, this is what's logged immediately after `Generating contract map for user...`
```
2022-01-28T15:40:43.433Z - error: [ServiceEndpoint]: waitForReady - Failed to connect to remote gRPC server orderer.org1:7050 url:grpcs://localhost:7050 timeout:3000
2022-01-28T15:40:43.433Z - error: [DiscoveryService]: _buildOrderer[allorgs] - Unable to connect to the discovered orderer orderer.org1:7050 due to Error: Failed to connect before the deadline on Committer- name: orderer.org1:7050, url:grpcs://localhost:7050, connected:false, connectAttempted:true
```
When trying to run my tests, the above error is what's logged immediately after `Generating contract map for user...`
trimmed down `caliper-network.yaml`:
```
caliper:
blockchain: fabric
sutOptions:
mutualTls: false
fabric:
gateway:
# Indicates whether to use the Fabric Gateway API
enabled: true
# Indicates whether to use the localhost default within the Fabric Gateway API
localhost: false
# Indicates whether to use the Fabric discovery mechanism (via Gateway API)
discovery: true
# Which event strategy to use
eventstrategy: msp_any
# Which query strategy to use
querystrategy: msp_round_robin
```
trimmed down `caliper-network.yaml`:
```
caliper:
blockchain: fabric
sutOptions:
mutualTls: true
fabric:
gateway:
# Indicates whether to use the Fabric Gateway API
enabled: true
# Indicates whether to use the localhost default within the Fabric Gateway API
localhost: false
# Indicates whether to use the Fabric discovery mechanism (via Gateway API)
discovery: true
# Which event strategy to use
eventstrategy: msp_any
# Which query strategy to use
querystrategy: msp_round_robin
```
for the actual test configuration, I see the following:
```
test:
workers:
type: local
```
is it perhaps this I wonder which is causing the wrong resolution?
based on what I'm reading in the official documentation the answer to that is no, it says it's currently unused (https://hyperledger.github.io/caliper/v0.4.2/bench-config/)
what does your network config file look like ?
```
name: Caliper test
version: "2.0.0" # their standard, NOT configurable
# mutual-tls: true
# above is documented, but has no discernable impact. Crucial to set sutOptions -> mutualTls: true
caliper:
blockchain: fabric
sutOptions:
mutualTls: false
fabric:
# Sets the sleep behaviors after different init actions
sleepafter:
# The time in milliseconds to sleep after creating the channels (if created channels at all)
createchannel: 5000
# The time in milliseconds to sleep after joining the channels (if joined channels at all)
joinchannel: 5000
# The time in milliseconds to sleep after instantiated the contracts (if instantiated contracts at all)
instantiatecontract: 5000
# Enables extra verification steps during the transaction proposal phase
verify:
# Indicates whether to verify the identity of the endorsers and their signatures for each proposal response after endorsing a transaction.
# Note, that this is a CPU intensive step, use it with caution
proposalresponse: false
# Indicates whether to verify that the read-write sets returned by the endorsers match
readwritesets: true
# Contains worker-side timeouts related to the initialization part of the adapter
timeout:
# Timeout in milliseconds for the endorsement part of a contract instantiation
contractinstantiate: 300000
# Timeout in milliseconds for receiving the event about the result of a contract instantiation
contractinstantiateevent: 100000
# The default timeout in milliseconds to use for invoking or querying transactions (applied for the entire life-cycle)
invokeorquery: 60000
# Determines how automatic load balancing is applied if the worker callback module doesn’t provide explicit targets.
# Use the value 'worker' to perform worker-based load balancing, meaning that each worker process will have fix target peers and target orderer.
# Use the value 'tx' to perform transaction-based load balancing, meaning that the peer and orderer targets change for every submitted transaction or query.
loadbalancing: worker
# Indicates whether to temporarily set the GOPATH environment variable to the Caliper root directory
overwritegopath: true
# Determines the reported commit time of a transaction based on the given percentage of event sources
latencythreshold: 1.0
# Indicates whether to count queries as workload, i.e., whether the generated report should include them
countqueryasload: true
# Settings for the Fabric Gateway API
gateway:
# Indicates whether to use the Fabric Gateway API
enabled: true
# Indicates whether to use the localhost default within the Fabric Gateway API
localhost: false
# Indicates whether to use the Fabric discovery mechanism (via Gateway API)
discovery: true
# Which event strategy to use
eventstrategy: msp_any
# Which query strategy to use
querystrategy: msp_round_robin
channels:
- channelName: allorgs
contracts:
- id:
```
name: Caliper test
version: "2.0.0" # their standard, NOT user configurable (use info instead for versioning)
# mutual-tls: true
# above is documented, but has no discernable impact. Crucial to set sutOptions -> mutualTls: true
caliper:
blockchain: fabric
sutOptions:
mutualTls: false
fabric:
# Sets the sleep behaviors after different init actions
sleepafter:
# The time in milliseconds to sleep after creating the channels (if created channels at all)
createchannel: 5000
# The time in milliseconds to sleep after joining the channels (if joined channels at all)
joinchannel: 5000
# The time in milliseconds to sleep after instantiated the contracts (if instantiated contracts at all)
instantiatecontract: 5000
# Enables extra verification steps during the transaction proposal phase
verify:
# Indicates whether to verify the identity of the endorsers and their signatures for each proposal response after endorsing a transaction.
# Note, that this is a CPU intensive step, use it with caution
proposalresponse: false
# Indicates whether to verify that the read-write sets returned by the endorsers match
readwritesets: true
# Contains worker-side timeouts related to the initialization part of the adapter
timeout:
# Timeout in milliseconds for the endorsement part of a contract instantiation
contractinstantiate: 300000
# Timeout in milliseconds for receiving the event about the result of a contract instantiation
contractinstantiateevent: 100000
# The default timeout in milliseconds to use for invoking or querying transactions (applied for the entire life-cycle)
invokeorquery: 60000
# Determines how automatic load balancing is applied if the worker callback module doesn’t provide explicit targets.
# Use the value 'worker' to perform worker-based load balancing, meaning that each worker process will have fix target peers and target orderer.
# Use the value 'tx' to perform transaction-based load balancing, meaning that the peer and orderer targets change for every submitted transaction or query.
loadbalancing: worker
# Indicates whether to temporarily set the GOPATH environment variable to the Caliper root directory
overwritegopath: true
# Determines the reported commit time of a transaction based on the given percentage of event sources
latencythreshold: 1.0
# Indicates whether to count queries as workload, i.e., whether the generated report should include them
countqueryasload: true
# Settings for the Fabric Gateway API
gateway:
# Indicates whether to use the Fabric Gateway API
enabled: true
# Indicates whether to use the localhost default within the Fabric Gateway API
localhost: false
# Indicates whether to use the Fabric discovery mechanism (via Gateway API)
discovery: true
# Which event strategy to use
eventstrategy: msp_any
# Which query strategy to use
querystrategy: msp_round_robin
channels:
- channelName: allorgs
contracts:
- id:
```
name: Caliper test
version: "2.0.0" # their standard, NOT user configurable (use info instead for versioning)
# mutual-tls: true
# above is documented, but has no discernable impact. Crucial to set sutOptions -> mutualTls: true
caliper:
blockchain: fabric
sutOptions:
mutualTls: true
fabric:
# Sets the sleep behaviors after different init actions
sleepafter:
# The time in milliseconds to sleep after creating the channels (if created channels at all)
createchannel: 5000
# The time in milliseconds to sleep after joining the channels (if joined channels at all)
joinchannel: 5000
# The time in milliseconds to sleep after instantiated the contracts (if instantiated contracts at all)
instantiatecontract: 5000
# Enables extra verification steps during the transaction proposal phase
verify:
# Indicates whether to verify the identity of the endorsers and their signatures for each proposal response after endorsing a transaction.
# Note, that this is a CPU intensive step, use it with caution
proposalresponse: false
# Indicates whether to verify that the read-write sets returned by the endorsers match
readwritesets: true
# Contains worker-side timeouts related to the initialization part of the adapter
timeout:
# Timeout in milliseconds for the endorsement part of a contract instantiation
contractinstantiate: 300000
# Timeout in milliseconds for receiving the event about the result of a contract instantiation
contractinstantiateevent: 100000
# The default timeout in milliseconds to use for invoking or querying transactions (applied for the entire life-cycle)
invokeorquery: 60000
# Determines how automatic load balancing is applied if the worker callback module doesn’t provide explicit targets.
# Use the value 'worker' to perform worker-based load balancing, meaning that each worker process will have fix target peers and target orderer.
# Use the value 'tx' to perform transaction-based load balancing, meaning that the peer and orderer targets change for every submitted transaction or query.
loadbalancing: worker
# Indicates whether to temporarily set the GOPATH environment variable to the Caliper root directory
overwritegopath: true
# Determines the reported commit time of a transaction based on the given percentage of event sources
latencythreshold: 1.0
# Indicates whether to count queries as workload, i.e., whether the generated report should include them
countqueryasload: true
# Settings for the Fabric Gateway API
gateway:
# Indicates whether to use the Fabric Gateway API
enabled: true
# Indicates whether to use the localhost default within the Fabric Gateway API
localhost: false
# Indicates whether to use the Fabric discovery mechanism (via Gateway API)
discovery: true
# Which event strategy to use
eventstrategy: msp_any
# Which query strategy to use
querystrategy: msp_round_robin
channels:
- channelName: allorgs
contracts:
- id:
it's worth noting that the `connectionProfile` is identical to my working API's connection
it's worth noting that the `connectionProfile` is sharing the same json file to my API which connects properly
as in, I have a custom NestJS API that I developed which connects using this same `../ccp/connection-org1.json` successfully and is able to create transactions on my network
as well as enroll admins, users, etc
You can't put the fabric block into the network config file as it will be ignored. If you want to turn off the localhost conversion (I really do not like that this was chosen as a default by both the sdks and caliper but can't change it now) the easiest way to do that is to launch caliper with `--caliper-fabric-gateway-localhost false`
oooooooooh YES! You're the man! It worked immediately when I ran it with that flag
I agree about that wholeheartedly how confusing!
:woo:
thinking perhaps I could also submit a PR to the Caliper documentation which really led me to never consider the use of this flag (the docs actually explicitly show this flag being set in the YAML example in order to set `--caliper-fabric-gateway-localhost false`)
I'm not sure if this is covered somewhere in the docs or your expert knowledge but in reading the appropriate part, this quirk is certainly not obvious
I'm not sure if this is covered somewhere in the docs or stems from your expert knowledge but in reading the appropriate part, this quirk is certainly not obvious
The section Runtime settings in https://hyperledger.github.io/caliper/v0.4.2/fabric-config/new/ talks about it a little. The config of caliper needs to be in a special file which you can then alter with cli options
I see! Are you a core dev?
thanks for that. I definitely feel the docs could be improved around this to be less confusing, especially because that setting in the YAML did have an impact when `gateway.enabled: false`
great to have it working as expected without any other surprising changes, though. Thank you very much for your input today, it's much appreciated.
@Quasso Please raise an issue about the docs and if you can please submit a PR to improve them.
@davidkel okay great stuff I am going to look into this later today! Just getting in the swing of things for the week
Has joined the channel.
Hi! Does anyone know how the tutorial to use caliper with consensys goquorum?
Hi! Does anyone know the tutorial to use caliper with consensys goquorum?
Has joined the channel.
If it is compatible with the Ethereum RPC API, then you can probably use the Ethereum/Besu connector. There's no dedicated tutorial at this moment, but you should be able to experiment with the connector based on [its docs](https://hyperledger.github.io/caliper/v0.4.2/ethereum-config/) and the [Ethereum CI test structure](https://github.com/hyperledger/caliper/tree/main/packages/caliper-tests-integration/ethereum_tests)
I see.. thank you for the answer @klenik .
Has joined the channel.
Hi! I am trying to use Caliper to test my besu network with multiple contracts.
Hi! I am trying to use caliper to test my besu network with multiple contracts
But there is an error `Error: Returned error: Replacement transaction underpriced` when I running the launch manager command.
as following
*When the contract is single there is no problem, but not when deploying multiple contracts.
`2022.02.14-20:36:17.204 info [caliper] [cli-launch-manager] Set SUT type: ethereum
2022.02.14-20:36:17.840 info [caliper] [benchmark-validator] No observer specified, will default to `none`
2022.02.14-20:36:17.840 info [caliper] [caliper-engine] Starting benchmark flow
2022.02.14-20:36:17.849 info [caliper] [caliper-engine] Network configuration attribute "caliper.command.start" is not present, skipping start command
2022.02.14-20:36:17.864 info [caliper] [caliper-engine] Executed "init" step in 0.015 seconds
2022.02.14-20:36:17.864 info [caliper] [ethereum-connector] Creating contracts...
2022.02.14-20:36:17.915 error [caliper] [caliper-engine] Error while performing "install" step: Error: Returned error: Replacement transaction underpriced
2022.02.14-20:36:17.916 info [caliper] [caliper-engine] Executed "install" step in 0.052 seconds
2022.02.14-20:36:17.916 info [caliper] [caliper-engine] Network configuration attribute "caliper.command.end" is not present, skipping end command
2022.02.14-20:36:17.916 error [caliper] [cli-launch-manager] Benchmark failed with error code 5`
This is the networkconfig file
`{
"caliper": {
"blockchain": "ethereum",
"command": {}
},
"ethereum": {
"url": "ws://127.0.0.1:8541",
"contractDeployerAddress": "0xD1cf9D73a91DE6630c2bb068Ba5fDdF9F0DEac09",
"contractDeployerAddressPrivateKey": "0x797c13f7235c627f6bd013dc17fff4c12213ab49abcf091f77c83f16db10e90b",
"fromAddressSeed": "0x3f841bf589fdf83a521e55d51afddc34fa65351161eead24f064855fc29c9580",
"transactionConfirmationBlocks": 2,
"contracts": {
"simple": {
"path": "./src/simple/simple.json",
"estimateGas": true,
"gas": {
"open": 45000
}
},
"simple2": {
"path": "./src/simple/simple2.json",
"estimateGas": true,
"gas": {
"query": 100000
}
}
}
}
}`
Seems caliper is recognizing the two deploy transactions as the same and trying to replace the first deploy.
Or do I need to change other configs?
I'm not familiar with ethereum but looking at the ethereum connector it looks like it just submits what is in simple.json and simple2.json so maybe there is something in those declarations which means it can't distinguish between simple and simple2
I'm not familiar with ethereum but looking at the ethereum connector it looks like it just submits what is in simple.json and simple2.json so maybe there is something in those declarations (ie in simple.json, simple2.json) which means it can't distinguish between simple and simple2
I checked the ethereum, to make a transaction it will check the sender address and nonce, if they are the same, ethereum will consider them as same transaction. But there is nowhere to set the nonce...
The caliper homepage has an example of two contracts here,
https://hyperledger.github.io/caliper/v0.4.2/ethereum-config/
Maybe the abi and bytecode have to be unique for different contracts ?
yes, the bin and abi are different. also tried different gas, ofcourse the name are different too
Caliper - Besu
hi, i changed my plan to run without contract installation, using `--caliper-flow-only-test=true`
but i still got an error `Error: You must provide the json interface of the contract when instantiating a contract object.`
i checked the config guide still couldn't get the clue where to set the path of abi file to worker.
can any one help me?
`2022.02.15-14:40:12.378 info [caliper] [cli-launch-worker] Set SUT type: ethereum
2022.02.15-14:40:12.681 info [caliper] [worker-orchestrator] 1 workers connected, progressing to worker assignment phase.
2022.02.15-14:40:12.681 info [caliper] [worker-orchestrator] Workers currently unassigned, awaiting index assignment...
2022.02.15-14:40:12.681 info [caliper] [worker-orchestrator] Waiting for 1 workers to be assigned...
2022.02.15-14:40:12.721 info [caliper] [worker-orchestrator] 1 workers assigned, progressing to worker initialization phase.
2022.02.15-14:40:12.721 info [caliper] [worker-orchestrator] Waiting for 1 workers to be ready...
2022.02.15-14:40:12.735 info [caliper] [worker-orchestrator] 1 workers ready, progressing to test preparation phase.
2022.02.15-14:40:12.735 info [caliper] [round-orchestrator] Started round 1 (open)
2022.02.15-14:40:12.761 error [caliper] [round-orchestrator] Failed round 1 (open): Error: Error: You must provide the json interface of the contract when instantiating a contract object.`
I don't see this line output `Skipping initialization phase due to benchmark flow conditioning` which I would expect maybe try just specifying `--caliper-flow-only-test` (ie without the =true bit)
@davidkel thank you, i dipped to the source code and changed the config file inside the node_modules to solved this problem. and i will try your idea, better do from command line.
Has joined the channel.
Please join us on Discord: https://discord.gg/hyperledger
Has joined the channel.
Has joined the channel.