Date   
Documentation Workgroup: Agenda for Friday, 01 Mar

Anthony O'Dowd
 

Hi All,

We will hold the documentation workgroup on Friday, 01 Mar. We run the meeting twice during the day to make it easier for both Eastern and Western hemispheres.  See meeting times at the bottom of this note.  

Our agenda this week remains quite full! So much that we'll pick up from where we left off last week. That'll be after a review development progress with Pam and Joe, to catch up on the latest features.

So we'll start this week proper with Pam's new topic on Policy. Then we'll catch up on Chaincode lifecycle with Nik. Joe will give us the latest on the new Orderer topic. We still have to merge the final Developing  Apps topic on Transaction context. And it's been a little slow on the new Advanced Commercial Paper tutorial and sample.

If you'd like to contribute to these or another topic, please join the call -- there are now lots of people who are keen to help you contribute to the documentation!

The full agenda is available for you to read here : https://drive.google.com/open?id=1zWL5mY3J0heXvfvlx3-QpFLg_tGsvy9W
Feel free to post comments to the mailing list, so that we can include at the meeting. Or you can just come along, listen and discuss - you're always welcome!

Very best regards, Anthony.

Meeting Details
-------------
Please use the following link to attend the meeting:  https://zoom.us/j/6223336701

Zoom should work in the browser.  I will open the call 5 minutes early so that folks can test it out. I'll also monitor the RocketChat at https://chat.hyperledger.org/channel/fabric-release so that if anyone has issues, ping me there!

More Zoom connection options at the bottom of this note.

The meeting times are as follows:

Meeting 74A: Friday 01 Mar
                   1130 India Standard Time
                   1400 China Standard Time
                   1500 Japan Standard Time
                   1700 Australia Eastern Time
                   1400 Singapore Time
                   1000 Gulf Standard Time
                   0900 Moscow Standard Time
                   0600 Greenwich Mean Time
                   0700 Central European Time
   
Meeting 74B: Friday 01 Mar
              1000 Central Daylight Time
                   1100 Eastern Daylight Time
                   0800 Pacific Daylight Time
                   1200 Brasil Standard Time
                   1600 Greenwich Mean Time
                   1700 Central European Time
                   1800 Moscow Standard Time
 
More Zoom details
----------------

Join from PC, Mac, Linux, iOS or Android: https://zoom.us/j/6223336701
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

Re: #fabric-questions #fabric-questions

Nick Frunza
 

Yes, we are looking into, I'm adding Raju to this email, he is looking into this.

Do you know any samples with working code to receive or request metrics?

thank you
Nik

On Thu, Feb 28, 2019 at 3:45 AM Alessandro Sorniotti <ale.linux@...> wrote:
Nik

Have you looked at

https://hyperledger-fabric.readthedocs.io/en/release-1.4/operations_service.html

?

Hope it helps.
Cheers,
Ale

On Wed, 20 Feb 2019, at 9:14 PM, Nick Frunza wrote:
> Hello,
>
> HLExplorer project needs help on configuring HL Fabric network with
> metrics, and how to get the metrics, anyone has an example or can guide?
>
> thank you
> Nik
>





--
Nik Frunza

Re: #fabric-questions #fabric-questions

Alessandro Sorniotti
 

On Wed, 20 Feb 2019, at 9:14 PM, Nick Frunza wrote:
Hello,

HLExplorer project needs help on configuring HL Fabric network with
metrics, and how to get the metrics, anyone has an example or can guide?

thank you
Nik

#fabric building fabric image error #fabric

Sehun Park <sehunnp@...>
 

Hi

I was trying to build docker fabric images and got error.
I cloned 1.4 version fabric source from git.
I typed make docker in fabric folder.


How can i solve this problem? 
Please help me.

Thanks

Best Regards,


Sehun

Re: Fabric-Kubernetes- prod Deploy of CA to K8s without using helm charts and cryptogen.

Raj Shekhar Bhardwaj
 

Thanks for sharing, I am also working on same thing will share to the community after it is done.

On Wed, Feb 27, 2019 at 12:17 AM Nye Liu <nye@...> wrote:
This might be of use to you:
https://github.com/Blockdaemon/hlf-service-network/tree/master/k8s

Avoiding helm charts is easy (if you are accustomed to jinja2); avoiding cryptogen is not so simple. I have a bunch of ansible playbooks that do ca-server cert bootstrapping, but nothing good for k8s (as of yet).

I'm currently working on a completely cryptogen free solution to bootstrapping a fabric network using only openssl+ca-server for cert generation, but it is still a work in progress. Considering how easy it is to safely distribute public keys in a k8s cluster using config-maps, the cryptogen method doesn't make very much sense.

IMO the byfn and (related) examples provided are of extremely limited use past a basics tutorial; if anything, they make certificate generation/distribution seem much more complicated than it really is.

Re: Fabric-Kubernetes- prod Deploy of CA to K8s without using helm charts and cryptogen.

