hyperledger / fabric-admin-sdk

Hyperledger Fabric admin SDK
Apache License 2.0
31 stars 19 forks source link

fabric-admin-sdk draft proposal #1

Closed SamYuan1990 closed 2 years ago

SamYuan1990 commented 2 years ago

Project Name

fabric-admin-sdk

motivation

As gateway sdk will drop off admin capacity, we plan to recover admin capacity related things with this project proposal.

schedule(Thursdays night, BJT)

host(@davidkhala / @SamYuan1990 , @xiaohui249 , @Peng-Du )

languages: go, java, nodejs, typescript

identified features

davidkhala commented 2 years ago

Resolving https://github.com/hyperledger/fabric-sdk-node/issues/541

SamYuan1990 commented 2 years ago

Please vote or give feedback by emo such as "thumbs up", we are not finalize if we run meeting in Chinese or English.

jkneubuh commented 2 years ago

Hi @davidkhala and @SamYuan1990, thank you for advancing this effort. This is the "missing SDK" that has been hampering Fabric deployment since the peers started coming online.

I don't wish to derail the effort on this front, but I would like to propose that a focus be placed on a golang SDK component as a priority. Very recently, we released the open-source Kubernetes fabric-operator, with production-grade support for core Fabric configuration (CAs, peers, orderers, etc.). What is missing from this solution, however, is an approach that solves the higher-order configuration of Fabric in a simple, declarative, Kube-native approach. The availability of a golang-based admin SDK, relying on gRPC(s) as the primary communication protocol, would allow us to extend the operator with the higher-order features for administration of networks. For instance, we would introduce high-order CRD structures to the Kubernetes API for:

In addition to providing a simple, declarative mechanism to specify higher-order constructs, the operator could use fabric-admin-sdk to realize these features with a reconciliation loop, accessing native gRPC (or https for the channel participation APIs) services in software.

The last point to consider is that writing cross-platform, production grade SDKs is actually pretty hard. Coding is generally the easy part, but ensuring that the release management, portability, functionality, CI builds, distribution, revision upgrades, security scans, etc. etc. etc. is a LOT of work. Instead of providing cross-platform SDKs, may I suggest that we start to incorporate the Kubernetes API controller to provide some of the cross-platform portability aspects? In other words, we could achieve a cross-platform administration function by leveraging the Kubernetes SDKs, which come generally for every possible programming language and runtime, and extending the operator with new resource types.

This will seem a bit odd, but it would work beautifully for a focused effort to administer Fabric with a common API plane.

Thank you kindly for advancing the effort. This feature / library is long overdue!

👍 👍 👍

davidkhala commented 2 years ago

cross-platform portability

@jkneubuh In the last point, we are talking about cross-platform portability. Starting from this, I assumed these general purpose languages are already equipped with cross-platform support, isn't it?

davidkhala commented 2 years ago

quoted from @jt-nti

Some useful for an admin sdk. Newly published fabric-protos go: github.com/hyperledger/fabric-protos-go-apiv2 nodejs: www.npmjs.com/package/@hyperledger/fabric-protos java: to be released to maven, but here is https://github.com/hyperledger/fabric-protos/packages/1412970

SamYuan1990 commented 2 years ago

pre discussed with @jkneubuh , to further considering with decouple peer cli and peer server works in fabric, for golang code implementation, we'd better considering existing fabric code and structure if there possible. question to @jt-nti or @davidkhala , are we able to have original repo as reference? I suppose original code repo will better than npm release page.

davidkhala commented 2 years ago

what do you mean by “original code repo will better than npm release page.“?

获取 Outlook for Androidhttps://aka.ms/ghei36


From: Sam Yuan @.> Sent: Saturday, June 18, 2022 12:14:03 AM To: Hyperledger-TWGC/fabric-admin-sdk @.> Cc: David Liu @.>; Mention @.> Subject: Re: [Hyperledger-TWGC/fabric-admin-sdk] fabric-admin-sdk draft proposal (Issue #1)

pre discussed with @jkneubuhhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjkneubuh&data=05%7C01%7C%7Cb50d500854704a3cd20108da507c65b4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637910792469790004%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=ujcVnlK0k1hlM1enjHO5P0rgPQgWUtIVz6lrVuX251M%3D&reserved=0 , to further considering with decouple peer cli and peer server works in fabric, for golang code implementation, we'd better considering existing fabric code and structure if there possible. question to @jt-ntihttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjt-nti&data=05%7C01%7C%7Cb50d500854704a3cd20108da507c65b4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637910792469790004%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=OcWrwsnMcO%2BwciIaMU1LL4Ads561KAs9v3ueszlTLpA%3D&reserved=0 or @davidkhalahttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdavidkhala&data=05%7C01%7C%7Cb50d500854704a3cd20108da507c65b4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637910792469790004%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=TH53G%2Fqep%2BSDi6Q1C05YeDjEfU%2B2au1PRaHPem45v%2Fg%3D&reserved=0 , are we able to have original repo as reference? I suppose original code repo will better than npm release page.

― Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FHyperledger-TWGC%2Ffabric-admin-sdk%2Fissues%2F1%23issuecomment-1159030147&data=05%7C01%7C%7Cb50d500854704a3cd20108da507c65b4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637910792469790004%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=xwAy8Y02ETuevoUxkeeD6OqB2Q7rYGNufYG7vnHBYKc%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABXERRLKPDNGCG4IUN4UJSTVPSP4XANCNFSM5ZCKCT5Q&data=05%7C01%7C%7Cb50d500854704a3cd20108da507c65b4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637910792469790004%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=fgimkzkTreGcLFKc0c%2Ba%2F2wNbm89DA4ab0QvXUoXjM0%3D&reserved=0. You are receiving this because you were mentioned.Message ID: @.***>

SamYuan1990 commented 2 years ago

https://github.com/hyperledger/fabric-protos/packages/1412970

don‘t worry i found it as https://github.com/hyperledger/fabric-protos

SamYuan1990 commented 2 years ago

hi guys, if there no further comments for this issue, I plan to update into documentations and close this issue with a pr.