Test net thinking
Hi TSC,I had a discussion with Ry this week while manning the booth at ATO in Raleigh and we both think the right way to go is a two pronged approach:The first prong will be to engage with the free kubernetes hosting being paid for by (I think) the CNCF project. Ry knows more about it than I do.The second prong would be to set aside some budget to cover the cost of people running networks on Amazon EKS. We could set some rule like we cover the cost up to $200 for the first month with an opportunity to get additional months with approval.I agree with Chris and Ry and I’m concerned about the human overhead of trying to run test nets for people. I think the best compromise is to just cover the bills for people spinning up test networks on hosted kubernetes platforms. The oversight needs to be an easy application and approval process as well as an easy renewal process. I was thinking that $20k would be enough to cover. That’s at least 10 networks per month for a year.Thoughts?Dave--
I think that we need to consider what we think a "test net" is. Is it a whole network that a developer spins up themselves? Is it a pre-existing network that we have launched and that developers can use to deploy a smart contract and kick the tires? Is it permissioned? Permissionless? What are the implications? Will there be likelihood of noisy neighbor situations? Crypto Kitties? Who will monitor the experience? What if it gets really bogged down? Who is monitoring that it is running? Will users walk away from a bad experience with a bad taste in their mouths? How will the experience reflect on the project and the organization?I don't disagree that we want to make it dead simple to engage with the various projects. However, I can say that for Fabric, the process could not be simpler.download fabric-samples repo, images and binaries (one click)cd first-networkbyfn.sh upthree commands and you have it running on your laptop.Could we create some helm charts that could be used to deploy our various projects to K8s? Let people deal with finding the compute however they like (maybe point at alternatives) but we don't host/pay?I ask because I really don't understand what problem we think we are solving with a test net, nor do I believe that we have considered the broader implications of running a cloud service on a volunteer basis.ChrisOn Wed, Oct 24, 2018 at 5:56 PM David Huseby <dhuseby@...> wrote:Hi TSC,I had a discussion with Ry this week while manning the booth at ATO in Raleigh and we both think the right way to go is a two pronged approach:The first prong will be to engage with the free kubernetes hosting being paid for by (I think) the CNCF project. Ry knows more about it than I do.The second prong would be to set aside some budget to cover the cost of people running networks on Amazon EKS. We could set some rule like we cover the cost up to $200 for the first month with an opportunity to get additional months with approval.I agree with Chris and Ry and I’m concerned about the human overhead of trying to run test nets for people. I think the best compromise is to just cover the bills for people spinning up test networks on hosted kubernetes platforms. The oversight needs to be an easy application and approval process as well as an easy renewal process. I was thinking that $20k would be enough to cover. That’s at least 10 networks per month for a year.Thoughts?Dave--
Chris,I think you raise some very valid points regarding operating a test net. I'd like to inject an end user perspective if I may.I think Ethereum wins from an ease of use perspective because people can easily write a smart contract and deploy it to a test network. That's what the vast majority of developers want to get done when they first encounter blockchain and IMO that is where Fabric (and others) fall down. HLF v1.3 has made it (relatively) easy to *start* the network on your laptop, but once you actually want to deploy chaincode and interact with it, it is a whole different story: you start hacking on fabcar and trying to understand how ./startFabric.sh, enrollAdrmin.js, registerUser.js, hlf-key-store, docker etc all work. Contrast with using http://remix.ethereum.org running in the browser, or connected to https://infura.io or https://kaleido.io for writing your first Solidity code.There's an opportunity to do something similar to remix using the Composer Playground connected to a test net which is worth exploring imo. I don't know if that should be the remit of HL/TSC but there's clearly a need for something like that to attract more developers.Sincerely,DanOn Thu, Oct 25, 2018 at 2:54 PM Christopher Ferris <chris.ferris@...> wrote:I think that we need to consider what we think a "test net" is. Is it a whole network that a developer spins up themselves? Is it a pre-existing network that we have launched and that developers can use to deploy a smart contract and kick the tires? Is it permissioned? Permissionless? What are the implications? Will there be likelihood of noisy neighbor situations? Crypto Kitties? Who will monitor the experience? What if it gets really bogged down? Who is monitoring that it is running? Will users walk away from a bad experience with a bad taste in their mouths? How will the experience reflect on the project and the organization?I don't disagree that we want to make it dead simple to engage with the various projects. However, I can say that for Fabric, the process could not be simpler.download fabric-samples repo, images and binaries (one click)cd first-networkbyfn.sh upthree commands and you have it running on your laptop.Could we create some helm charts that could be used to deploy our various projects to K8s? Let people deal with finding the compute however they like (maybe point at alternatives) but we don't host/pay?I ask because I really don't understand what problem we think we are solving with a test net, nor do I believe that we have considered the broader implications of running a cloud service on a volunteer basis.ChrisOn Wed, Oct 24, 2018 at 5:56 PM David Huseby <dhuseby@...> wrote:Hi TSC,I had a discussion with Ry this week while manning the booth at ATO in Raleigh and we both think the right way to go is a two pronged approach:The first prong will be to engage with the free kubernetes hosting being paid for by (I think) the CNCF project. Ry knows more about it than I do.The second prong would be to set aside some budget to cover the cost of people running networks on Amazon EKS. We could set some rule like we cover the cost up to $200 for the first month with an opportunity to get additional months with approval.I agree with Chris and Ry and I’m concerned about the human overhead of trying to run test nets for people. I think the best compromise is to just cover the bills for people spinning up test networks on hosted kubernetes platforms. The oversight needs to be an easy application and approval process as well as an easy renewal process. I was thinking that $20k would be enough to cover. That’s at least 10 networks per month for a year.Thoughts?Dave----Dan SelmanCTO, Clause Inc.@danielselman
Dan, yes, but my response to that would be that Fabric should improve its UX around deploying and engaging chaincode/smart contract.Having a testnet does nothing to improve that experience IMNSHO.ChrisOn Thu, Oct 25, 2018 at 10:18 AM Dan Selman <dan@...> wrote:Chris,I think you raise some very valid points regarding operating a test net. I'd like to inject an end user perspective if I may.I think Ethereum wins from an ease of use perspective because people can easily write a smart contract and deploy it to a test network. That's what the vast majority of developers want to get done when they first encounter blockchain and IMO that is where Fabric (and others) fall down. HLF v1.3 has made it (relatively) easy to *start* the network on your laptop, but once you actually want to deploy chaincode and interact with it, it is a whole different story: you start hacking on fabcar and trying to understand how ./startFabric.sh, enrollAdrmin.js, registerUser.js, hlf-key-store, docker etc all work. Contrast with using http://remix.ethereum.org running in the browser, or connected to https://infura.io or https://kaleido.io for writing your first Solidity code.There's an opportunity to do something similar to remix using the Composer Playground connected to a test net which is worth exploring imo. I don't know if that should be the remit of HL/TSC but there's clearly a need for something like that to attract more developers.Sincerely,DanOn Thu, Oct 25, 2018 at 2:54 PM Christopher Ferris <chris.ferris@...> wrote:I think that we need to consider what we think a "test net" is. Is it a whole network that a developer spins up themselves? Is it a pre-existing network that we have launched and that developers can use to deploy a smart contract and kick the tires? Is it permissioned? Permissionless? What are the implications? Will there be likelihood of noisy neighbor situations? Crypto Kitties? Who will monitor the experience? What if it gets really bogged down? Who is monitoring that it is running? Will users walk away from a bad experience with a bad taste in their mouths? How will the experience reflect on the project and the organization?I don't disagree that we want to make it dead simple to engage with the various projects. However, I can say that for Fabric, the process could not be simpler.download fabric-samples repo, images and binaries (one click)cd first-networkbyfn.sh upthree commands and you have it running on your laptop.Could we create some helm charts that could be used to deploy our various projects to K8s? Let people deal with finding the compute however they like (maybe point at alternatives) but we don't host/pay?I ask because I really don't understand what problem we think we are solving with a test net, nor do I believe that we have considered the broader implications of running a cloud service on a volunteer basis.ChrisOn Wed, Oct 24, 2018 at 5:56 PM David Huseby <dhuseby@...> wrote:Hi TSC,I had a discussion with Ry this week while manning the booth at ATO in Raleigh and we both think the right way to go is a two pronged approach:The first prong will be to engage with the free kubernetes hosting being paid for by (I think) the CNCF project. Ry knows more about it than I do.The second prong would be to set aside some budget to cover the cost of people running networks on Amazon EKS. We could set some rule like we cover the cost up to $200 for the first month with an opportunity to get additional months with approval.I agree with Chris and Ry and I’m concerned about the human overhead of trying to run test nets for people. I think the best compromise is to just cover the bills for people spinning up test networks on hosted kubernetes platforms. The oversight needs to be an easy application and approval process as well as an easy renewal process. I was thinking that $20k would be enough to cover. That’s at least 10 networks per month for a year.Thoughts?Dave----Dan SelmanCTO, Clause Inc.@danielselman
camps of "itches":
1) chaincode and developer UX focused "let me quickly test this".
2) developer/integration testing of an instance of a blockchain for
purposes of running it through the gamut of tests and letting it soak
to test stability over time.
I draw the lines there because addressing #1 is not really a concern
of test nets. I would think that something like a universal HL
Composer would be the way to go. Or better yet, a plugin for VSCode
or Vim/Emacs that allows for quick deployment of chaincode to a
running blockchain and then has useful hooks for testing. Again, this
is more developer interfacing than test nets and outside of the scope
of the proposal.
#2 is absolutely test nets and I think the correct way to address this
is for HL to pay for managed Kubernetes infrastructure that teams can
use Kubernetes configs and/or Helm charts to deploy a blockchain
network on for whatever they need to do, be it chaos testing, load
testing, or just a soak test. We have already begun the effort to
standardize Kubernetes configs/Helm charts in several projects. The
HL Cello meeting is where those people have been congregating and the
next step there is to have the different blockchain projects start
publishing official, composable configs/charts as part of their build
process and published outputs. This would make it trivial for a
developer/tester to "kubectl apply fabric-1.3.yaml" on Amazon EKS or
GCE or whatever Kubernetes infrastructure we set up.
I prefer Amazon because it has a very good cost predictor calculator
that can be used to see how much the tests would cost to run and it
would help with our accounting.
As for HL managment, my plan is that we only have very minimal
management that is focused around giving out credentials to use the
Kubernetes infrastructure and handling re-embursements for the bills.
I think it should be entirely upon the user/tester to handle spinning
up/down their blockchain. IMO HL shouldn't be in the business of
being IT for everybody who wants to spin up a blockchain for testing.
The cost of that would be huge and the time spent on that would
greatly impact our ability to grow the community in all other ways.
Dave
---
David Huseby
Security Maven, Hyperledger
The Linux Foundation
+1-206-234-2392
dhuseby@...
From the burrow perspective, we'd be very interested in test networks to actually run testing in terms of performance testing, chaos testing, soak testing, long-lived network testing which a simple CI run post merge cannot really handle.
While I think both Dan and Chris make valid points in terms of positioning the test networks as things to help users get started faster, our interest from the burrow team is less in that area and more in having an HL managed infrastructure which can help us.... test.
My point, and the reason that Silas brought this up a few months ago to the TSC is that from a testing and performance perspective I think we could do much better as a community. CCNF and the Kubernetes project have a super clean and easy to approach CI system that made it dead simple for me as a contributor when I started making contributions to helm. From my perspective we'd be very interested to see if HL could coordinate with CCNF (as Ry mentioned on RocketChat).
____________________________________
Casey Kuhlman, Monax
CEO
Site: https://monax.io
Twitter: @monaxhq, @compleatang
Email: casey@...
Phone (US): +1-423-523-9531; (UK): +44-75-073-96359
____________________________________
On Thu, Oct 25, 2018 at 4:03 PM Christopher Ferris <chris.ferris@...> wrote:
Dan, yes, but my response to that would be that Fabric should improve its UX around deploying and engaging chaincode/smart contract.
Having a testnet does nothing to improve that experience IMNSHO.
Chris
On Thu, Oct 25, 2018 at 10:18 AM Dan Selman <dan@...> wrote:
Chris,
I think you raise some very valid points regarding operating a test net. I'd like to inject an end user perspective if I may.
I think Ethereum wins from an ease of use perspective because people can easily write a smart contract and deploy it to a test network. That's what the vast majority of developers want to get done when they first encounter blockchain and IMO that is where Fabric (and others) fall down. HLF v1.3 has made it (relatively) easy to *start* the network on your laptop, but once you actually want to deploy chaincode and interact with it, it is a whole different story: you start hacking on fabcar and trying to understand how ./startFabric.sh, enrollAdrmin.js, registerUser.js, hlf-key-store, docker etc all work. Contrast with using http://remix.ethereum.org running in the browser, or connected to https://infura.io or https://kaleido.io for writing your first Solidity code.
There's an opportunity to do something similar to remix using the Composer Playground connected to a test net which is worth exploring imo. I don't know if that should be the remit of HL/TSC but there's clearly a need for something like that to attract more developers.
Sincerely,
Dan
On Thu, Oct 25, 2018 at 2:54 PM Christopher Ferris <chris.ferris@...> wrote:
I think that we need to consider what we think a "test net" is. Is it a whole network that a developer spins up themselves? Is it a pre-existing network that we have launched and that developers can use to deploy a smart contract and kick the tires? Is it permissioned? Permissionless? What are the implications? Will there be likelihood of noisy neighbor situations? Crypto Kitties? Who will monitor the experience? What if it gets really bogged down? Who is monitoring that it is running? Will users walk away from a bad experience with a bad taste in their mouths? How will the experience reflect on the project and the organization?
I don't disagree that we want to make it dead simple to engage with the various projects. However, I can say that for Fabric, the process could not be simpler.
download fabric-samples repo, images and binaries (one click)
cd first-network
byfn.sh up
three commands and you have it running on your laptop.
Could we create some helm charts that could be used to deploy our various projects to K8s? Let people deal with finding the compute however they like (maybe point at alternatives) but we don't host/pay?
I ask because I really don't understand what problem we think we are solving with a test net, nor do I believe that we have considered the broader implications of running a cloud service on a volunteer basis.
Chris
On Wed, Oct 24, 2018 at 5:56 PM David Huseby <dhuseby@...> wrote:
Hi TSC,
I had a discussion with Ry this week while manning the booth at ATO in Raleigh and we both think the right way to go is a two pronged approach:
The first prong will be to engage with the free kubernetes hosting being paid for by (I think) the CNCF project. Ry knows more about it than I do.
The second prong would be to set aside some budget to cover the cost of people running networks on Amazon EKS. We could set some rule like we cover the cost up to $200 for the first month with an opportunity to get additional months with approval.
I agree with Chris and Ry and I’m concerned about the human overhead of trying to run test nets for people. I think the best compromise is to just cover the bills for people spinning up test networks on hosted kubernetes platforms. The oversight needs to be an easy application and approval process as well as an easy renewal process. I was thinking that $20k would be enough to cover. That’s at least 10 networks per month for a year.
Thoughts?
Dave
--
---
David Huseby
Security Maven, Hyperledger
The Linux Foundation
+1-206-234-2392
dhuseby@...
--
Dan Selman
CTO, Clause Inc.
@danielselman
To keep hosting costs in check, HL can reset the network periodically (again, similar to what Stellar does).
Cheers,
Duc
On 10/25/18, 11:13 AM, "tsc@... on behalf of David Huseby" <tsc@... on behalf of dhuseby@...> wrote:
I think all of you are making very good points. There seem to be two
camps of "itches":
1) chaincode and developer UX focused "let me quickly test this".
2) developer/integration testing of an instance of a blockchain for
purposes of running it through the gamut of tests and letting it soak
to test stability over time.
I draw the lines there because addressing #1 is not really a concern
of test nets. I would think that something like a universal HL
Composer would be the way to go. Or better yet, a plugin for VSCode
or Vim/Emacs that allows for quick deployment of chaincode to a
running blockchain and then has useful hooks for testing. Again, this
is more developer interfacing than test nets and outside of the scope
of the proposal.
#2 is absolutely test nets and I think the correct way to address this
is for HL to pay for managed Kubernetes infrastructure that teams can
use Kubernetes configs and/or Helm charts to deploy a blockchain
network on for whatever they need to do, be it chaos testing, load
testing, or just a soak test. We have already begun the effort to
standardize Kubernetes configs/Helm charts in several projects. The
HL Cello meeting is where those people have been congregating and the
next step there is to have the different blockchain projects start
publishing official, composable configs/charts as part of their build
process and published outputs. This would make it trivial for a
developer/tester to "kubectl apply fabric-1.3.yaml" on Amazon EKS or
GCE or whatever Kubernetes infrastructure we set up.
I prefer Amazon because it has a very good cost predictor calculator
that can be used to see how much the tests would cost to run and it
would help with our accounting.
As for HL managment, my plan is that we only have very minimal
management that is focused around giving out credentials to use the
Kubernetes infrastructure and handling re-embursements for the bills.
I think it should be entirely upon the user/tester to handle spinning
up/down their blockchain. IMO HL shouldn't be in the business of
being IT for everybody who wants to spin up a blockchain for testing.
The cost of that would be huge and the time spent on that would
greatly impact our ability to grow the community in all other ways.
Dave
---
David Huseby
Security Maven, Hyperledger
The Linux Foundation
+1-206-234-2392
dhuseby@...
>
> From the burrow perspective, we'd be very interested in test networks to actually run testing in terms of performance testing, chaos testing, soak testing, long-lived network testing which a simple CI run post merge cannot really handle.
>
> While I think both Dan and Chris make valid points in terms of positioning the test networks as things to help users get started faster, our interest from the burrow team is less in that area and more in having an HL managed infrastructure which can help us.... test.
>
> My point, and the reason that Silas brought this up a few months ago to the TSC is that from a testing and performance perspective I think we could do much better as a community. CCNF and the Kubernetes project have a super clean and easy to approach CI system that made it dead simple for me as a contributor when I started making contributions to helm. From my perspective we'd be very interested to see if HL could coordinate with CCNF (as Ry mentioned on RocketChat).
> ____________________________________
>
> Casey Kuhlman, Monax
> CEO
> Site: https://monax.io
> Twitter: @monaxhq, @compleatang
> Email: casey@...
> Phone (US): +1-423-523-9531; (UK): +44-75-073-96359
> ____________________________________
>
>
> On Thu, Oct 25, 2018 at 4:03 PM Christopher Ferris <chris.ferris@...> wrote:
>>
>> Dan, yes, but my response to that would be that Fabric should improve its UX around deploying and engaging chaincode/smart contract.
>> Having a testnet does nothing to improve that experience IMNSHO.
>>
>> Chris
>>
>> On Thu, Oct 25, 2018 at 10:18 AM Dan Selman <dan@...> wrote:
>>>
>>> Chris,
>>>
>>> I think you raise some very valid points regarding operating a test net. I'd like to inject an end user perspective if I may.
>>>
>>> I think Ethereum wins from an ease of use perspective because people can easily write a smart contract and deploy it to a test network. That's what the vast majority of developers want to get done when they first encounter blockchain and IMO that is where Fabric (and others) fall down. HLF v1.3 has made it (relatively) easy to *start* the network on your laptop, but once you actually want to deploy chaincode and interact with it, it is a whole different story: you start hacking on fabcar and trying to understand how ./startFabric.sh, enrollAdrmin.js, registerUser.js, hlf-key-store, docker etc all work. Contrast with using http://remix.ethereum.org running in the browser, or connected to https://infura.io or https://kaleido.io for writing your first Solidity code.
>>>
>>> There's an opportunity to do something similar to remix using the Composer Playground connected to a test net which is worth exploring imo. I don't know if that should be the remit of HL/TSC but there's clearly a need for something like that to attract more developers.
>>>
>>> Sincerely,
>>> Dan
>>>
>>>
>>> On Thu, Oct 25, 2018 at 2:54 PM Christopher Ferris <chris.ferris@...> wrote:
>>>>
>>>> I think that we need to consider what we think a "test net" is. Is it a whole network that a developer spins up themselves? Is it a pre-existing network that we have launched and that developers can use to deploy a smart contract and kick the tires? Is it permissioned? Permissionless? What are the implications? Will there be likelihood of noisy neighbor situations? Crypto Kitties? Who will monitor the experience? What if it gets really bogged down? Who is monitoring that it is running? Will users walk away from a bad experience with a bad taste in their mouths? How will the experience reflect on the project and the organization?
>>>>
>>>> I don't disagree that we want to make it dead simple to engage with the various projects. However, I can say that for Fabric, the process could not be simpler.
>>>>
>>>> download fabric-samples repo, images and binaries (one click)
>>>> cd first-network
>>>> byfn.sh up
>>>>
>>>> three commands and you have it running on your laptop.
>>>>
>>>> Could we create some helm charts that could be used to deploy our various projects to K8s? Let people deal with finding the compute however they like (maybe point at alternatives) but we don't host/pay?
>>>>
>>>> I ask because I really don't understand what problem we think we are solving with a test net, nor do I believe that we have considered the broader implications of running a cloud service on a volunteer basis.
>>>>
>>>> Chris
>>>>
>>>> On Wed, Oct 24, 2018 at 5:56 PM David Huseby <dhuseby@...> wrote:
>>>>>
>>>>> Hi TSC,
>>>>>
>>>>> I had a discussion with Ry this week while manning the booth at ATO in Raleigh and we both think the right way to go is a two pronged approach:
>>>>>
>>>>> The first prong will be to engage with the free kubernetes hosting being paid for by (I think) the CNCF project. Ry knows more about it than I do.
>>>>>
>>>>> The second prong would be to set aside some budget to cover the cost of people running networks on Amazon EKS. We could set some rule like we cover the cost up to $200 for the first month with an opportunity to get additional months with approval.
>>>>>
>>>>> I agree with Chris and Ry and I’m concerned about the human overhead of trying to run test nets for people. I think the best compromise is to just cover the bills for people spinning up test networks on hosted kubernetes platforms. The oversight needs to be an easy application and approval process as well as an easy renewal process. I was thinking that $20k would be enough to cover. That’s at least 10 networks per month for a year.
>>>>>
>>>>> Thoughts?
>>>>>
>>>>> Dave
>>>>> --
>>>>> ---
>>>>> David Huseby
>>>>> Security Maven, Hyperledger
>>>>> The Linux Foundation
>>>>> +1-206-234-2392
>>>>> dhuseby@...
>>>
>>>
>>>
>>> --
>>> Dan Selman
>>> CTO, Clause Inc.
>>> @danielselman
>>>
>>
From the burrow perspective, we'd be very interested in test networks to actually run testing in terms of performance testing, chaos testing, soak testing, long-lived network testing which a simple CI run post merge cannot really handle.While I think both Dan and Chris make valid points in terms of positioning the test networks as things to help users get started faster, our interest from the burrow team is less in that area and more in having an HL managed infrastructure which can help us.... test.My point, and the reason that Silas brought this up a few months ago to the TSC is that from a testing and performance perspective I think we could do much better as a community. CCNF and the Kubernetes project have a super clean and easy to approach CI system that made it dead simple for me as a contributor when I started making contributions to helm. From my perspective we'd be very interested to see if HL could coordinate with CCNF (as Ry mentioned on RocketChat).
Tldr: We only scale this if we have multiple companies hosting. What kind of HL support is required to facilitate that?
I agree with Chris that at least for native contracts like transaction families and chaincode our projects have scripts so developers can launch mini environments on their laptops (in sawtooth it’s basically `docker-compose up`). For on-chain smart contracts like burrow, sabre, and so forth developers might appreciate a running testnet to deploy to.
I kind of expected Casey to come in along those lines, so it’s really helpful to read his priority for stress testing infrastructure.
Last year, running up to our 1.0 launch, the sawtooth team found they needed to automate the long running tests and associated cloud deployments. We’ve taken to calling these our LR networks.
LRs are typically 10 node networks + load generation and stats collections for 1 to 7 days. These LR networks have been invaluable to testing features before issuing PRs.
This stress testing is not cheap though. It’s one thing to pay for an idle instance and it’s another to pay for 10 fully utilized instances.
And as we are normally testing nightly builds along with experimental branches etc., it’s really more like a multiple of 10.
Based on the CNCF readme I’d bet the sawtooth project alone could easily consume all their credits. CNCF, then is probably a good start but not a complete solution to support all the HL projects. Similarly any direct budget estimate for infrastructure would need to be on the order of $10k/month/project which is probably not tenable.
For sawtooth, we are looking at a crawl, walk, run with the community to expand from LR nets to larger longer testnets. Start with some machines provided by companies x, y, z and then add more users/instances. Actually demonstrating that multiple companies can attach to a running network is a highly valuable exercise. We’re shooting to have the crawl version of the testnet up imminently. In getting that underway we may discover some of the administrative or other challenges that HL can solve in subsequent iterations.
Regards,
Dan
From: <tsc@...> on behalf of Ry Jones <rjones@...>
Date: Friday, October 26, 2018 at 12:06 AM
To: Casey Kuhlman <casey@...>
Cc: Christopher Ferris <chris.ferris@...>, "tsc@..." <tsc@...>
Subject: Re: [Hyperledger TSC] Test net thinking
For people who are interested in CNCF services, the gatekeeper is CNCF, not Hyperledger.
Go here: https://github.com/cncf/cluster
Following the template, file an issue, make your case. Note it is a limited resource and priority is given to CNCF projects. I've talked to Dan Kohn a couple of times and he wants to use the resource as much as possible.
Ry
From the burrow perspective, we'd be very interested in test networks to actually run testing in terms of performance testing, chaos testing, soak testing, long-lived network testing which a simple CI run post merge cannot really handle.
While I think both Dan and Chris make valid points in terms of positioning the test networks as things to help users get started faster, our interest from the burrow team is less in that area and more in having an HL managed infrastructure which can help us.... test.
My point, and the reason that Silas brought this up a few months ago to the TSC is that from a testing and performance perspective I think we could do much better as a community. CCNF and the Kubernetes project have a super clean and easy to approach CI system that made it dead simple for me as a contributor when I started making contributions to helm. From my perspective we'd be very interested to see if HL could coordinate with CCNF (as Ry mentioned on RocketChat).
--
Tldr: We only scale this if we have multiple companies hosting. What kind of HL support is required to facilitate that?
I agree with Chris that at least for native contracts like transaction families and chaincode our projects have scripts so developers can launch mini environments on their laptops (in sawtooth it’s basically `docker-compose up`). For on-chain smart contracts like burrow, sabre, and so forth developers might appreciate a running testnet to deploy to.
I kind of expected Casey to come in along those lines, so it’s really helpful to read his priority for stress testing infrastructure.
Last year, running up to our 1.0 launch, the sawtooth team found they needed to automate the long running tests and associated cloud deployments. We’ve taken to calling these our LR networks.
LRs are typically 10 node networks + load generation and stats collections for 1 to 7 days. These LR networks have been invaluable to testing features before issuing PRs.
This stress testing is not cheap though. It’s one thing to pay for an idle instance and it’s another to pay for 10 fully utilized instances.
And as we are normally testing nightly builds along with experimental branches etc., it’s really more like a multiple of 10.
Based on the CNCF readme I’d bet the sawtooth project alone could easily consume all their credits. CNCF, then is probably a good start but not a complete solution to support all the HL projects. Similarly any direct budget estimate for infrastructure would need to be on the order of $10k/month/project which is probably not tenable.
For sawtooth, we are looking at a crawl, walk, run with the community to expand from LR nets to larger longer testnets. Start with some machines provided by companies x, y, z and then add more users/instances. Actually demonstrating that multiple companies can attach to a running network is a highly valuable exercise. We’re shooting to have the crawl version of the testnet up imminently. In getting that underway we may discover some of the administrative or other challenges that HL can solve in subsequent iterations.
Regards,
Dan
From: <tsc@...> on behalf of Ry Jones <rjones@...>
Date: Friday, October 26, 2018 at 12:06 AM
To: Casey Kuhlman <casey@...>
Cc: Christopher Ferris <chris.ferris@...>, "tsc@..." <tsc@...>
Subject: Re: [Hyperledger TSC] Test net thinking
For people who are interested in CNCF services, the gatekeeper is CNCF, not Hyperledger.
Go here: https://github.com/cncf/cluster
Following the template, file an issue, make your case. Note it is a limited resource and priority is given to CNCF projects. I've talked to Dan Kohn a couple of times and he wants to use the resource as much as possible.
Ry
On Thu, Oct 25, 2018 at 8:28 AM Casey Kuhlman via Lists.Hyperledger.Org <casey=monax.io@...> wrote:
From the burrow perspective, we'd be very interested in test networks to actually run testing in terms of performance testing, chaos testing, soak testing, long-lived network testing which a simple CI run post merge cannot really handle.
While I think both Dan and Chris make valid points in terms of positioning the test networks as things to help users get started faster, our interest from the burrow team is less in that area and more in having an HL managed infrastructure which can help us.... test.
My point, and the reason that Silas brought this up a few months ago to the TSC is that from a testing and performance perspective I think we could do much better as a community. CCNF and the Kubernetes project have a super clean and easy to approach CI system that made it dead simple for me as a contributor when I started making contributions to helm. From my perspective we'd be very interested to see if HL could coordinate with CCNF (as Ry mentioned on RocketChat).
--
seems a bit much for this kind of thing. If the goal is to just kick
the tires or to have a soak test, why couldn't this be done on minimal
virtual machines or minimal hardware?
Dave
---
David Huseby
Security Maven, Hyperledger
The Linux Foundation
+1-206-234-2392
dhuseby@...
On Fri, Oct 26, 2018 at 12:30 PM Christopher Ferris
<chris.ferris@...> wrote:
Interesting that Casey thinks of long-running tests, performance, chaos, etc. I always think of a testnet as a place where devs can kick the tires without having to do the heavy lifting of setting up a network themselves.
For the long-running tests, etc. we have nightly runs and we are gearing up a weekly as well that will be long running test that has kitchen sinks thrown at it and stuff. Not a large environment, but more than what we do for the merge and nightly CI.
IBM also runs a series of long running tests leading up to a release on our platforms. We do share the results indirectly and it would be nice if they were just public, frankly (this is me speaking not for IBM but as a member of the community). We are working on an ability to spin up networks arbitrary complexity and scale, so that tests can be run. It would be nice to have that running in the community, but again, not as a test net for users as much as for what Casey was advocating for.
Cheers
Chris
On Fri, Oct 26, 2018 at 10:24 AM Middleton, Dan <dan.middleton@...> wrote:
Tldr: We only scale this if we have multiple companies hosting. What kind of HL support is required to facilitate that?
I agree with Chris that at least for native contracts like transaction families and chaincode our projects have scripts so developers can launch mini environments on their laptops (in sawtooth it’s basically `docker-compose up`). For on-chain smart contracts like burrow, sabre, and so forth developers might appreciate a running testnet to deploy to.
I kind of expected Casey to come in along those lines, so it’s really helpful to read his priority for stress testing infrastructure.
Last year, running up to our 1.0 launch, the sawtooth team found they needed to automate the long running tests and associated cloud deployments. We’ve taken to calling these our LR networks.
LRs are typically 10 node networks + load generation and stats collections for 1 to 7 days. These LR networks have been invaluable to testing features before issuing PRs.
This stress testing is not cheap though. It’s one thing to pay for an idle instance and it’s another to pay for 10 fully utilized instances.
And as we are normally testing nightly builds along with experimental branches etc., it’s really more like a multiple of 10.
Based on the CNCF readme I’d bet the sawtooth project alone could easily consume all their credits. CNCF, then is probably a good start but not a complete solution to support all the HL projects. Similarly any direct budget estimate for infrastructure would need to be on the order of $10k/month/project which is probably not tenable.
For sawtooth, we are looking at a crawl, walk, run with the community to expand from LR nets to larger longer testnets. Start with some machines provided by companies x, y, z and then add more users/instances. Actually demonstrating that multiple companies can attach to a running network is a highly valuable exercise. We’re shooting to have the crawl version of the testnet up imminently. In getting that underway we may discover some of the administrative or other challenges that HL can solve in subsequent iterations.
Regards,
Dan
From: <tsc@...> on behalf of Ry Jones <rjones@...>
Date: Friday, October 26, 2018 at 12:06 AM
To: Casey Kuhlman <casey@...>
Cc: Christopher Ferris <chris.ferris@...>, "tsc@..." <tsc@...>
Subject: Re: [Hyperledger TSC] Test net thinking
For people who are interested in CNCF services, the gatekeeper is CNCF, not Hyperledger.
Go here: https://github.com/cncf/cluster
Following the template, file an issue, make your case. Note it is a limited resource and priority is given to CNCF projects. I've talked to Dan Kohn a couple of times and he wants to use the resource as much as possible.
Ry
On Thu, Oct 25, 2018 at 8:28 AM Casey Kuhlman via Lists.Hyperledger.Org <casey=monax.io@...> wrote:
From the burrow perspective, we'd be very interested in test networks to actually run testing in terms of performance testing, chaos testing, soak testing, long-lived network testing which a simple CI run post merge cannot really handle.
While I think both Dan and Chris make valid points in terms of positioning the test networks as things to help users get started faster, our interest from the burrow team is less in that area and more in having an HL managed infrastructure which can help us.... test.
My point, and the reason that Silas brought this up a few months ago to the TSC is that from a testing and performance perspective I think we could do much better as a community. CCNF and the Kubernetes project have a super clean and easy to approach CI system that made it dead simple for me as a contributor when I started making contributions to helm. From my perspective we'd be very interested to see if HL could coordinate with CCNF (as Ry mentioned on RocketChat).
--
Ry Jones
Community Architect, Hyperledger
Chat: @ry
If we contribute a basic K8s cluster (1 master/3 nodes) running 3 Sawtooth validators with m4.large machines that’s approx 40c/hour on demand.
Obviously this can be reduced further using 1 year reserved instances (m5.large with no upfront payment is ~$45/month) so on this basis in round figures if we had 10 participants each contributing a 3-validator cluster we could create a 30-validitor Sawtooth testnet running across multiple regions for ~$2k/month - possibly more depending on network/storage requirements.
HTH.
Best
--
Duncan Johnston-Watt
CEO, Blockchain Technology Partners
+44 777 190 2653 | @duncanjw
On 30 Oct 2018, at 01:15, David Huseby <dhuseby@...> wrote:
Does it really take big iron to run these tests? $10k/month/project
seems a bit much for this kind of thing. If the goal is to just kick
the tires or to have a soak test, why couldn't this be done on minimal
virtual machines or minimal hardware?
Dave
---
David Huseby
Security Maven, Hyperledger
The Linux Foundation
+1-206-234-2392
dhuseby@...
On Fri, Oct 26, 2018 at 12:30 PM Christopher Ferris
<chris.ferris@...> wrote:
Interesting that Casey thinks of long-running tests, performance, chaos, etc. I always think of a testnet as a place where devs can kick the tires without having to do the heavy lifting of setting up a network themselves.
For the long-running tests, etc. we have nightly runs and we are gearing up a weekly as well that will be long running test that has kitchen sinks thrown at it and stuff. Not a large environment, but more than what we do for the merge and nightly CI.
IBM also runs a series of long running tests leading up to a release on our platforms. We do share the results indirectly and it would be nice if they were just public, frankly (this is me speaking not for IBM but as a member of the community). We are working on an ability to spin up networks arbitrary complexity and scale, so that tests can be run. It would be nice to have that running in the community, but again, not as a test net for users as much as for what Casey was advocating for.
Cheers
ChrisOn Fri, Oct 26, 2018 at 10:24 AM Middleton, Dan <dan.middleton@...> wrote:
Tldr: We only scale this if we have multiple companies hosting. What kind of HL support is required to facilitate that?
I agree with Chris that at least for native contracts like transaction families and chaincode our projects have scripts so developers can launch mini environments on their laptops (in sawtooth it’s basically `docker-compose up`). For on-chain smart contracts like burrow, sabre, and so forth developers might appreciate a running testnet to deploy to.
I kind of expected Casey to come in along those lines, so it’s really helpful to read his priority for stress testing infrastructure.
Last year, running up to our 1.0 launch, the sawtooth team found they needed to automate the long running tests and associated cloud deployments. We’ve taken to calling these our LR networks.
LRs are typically 10 node networks + load generation and stats collections for 1 to 7 days. These LR networks have been invaluable to testing features before issuing PRs.
This stress testing is not cheap though. It’s one thing to pay for an idle instance and it’s another to pay for 10 fully utilized instances.
And as we are normally testing nightly builds along with experimental branches etc., it’s really more like a multiple of 10.
Based on the CNCF readme I’d bet the sawtooth project alone could easily consume all their credits. CNCF, then is probably a good start but not a complete solution to support all the HL projects. Similarly any direct budget estimate for infrastructure would need to be on the order of $10k/month/project which is probably not tenable.
For sawtooth, we are looking at a crawl, walk, run with the community to expand from LR nets to larger longer testnets. Start with some machines provided by companies x, y, z and then add more users/instances. Actually demonstrating that multiple companies can attach to a running network is a highly valuable exercise. We’re shooting to have the crawl version of the testnet up imminently. In getting that underway we may discover some of the administrative or other challenges that HL can solve in subsequent iterations.
Regards,
Dan
From: <tsc@...> on behalf of Ry Jones <rjones@...>
Date: Friday, October 26, 2018 at 12:06 AM
To: Casey Kuhlman <casey@...>
Cc: Christopher Ferris <chris.ferris@...>, "tsc@..." <tsc@...>
Subject: Re: [Hyperledger TSC] Test net thinking
For people who are interested in CNCF services, the gatekeeper is CNCF, not Hyperledger.
Go here: https://github.com/cncf/cluster
Following the template, file an issue, make your case. Note it is a limited resource and priority is given to CNCF projects. I've talked to Dan Kohn a couple of times and he wants to use the resource as much as possible.
Ry
On Thu, Oct 25, 2018 at 8:28 AM Casey Kuhlman via Lists.Hyperledger.Org <casey=monax.io@...> wrote:
From the burrow perspective, we'd be very interested in test networks to actually run testing in terms of performance testing, chaos testing, soak testing, long-lived network testing which a simple CI run post merge cannot really handle.
While I think both Dan and Chris make valid points in terms of positioning the test networks as things to help users get started faster, our interest from the burrow team is less in that area and more in having an HL managed infrastructure which can help us.... test.
My point, and the reason that Silas brought this up a few months ago to the TSC is that from a testing and performance perspective I think we could do much better as a community. CCNF and the Kubernetes project have a super clean and easy to approach CI system that made it dead simple for me as a contributor when I started making contributions to helm. From my perspective we'd be very interested to see if HL could coordinate with CCNF (as Ry mentioned on RocketChat).
--
Ry Jones
Community Architect, Hyperledger
Chat: @ry
Does it really take big iron to run these tests? $10k/month/project
seems a bit much for this kind of thing. If the goal is to just kick
the tires or to have a soak test, why couldn't this be done on minimal
virtual machines or minimal hardware?
Dave
---
David Huseby
Security Maven, Hyperledger
The Linux Foundation
+1-206-234-2392
dhuseby@...
On Fri, Oct 26, 2018 at 12:30 PM Christopher Ferris
<chris.ferris@...> wrote:
>
> Interesting that Casey thinks of long-running tests, performance, chaos, etc. I always think of a testnet as a place where devs can kick the tires without having to do the heavy lifting of setting up a network themselves.
>
> For the long-running tests, etc. we have nightly runs and we are gearing up a weekly as well that will be long running test that has kitchen sinks thrown at it and stuff. Not a large environment, but more than what we do for the merge and nightly CI.
>
> IBM also runs a series of long running tests leading up to a release on our platforms. We do share the results indirectly and it would be nice if they were just public, frankly (this is me speaking not for IBM but as a member of the community). We are working on an ability to spin up networks arbitrary complexity and scale, so that tests can be run. It would be nice to have that running in the community, but again, not as a test net for users as much as for what Casey was advocating for.
>
> Cheers
>
> Chris
>
> On Fri, Oct 26, 2018 at 10:24 AM Middleton, Dan <dan.middleton@...> wrote:
>>
>> Tldr: We only scale this if we have multiple companies hosting. What kind of HL support is required to facilitate that?
>>
>>
>>
>> I agree with Chris that at least for native contracts like transaction families and chaincode our projects have scripts so developers can launch mini environments on their laptops (in sawtooth it’s basically `docker-compose up`). For on-chain smart contracts like burrow, sabre, and so forth developers might appreciate a running testnet to deploy to.
>>
>>
>>
>> I kind of expected Casey to come in along those lines, so it’s really helpful to read his priority for stress testing infrastructure.
>>
>>
>>
>> Last year, running up to our 1.0 launch, the sawtooth team found they needed to automate the long running tests and associated cloud deployments. We’ve taken to calling these our LR networks.
>>
>>
>>
>> LRs are typically 10 node networks + load generation and stats collections for 1 to 7 days. These LR networks have been invaluable to testing features before issuing PRs.
>>
>>
>>
>> This stress testing is not cheap though. It’s one thing to pay for an idle instance and it’s another to pay for 10 fully utilized instances.
>>
>> And as we are normally testing nightly builds along with experimental branches etc., it’s really more like a multiple of 10.
>>
>>
>>
>> Based on the CNCF readme I’d bet the sawtooth project alone could easily consume all their credits. CNCF, then is probably a good start but not a complete solution to support all the HL projects. Similarly any direct budget estimate for infrastructure would need to be on the order of $10k/month/project which is probably not tenable.
>>
>>
>>
>> For sawtooth, we are looking at a crawl, walk, run with the community to expand from LR nets to larger longer testnets. Start with some machines provided by companies x, y, z and then add more users/instances. Actually demonstrating that multiple companies can attach to a running network is a highly valuable exercise. We’re shooting to have the crawl version of the testnet up imminently. In getting that underway we may discover some of the administrative or other challenges that HL can solve in subsequent iterations.
>>
>>
>>
>> Regards,
>> Dan
>>
>>
>>
>>
>>
>> From: <tsc@...> on behalf of Ry Jones <rjones@...>
>> Date: Friday, October 26, 2018 at 12:06 AM
>> To: Casey Kuhlman <casey@...>
>> Cc: Christopher Ferris <chris.ferris@...>, "tsc@..." <tsc@...>
>> Subject: Re: [Hyperledger TSC] Test net thinking
>>
>>
>>
>> For people who are interested in CNCF services, the gatekeeper is CNCF, not Hyperledger.
>>
>>
>>
>> Go here: https://github.com/cncf/cluster
>>
>>
>>
>> Following the template, file an issue, make your case. Note it is a limited resource and priority is given to CNCF projects. I've talked to Dan Kohn a couple of times and he wants to use the resource as much as possible.
>>
>>
>>
>> Ry
>>
>>
>>
>> On Thu, Oct 25, 2018 at 8:28 AM Casey Kuhlman via Lists.Hyperledger.Org <casey=monax.io@...> wrote:
>>
>> From the burrow perspective, we'd be very interested in test networks to actually run testing in terms of performance testing, chaos testing, soak testing, long-lived network testing which a simple CI run post merge cannot really handle.
>>
>>
>>
>> While I think both Dan and Chris make valid points in terms of positioning the test networks as things to help users get started faster, our interest from the burrow team is less in that area and more in having an HL managed infrastructure which can help us.... test.
>>
>>
>>
>> My point, and the reason that Silas brought this up a few months ago to the TSC is that from a testing and performance perspective I think we could do much better as a community. CCNF and the Kubernetes project have a super clean and easy to approach CI system that made it dead simple for me as a contributor when I started making contributions to helm. From my perspective we'd be very interested to see if HL could coordinate with CCNF (as Ry mentioned on RocketChat).
>>
>> --
>>
>> Ry Jones
>>
>> Community Architect, Hyperledger
>>
>> Chat: @ry
>
You cannot do performance and scale testing on nominal hardware. Long running and chaos tests, sure.ChrisOn Mon, Oct 29, 2018 at 9:15 PM David Huseby <dhuseby@...> wrote:Does it really take big iron to run these tests? $10k/month/project
seems a bit much for this kind of thing. If the goal is to just kick
the tires or to have a soak test, why couldn't this be done on minimal
virtual machines or minimal hardware?
Dave
---
David Huseby
Security Maven, Hyperledger
The Linux Foundation
+1-206-234-2392
dhuseby@...
On Fri, Oct 26, 2018 at 12:30 PM Christopher Ferris
<chris.ferris@...> wrote:
>
> Interesting that Casey thinks of long-running tests, performance, chaos, etc. I always think of a testnet as a place where devs can kick the tires without having to do the heavy lifting of setting up a network themselves.
>
> For the long-running tests, etc. we have nightly runs and we are gearing up a weekly as well that will be long running test that has kitchen sinks thrown at it and stuff. Not a large environment, but more than what we do for the merge and nightly CI.
>
> IBM also runs a series of long running tests leading up to a release on our platforms. We do share the results indirectly and it would be nice if they were just public, frankly (this is me speaking not for IBM but as a member of the community). We are working on an ability to spin up networks arbitrary complexity and scale, so that tests can be run. It would be nice to have that running in the community, but again, not as a test net for users as much as for what Casey was advocating for.
>
> Cheers
>
> Chris
>
> On Fri, Oct 26, 2018 at 10:24 AM Middleton, Dan <dan.middleton@...> wrote:
>>
>> Tldr: We only scale this if we have multiple companies hosting. What kind of HL support is required to facilitate that?
>>
>>
>>
>> I agree with Chris that at least for native contracts like transaction families and chaincode our projects have scripts so developers can launch mini environments on their laptops (in sawtooth it’s basically `docker-compose up`). For on-chain smart contracts like burrow, sabre, and so forth developers might appreciate a running testnet to deploy to.
>>
>>
>>
>> I kind of expected Casey to come in along those lines, so it’s really helpful to read his priority for stress testing infrastructure.
>>
>>
>>
>> Last year, running up to our 1.0 launch, the sawtooth team found they needed to automate the long running tests and associated cloud deployments. We’ve taken to calling these our LR networks.
>>
>>
>>
>> LRs are typically 10 node networks + load generation and stats collections for 1 to 7 days. These LR networks have been invaluable to testing features before issuing PRs.
>>
>>
>>
>> This stress testing is not cheap though. It’s one thing to pay for an idle instance and it’s another to pay for 10 fully utilized instances.
>>
>> And as we are normally testing nightly builds along with experimental branches etc., it’s really more like a multiple of 10.
>>
>>
>>
>> Based on the CNCF readme I’d bet the sawtooth project alone could easily consume all their credits. CNCF, then is probably a good start but not a complete solution to support all the HL projects. Similarly any direct budget estimate for infrastructure would need to be on the order of $10k/month/project which is probably not tenable.
>>
>>
>>
>> For sawtooth, we are looking at a crawl, walk, run with the community to expand from LR nets to larger longer testnets. Start with some machines provided by companies x, y, z and then add more users/instances. Actually demonstrating that multiple companies can attach to a running network is a highly valuable exercise. We’re shooting to have the crawl version of the testnet up imminently. In getting that underway we may discover some of the administrative or other challenges that HL can solve in subsequent iterations.
>>
>>
>>
>> Regards,
>> Dan
>>
>>
>>
>>
>>
>> From: <tsc@...> on behalf of Ry Jones <rjones@...>
>> Date: Friday, October 26, 2018 at 12:06 AM
>> To: Casey Kuhlman <casey@...>
>> Cc: Christopher Ferris <chris.ferris@...>, "tsc@..." <tsc@...>
>> Subject: Re: [Hyperledger TSC] Test net thinking
>>
>>
>>
>> For people who are interested in CNCF services, the gatekeeper is CNCF, not Hyperledger.
>>
>>
>>
>> Go here: https://github.com/cncf/cluster
>>
>>
>>
>> Following the template, file an issue, make your case. Note it is a limited resource and priority is given to CNCF projects. I've talked to Dan Kohn a couple of times and he wants to use the resource as much as possible.
>>
>>
>>
>> Ry
>>
>>
>>
>> On Thu, Oct 25, 2018 at 8:28 AM Casey Kuhlman via Lists.Hyperledger.Org <casey=monax.io@...> wrote:
>>
>> From the burrow perspective, we'd be very interested in test networks to actually run testing in terms of performance testing, chaos testing, soak testing, long-lived network testing which a simple CI run post merge cannot really handle.
>>
>>
>>
>> While I think both Dan and Chris make valid points in terms of positioning the test networks as things to help users get started faster, our interest from the burrow team is less in that area and more in having an HL managed infrastructure which can help us.... test.
>>
>>
>>
>> My point, and the reason that Silas brought this up a few months ago to the TSC is that from a testing and performance perspective I think we could do much better as a community. CCNF and the Kubernetes project have a super clean and easy to approach CI system that made it dead simple for me as a contributor when I started making contributions to helm. From my perspective we'd be very interested to see if HL could coordinate with CCNF (as Ry mentioned on RocketChat).
>>
>> --
>>
>> Ry Jones
>>
>> Community Architect, Hyperledger
>>
>> Chat: @ry
>