Date   

Re: Use certificates from a non-Fabric CA with your Fabric network #signcerts #interoperability #fabric-ca #x509

Gari Singh
 

People have used directly used certificates that were not issued by a Fabric CA as credentials within a Fabric network.

Luckily, there's really no magic here.  You will need to set up the membership service provider (MSP) for your organization using the crypto material from the 3rd party CA.
The structure of an MSP is described here:  https://hyperledger-fabric.readthedocs.io/en/release-2.2/msp.html

At a high level, you just need to populate the MSP structure with artifacts from/generated by the 3rd party CA.  You'll minimally need the root/intermediate chain from the authoritative CA and you'll likely at least one issued certificate to populate admins.

Do be aware that if you use one of the public CAs (like the ones trusted by browsers), this can be problematic as MSPs are differentiated by their root/intermediate chain and therefore anyone with a cert issued by one of the public CAs will match an organization with a MSP containing one of the public CAs.
  


Re: Kubernetes proposes Hyperledger Fabric

Gari Singh
 

Thanks for sharing this, Hakan.  Will try to have a look soon and provide comments/suggestions.


Re: How Check Names of Installed Smart Contracts

Chris Gabriel
 

Hi Brian,
From within the peer container, run:
peer chaincode list —installed -C <channel name>




On Apr 17, 2021, at 4:33 PM, Brian Carpenter <bmc121177@...> wrote:



Is there a terminal command I can run that will list the smart contracts installed on a peer?


Or some other way to get this information?  Need it to debug some issues I'm having.

  

Tks.



How Check Names of Installed Smart Contracts

Brian Carpenter
 

Is there a terminal command I can run that will list the smart contracts installed on a peer?


Or some other way to get this information?  Need it to debug some issues I'm having.

  

Tks.



Membership

Peter Kolodziejski
 

I confirm my email address and want to activate my membership.


ANNOUNCEMENT: Fabric Gateway technology preview in Hyperledger Fabric v2.4.0-alpha is now available!

David Enyeart
 

The Hyperledger Fabric maintainers are pleased to announce the availability of Fabric v2.4.0-alpha!

Hyperledger Fabric v2.4.0-alpha introduces the new Fabric Gateway feature as a technology preview.

The Fabric Gateway is a new feature in the peer that implements much of the high-level 'gateway' programming model that has been found in the recent Fabric SDKs. Much of the transaction submission and query logic can therefore be removed from client applications and delegated to the peer. For example your client application only needs to communicate with your organization's peer(s), and the gateway running in the peer will handle the collection of transaction endorsements required from other organization's peers.

The Fabric Gateway will also simplify the administrative overhead of running a Fabric network because client applications will be able to connect and submit transactions via a single network port rather than requiring ports to be opened from a client application to multiple peers across potentially multiple organizations.

New slim SDKs are delivered in the https://github.com/hyperledger/fabric-gateway repository, along with client application samples and a sample network. Try it out by cloning the fabric-gateway repository and following the instructions at https://github.com/hyperledger/fabric-gateway/tree/main/samples.

You can also see the feature as presented in the last contributor meeting playback:
https://wiki.hyperledger.org/download/attachments/41590443/20210331_contributors_meeting.mp4?api=v2

Let us know your thoughts as we continue to work on the gateway feature for an eventual v2.4 release.

Other details of the v2.4.0-alpha release can be found in the release notes:
https://github.com/hyperledger/fabric/releases/tag/v2.4.0-alpha



Re: using go routine in the chaincode #fabric-chaincode #fabric-questions

Matthew Sykes
 

It's less about a race and more about consistency. (A race can cause an inconsistency.) Imagine that when you run the contract on peer one, the sequence observed by the ledger is ["data1", "data2"]; on peer two the sequence can be ["data2", "data1"] because there's nothing that ensures one write occurs before another.


On Fri, Apr 16, 2021 at 1:56 PM elmira <elmira.ebrahimi@...> wrote:
 Hi,
Concurrency (using goroutine and go channel) can cause non-deterministic behavior in fabric.

I have not found any source or example on the use of Goroutines and go channels in fabric contracts; I need an example; Are there any links that I can read about it?.