Nye Liu <nye@...>
 

This might be of use to you:
https://github.com/Blockdaemon/hlf-service-network/tree/master/k8s

Avoiding helm charts is easy (if you are accustomed to jinja2); avoiding cryptogen is not so simple. I have a bunch of ansible playbooks that do ca-server cert bootstrapping, but nothing good for k8s (as of yet).

I'm currently working on a completely cryptogen free solution to bootstrapping a fabric network using only openssl+ca-server for cert generation, but it is still a work in progress. Considering how easy it is to safely distribute public keys in a k8s cluster using config-maps, the cryptogen method doesn't make very much sense.

IMO the byfn and (related) examples provided are of extremely limited use past a basics tutorial; if anything, they make certificate generation/distribution seem much more complicated than it really is.

Fabric-Kubernetes- prod Deploy of CA to K8s without using helm charts and cryptogen.

Raj Shekhar Bhardwaj
 

Hi,

#Fabric-Kubernetes

Is there any repo for deploying fabric-ca on Kubernetes without using Helm charts and cryptogen.

Thanks,
Raj

Fabric playbacks this week

David Enyeart
 

Feb 26 10:00 EST / 15:00 UTC
Fabric token playback and chaincode interoperability review
https://jira.hyperledger.org/browse/FAB-11144
https://jira.hyperledger.org/browse/FAB-11965
Angelo De Caro, Wenjian Qiao
https://zoom.us/my/hyperledger.community.3


Feb 28 10:00 EST / 15:00 UTC
Fabric Desktop proposal
https://docs.google.com/document/d/1XX-I1uud0DV2TVRj6H5w8r5OaX0W0VCZqveeLqMBqBU/edit
Yi Deng
https://zoom.us/my/hyperledger.community.3


The full schedule and previous recordings can be found on the wiki: https://wiki.hyperledger.org/display/fabric/Playbacks

Any updates can be found on rocket chat #fabric-playbacks prior to the start of the meeting.


Thanks,
Dave Enyeart

Re: stub.GetTxTimestamp security checking #fabric-questions #fabric

David Enyeart
 

GetTxTimestamp returns the timestamp that the submitting client added to the transaction. It is only as reliable as the submitting client, but it will be deterministic across endorsing peers. There is no network-wide notion of time.


Dave Enyeart

"Jonathan C." ---02/25/2019 08:01:09 AM---Hi, Is GetTxTimestamp ( INVALID URI REMOVED

From: "Jonathan C." <chevalier.jonathan@...>
To: fabric@...
Date: 02/25/2019 08:01 AM
Subject: [Hyperledger Fabric] stub.GetTxTimestamp security checking #fabric #fabric-questions
Sent by: fabric@...





Hi,

Is GetTxTimestamp is doing any complementary checking at orderer level or at any other level ? I guess using client timestamp (from tx ChannelHeader) is probably not considered safe ? Is there any other recommended way of creating timestamp at chaincode level (in a deterministic way) ?

Thanks a lot for your help.

Jonathan.



stub.GetTxTimestamp security checking #fabric-questions #fabric

Jonathan C.
 

Hi,

Is GetTxTimestamp is doing any complementary checking at orderer level or at any other level ? I guess using client timestamp (from tx ChannelHeader) is probably not considered safe ? Is there any other recommended way of creating timestamp at chaincode level (in a deterministic way) ?

Thanks a lot for your help.

Jonathan.

Manual signings of the transactions #fabric

Aboubakar Koïta
 

Hi,

I already asked the question on Stack Overflow about my issue, but he remains unanswered: Manual signings of the transactions are not visibles during checking(fabric 1.4)

We are supposed to be able to sign a transaction with multiple identities, and that can be a requirement configured in the policies.

But I'm failing to make this working, that is, I have a policy requiring multi signatures, so I sign the transaction file(.tx) successively with the MSP information of the two organizations, but when I submit the transaction then, the orderer or the peers will reject it, saying that "Signature set did not satisfy policy ...".

And what is weird is that this check ignores the others signatures I did, it will just consider the signature done automatically by the command submitting the transaction: peer channel update or peer chaincode instantiate, as if this last signature invalidated the signatures that I applied before manually.

Some idea about what I'm missing?

The commands that I used:

The variables that I modified to make a different signature:

  • CORE_PEER_LOCALMSPID
  • CORE_PEER_MSPCONFIGPATH

Thanks,
Aboubakar

Re: Hiperledger Explorer

Nick Frunza
 

What is your node version? and which OS do you try to install explorer.

Please use node 8.x.x, not above 9



On Sat, Feb 23, 2019 at 3:59 AM Sudheesh Singanamalla <sudheesh95@...> wrote:
Hi Fernando,

Were you able to install all the required dependencies specified in the package.json file by running `npm install` in the repository?
What is the status after installing the packages? It looks like the `ws` module hasn't been installed in your case which is causing this. If it's only this module that has failed to install, you could install it by doing `npm install ws`

Thanks,
Sudheesh

On Sat, Feb 23, 2019 at 2:35 PM Fernando <fggrocha@...> wrote:
Hi,

I have the following error in explorer:

module.js:550
    throw err;
    ^

Error: Cannot find module 'ws'
    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.<anonymous> (/home/user/blockchain-explorer/main.js:13:17)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)