I know that it is better not to use the following code, but I want to know how the race condition that is in the code causes inconsistency among peers.
I appritiate any help.

package main import (

"fmt"

"github.com/hyperledger/fabric/core/chaincode/shim"

"github.com/hyperledger/fabric/protos/peer"

)

type BadChainCode struct{

}

func (t *BadChainCode) Invoke(stub shim.ChaincodeStubInterface){


go writeToLedger(stub, “data1”)

go writeToLedger(stub, “data2”)

 

}
func writeToLedger(stub shim.ChaincodeStubInterface, data string){

stub.PutState(“key”,[]byte(data))

}



--
Matthew Sykes
matthew.sykes@...


using go routine in the chaincode #fabric-chaincode #fabric-questions

elmira
 

 Hi,
Concurrency (using goroutine and go channel) can cause non-deterministic behavior in fabric.

I have not found any source or example on the use of Goroutines and go channels in fabric contracts; I need an example; Are there any links that I can read about it?.

I know that it is better not to use the following code, but I want to know how the race condition that is in the code causes inconsistency among peers.
I appritiate any help.

package main import (

"fmt"

"github.com/hyperledger/fabric/core/chaincode/shim"

"github.com/hyperledger/fabric/protos/peer"

)

type BadChainCode struct{

}

func (t *BadChainCode) Invoke(stub shim.ChaincodeStubInterface){


go writeToLedger(stub, “data1”)

go writeToLedger(stub, “data2”)

 

}
func writeToLedger(stub shim.ChaincodeStubInterface, data string){

stub.PutState(“key”,[]byte(data))

}


Kubernetes proposes Hyperledger Fabric

Hakan Eryargi
 

Dear Hyperledger Fabric Community,

I'd like to introduce Hyperledger Fabric Operator for Kubernetes:
https://github.com/raftAtGit/hl-fabric-operator

It's a wrapper around our previous work PIVT Helm charts and makes running and operating Hyperledger Fabric in Kubernetes even more easier.

It allows managing the whole HL Fabric network or part of it declaratively through the FabricNetwork CRD (Custom Resource Definition).

In particular it allows to:
  • Configure and launch the whole HL Fabric network or part of it, either:
    • A simple one, one peer per organization and Solo orderer
    • Or scaled up one, multiple peers per organization and Kafka or Raft orderer
  • Populate the network declaratively:
    • Create the channels, join peers to channels, update channels for Anchor peers
    • Install/Instantiate all chaincodes, or some of them, or upgrade them to newer version
  • Add new peer organizations to an already running network declaratively
This work started as an experimental/PoC hobby project of myself, but turned out to be quite complete and functional.

Apologies for the title. As we called the previous work as "Hyperledger Fabric meets Kubernetes", which I truly believe deserves its name, this one felt like a proper continuation :)

Any feedback is more than welcome!

Cheers,
Hakan


Hyperledger Project Quarterly Update Due #tsc-project-update - Thu, 04/15/2021 #tsc-project-update #cal-notice

fabric@lists.hyperledger.org Calendar <noreply@...>
 

Hyperledger Project Quarterly Update Due #tsc-project-update

When:
Thursday, 15 April 2021

Organizer:
community-architects@...

Description:
Please file a project status report for the TSC here:

https://wiki.hyperledger.org/display/TSC/2021+Project+Updates

https://wiki.hyperledger.org/display/TSC/2021+TSC+Project+Update+Calendar


Re: Hyperledger fabric in IoT application

Chris Gabriel
 

Hi Nikos,
It really depends upon the use case. In mine, I use a raspberry pi as a server of IoT sensor data that gets polled for its data by an IoT gateway in Node Red, but the peers are running in the cloud in Kubernetes. I use the Fabric CA to issue identities for each org in the network and also assign each IoT device an identity from the CA as a security practice. Demo here:

https://youtu.be/rGHI8-tpzX0

On Apr 15, 2021, at 6:53 AM, Nikos Karamolegkos <nkaram@ics.forth.gr> wrote:

Hello everyone, I am new to BC and hyperledger. I would like to deploy a BC to an existing IoT network. I have not decide yet the architecture of the BC network (peer, orgs, etc) but I am thinking to deploy some peers in a raspberries which already act as IoT gateways (GWs) and receive sensor data. Also, in GW I would install the fabric client application to update the ledger (with the IoT data). The idea is the data to be distributed in all GWs acting as peers. Is this a good approach for start or should I have the BC network in the backbone?

--
Nikos Karamolegkos
R & D engineer at ICS-FORTH
Telecommunications and Networks Lab (TNL)






Hyperledger fabric in IoT application

Nikos Karamolegkos
 

Hello everyone, I am new to BC and hyperledger. I would like to deploy a BC to an existing IoT network. I have not decide yet the architecture of the BC network (peer, orgs, etc) but I am thinking to deploy some peers in a raspberries which already act as IoT gateways (GWs) and receive sensor data. Also, in GW I would install the fabric client application to update the ledger (with the IoT data). The idea is the data to be distributed in all GWs acting as peers. Is this a good approach for start or should I have the BC network in the backbone?

--
Nikos Karamolegkos
R & D engineer at ICS-FORTH
Telecommunications and Networks Lab (TNL)


QSCC query equivalents for private collections

Simeon MacMillen
 

Hello community,

What would be the best approach to query an asset on a private collection by transaction ID?

Is there an equivalent of QSCC system chaincode APIs (such as getTransactionByTransactionID) for private collections?

Thank you,
Simeon MacMillen


Use certificates from a non-Fabric CA with your Fabric network #signcerts #interoperability #fabric-ca #x509

sangieri@...
 

Hello Community, 

 

I'm working on a use case where I need to use certificates, which bind resources to identities, that have been already issued by an Authoritative CA with the Fabric Network I'm developing which is dealing with the same resources bound in the certificates. 

 

Reading the docs: https://hyperledger-fabric-ca.readthedocs.io/en/latest/deployguide/ca-deploy-topology.html 

I see that yes it is possible, but I cannot figure out How. 

There are several articles about how "to link" a third party or external CA to a HF CA, but I guess this is not the use case. Actually, instead of linking the Authoritative CA to a HF CA I would like just to use the certificates emitted by the Authoritative CA into my network.

Basically, I want to bind the existing authorization model to my HF network.  

 

So let's imagine a scenario: 

 

user with (certificate, private_key) externally emitted --> Fabric CA --> User credential for the Fabric Network

where the fabric CA can verify, using a trust anchor, the validity of the certificate provided by the user and upon successfull verification, emit the user credential for the fabric network.

 

Has such a solution already been implemented?  

Any advise, different solution or pointer to docs I can read about? 

 

Thanks to All, 

Stefano Angieri 

 

 

 


Re: Fabric Contributor Meeting - Wed, 04/14/2021 #cal-notice

Vitalii Demianets
 

Thank you all for the discussion of the "Orderer ledger snapshot" RFC on the Contributor Meeting!

The changes discussed on the call have been incorporated in the RFC text and the pull request has been updated.

--
// Vitalii Demianets @ norbloc AB

On Wed, Apr 14, 2021 at 3:00 PM fabric@... Calendar <noreply@...> wrote:

Fabric Contributor Meeting

When:
Wednesday, 14 April 2021
9:00am to 10:00am
(GMT-04:00) America/New York

Where:
https://zoom.us/my/hyperledger.community.3?pwd=UE90WHhEaHRqOGEyMkV3cldKa2d2dz09

Organizer:
enyeart@...

Description:
For meeting agendas, recordings, and more details, see https://wiki.hyperledger.org/display/fabric/Contributor+Meetings

Join Zoom Meeting
 
Meeting ID: 518 494 7650
Passcode: 475869


Re: Running same application from multiple users

Brian Behlendorf <bbehlendorf@...>
 

Hi folks, no need to reply to Jayakar here about his repeated thread-hijacking, we'll handle off-list. Thanks.

Brian

On 4/14/21 7:08 AM, Jayakar wrote:

Proposing the interested to join at a Collaborative partnership network




-- 
Brian Behlendorf
General Manager for Blockchain, Healthcare and Identity
bbehlendorf@...
Twitter: @brianbehlendorf


Re: Running same application from multiple users

Jayakar <Jayakar_J_Joseph@...>
 