Anyone can help me?

Regards



--
Nik Frunza

Re: Hiperledger Explorer

Sudheesh Singanamalla
 

Hi Fernando,

Were you able to install all the required dependencies specified in the package.json file by running `npm install` in the repository?
What is the status after installing the packages? It looks like the `ws` module hasn't been installed in your case which is causing this. If it's only this module that has failed to install, you could install it by doing `npm install ws`

Thanks,
Sudheesh

On Sat, Feb 23, 2019 at 2:35 PM Fernando <fggrocha@...> wrote:
Hi,

I have the following error in explorer:

module.js:550
    throw err;
    ^

Error: Cannot find module 'ws'
    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.<anonymous> (/home/user/blockchain-explorer/main.js:13:17)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)

Anyone can help me?

Regards

Re: Hiperledger Explorer

Fernando <fggrocha@...>
 

Hi,

I have a new message when I open the browser:
Cannot get /

Regards

Fernando Gómez 


El 23 feb 2019, a las 10:05, Fernando via Lists.Hyperledger.Org <fggrocha=gmail.com@...> escribió:

Hi,

I have the following error in explorer:

module.js:550
    throw err;
    ^

Error: Cannot find module 'ws'
    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.<anonymous> (/home/user/blockchain-explorer/main.js:13:17)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)

Anyone can help me?

Regards

Hiperledger Explorer

Fernando <fggrocha@...>
 

Hi,

I have the following error in explorer:

module.js:550
    throw err;
    ^

Error: Cannot find module 'ws'
    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.<anonymous> (/home/user/blockchain-explorer/main.js:13:17)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)

Anyone can help me?

Regards

Re: #fabric-kubernetes #fabric #fabric-kubernetes #fabric

Jean-Gaël Dominé
 
Edited

Thank you for your insight Prasanth.

I'll get a look at my configuration to ensure I didn't do that kind of mistake

I'll keep you posted once I solve my problem

Thanks again

JG

Re: #fabric-kubernetes #fabric #fabric-kubernetes #fabric

Jean-Gaël Dominé
 

True enough Nye but right now I can't do with DNS so I try to lake a first version work.
I agree that it is definitely not a good practice but it can be used as a start 😉

JG

Re: ledger state validation for putState/writeset

David Enyeart
 

In a transaction only the last PutState() value of the key will be recorded in the writeset.

In most scenarios you'll want the chaincode to read a key before updating it. This populates the readset which will be used at validation time to perform version checks and prevent double spend. Most scenarios will want to read the key in chaincode regardless before updating it, to perform explicit validations within the chaincode, such as checking for prior key existence or prior key value, before proceeding on with the business logic.


Dave Enyeart


Suhan Sumeet ---02/21/2019 09:41:10 AM---Hello Team, The Hyperledger document says "the versions of the keys are recorded only

From: Suhan Sumeet <suhan.premilu@...>
To: hyperledger-fabric@...
Date: 02/21/2019 09:41 AM
Subject: [Hyperledger Fabric] ledger state validation for putState/writeset
Sent by: fabric@...





Hello Team,

The Hyperledger document says "the versions of the keys are recorded only in the read set; the write set just contains the list of unique keys and their latest values set by the transaction."

In this case how is double spend problem handled.

e.g For Key=> k1@version 1, we do only putstate(k1,-100) and again putState(k1,-100) if no version is checked won't it effect the same key and same version v1 twice. How key update would handle current ledger state validation.

Regards,
Suhan




Re: #fabric-kubernetes #fabric #fabric-kubernetes #fabric

Nye Liu <nye@...>
 

IPs are always a bad idea. Always get proper DNS working or you will likely have TLS problems. Depending on immutable IPs is not best practice. 


On Fri, Feb 22, 2019, 7:20 AM Jean-Gaël Dominé <jgdomine@...> wrote:
They are because TLS was working on a single cluster.

The thing is I think I've got problems with the certificates themselves since I'm using IPs now and not names as before.

As you can see in the configtx.yaml file, I used SANS to indicate them but I might have done something wrong.

Thank you!

Re: #fabric-kubernetes #fabric #fabric-kubernetes #fabric

Prasanth Sundaravelu
 
Edited

I have very recently met with a TLS handshake error, in the end what I missed was adding https:// infront of peer address. By default it might have took http://. 

Try if that helps.
 
P.S. You probably should use grpcs://, mine was application to peer connection tls error. In your case, I assume its gossip tls error.