Proposing the interested to join at a Collaborative partnership network to build a Global Digital Healthcare Infrastructure by Integrated Apps & Devices in Hyperledger framework to proceed with a ‘Global Digital Human Coronavirus Harmful Mutants & lineage Control (HCHMC) Program by WHO. They may deploy a local native hybrid cloud server of Digital Cluster Control (DCC) Node with a cluster of 3 to 10 Digitizable Healthcare centres (DH) of Hospitals, Nursing homes, Clinics and Primary Health centres at their preferred locations.  

For more details on this to enrol as a collaborative partner for this project, they may please contact, Department of Research for Health, World Health Organization to participate in this project for the revival of humanity from this pandemic crisis, sustainably. 

Subsequently these collaborative partners may discuss between them at Hyperledger groups and Meetups, to integrate their developments in this framework, by receiving technology resources from that Department while that shall be deployed in CI/CD strategy and on governance by that Department. 



From: fabric@... <fabric@...> on behalf of 이종권 <jongkwon.lee@...>
Sent: Wednesday, April 14, 2021 6:00 AM
To: fabric@... <fabric@...>
Subject: Re: [Hyperledger Fabric] Running same application from multiple users
 
Yes. You can have multiple fabric users in the CitizenOrg. But, it will bring no benefit because inhabitants will not update the ledger, while it will make the inhabitant-application more complicated.
We could consider the staff-application to have multiple fabric users in the CityOrg. It will enable us to track who updated the ledger and it will not make the staff-application complicated assuming that there will be only several users in the CityOrg.


Fabric Contributor Meeting - Wed, 04/14/2021 #cal-notice

fabric@lists.hyperledger.org Calendar <noreply@...>
 

Fabric Contributor Meeting

When:
Wednesday, 14 April 2021
9:00am to 10:00am
(GMT-04:00) America/New York

Where:
https://zoom.us/my/hyperledger.community.3?pwd=UE90WHhEaHRqOGEyMkV3cldKa2d2dz09

Organizer:
enyeart@...

Description:
For meeting agendas, recordings, and more details, see https://wiki.hyperledger.org/display/fabric/Contributor+Meetings

Join Zoom Meeting
https://zoom.us/j/5184947650?pwd=UE90WHhEaHRqOGEyMkV3cldKa2d2dz09
 
Meeting ID: 518 494 7650
Passcode: 475869


How to set up private data for each user identity in an org

Brian Carpenter
 

I'm building out a basic digital asset transfer application for images.  I'd like:

1) some of the data about the image (filename, base64_encode) to be public to everyone
2) some data (download_url) to be private only to the user who adds the image to the BC until they grant access to view the download_url to another person/s.

Seems like a private data collection structure would be ideal.

Can private data collection be private at a user identity level within an organization?  As in, each Org user has a private data collection defined and managed separately.

Any suggestions on how to structure a solution if a private data collection is the wrong approach?


Re: Running same application from multiple users

Nikos Karamolegkos
 

Nice ideas both. So to be more specific, the CityOrg would have some raspberries as IoT gateways (network) which are receiving sensor measurements (like empty parking positions, temperature, etc) from the end devices. I am thinking of running a fabric application into raspberries (i.e the client application runs in raspberry) to use the smart contracts (chaincode) to write the measurements (or a hash for better memory utilization) to the ledger. I am thinking also running some GW raspberries as peers too (eg. 3-4 PI).  For the CitizenOrg/ValidatorOrg I am thinking to have two applications (running to PCs), one for the citizen to just read the data (I have to think which of your proposed two approaches to follow), and an other application which can change the data to the ledger (e.g set a parking position to unavailable for some reason). Also, the CitizenOrg/ValidatorOrg would have some peer (3 or 4) which will be part of the endorsing policy for writing data to ledger by CityOrg (to avoid the control of the ledger by a single org). I have to think how to deploy the orderers too.

In case an other city want to join the BC network will be a new org with characteristics similar to CityOrg.

Bases on your experience are these all steps a good approach? I am new to BC idea so any other ideas are welcome. We have already build an IoT network with raspberries for GWs (flow: sensor-> gateway->broker->database->ui) and we would like to make the BC part of it

601 - 620 of 10412