Quasarch Funding Proposal - Go Client Library #222
Closed
cloud-j-luna
started this conversation in
Governance Proposals
Replies: 2 comments 5 replies
-
Code examples of the library usage: Querying a deploymentfunc main() {
akash, err := client.NewAkashClient()
if err != nil {
panic(err)
}
req := akttypes.QueryDeploymentRequest{
ID: akttypes.DeploymentID{
Owner: "<addres>>",
DSeq: 12345,
},
}
resp, err := akash.GetDeployment(context.Background(), req)
if err != nil {
log.Fatalf("error: %v", err)
}
log.Printf("%+v", resp.Deployment)
} Querying providersfunc main() {
akash, err := client.NewAkashClient()
if err != nil {
panic(err)
}
req := v1beta3.QueryProvidersRequest{}
resp, err := akash.GetProviders(context.Background(), req)
if err != nil {
log.Fatalf("error: %v", err)
}
log.Printf("%+v", resp.Providers)
} Creating Deploymentfunc main() {
akash, err := client.NewAkashClient()
if err != nil {
panic(err)
}
f, err := os.Open("path/to/sdl.yaml")
if err != nil {
panic(err)
}
opt := tx.CreateDeploymentOptions{
Deposit: helpers.DefaultDeposit,
Options: tx.Options{
AccountName: "<account>",
AccountAddress: "<address>",
Backend: "<backend>",
},
}
msg, err := helpers.BuildMsgCreateDeployment(f, opt)
if err != nil {
panic(err)
}
if _, err := akash.CreateDeployment(context.Background(), *msg, opt.Options); err != nil {
log.Fatalf("error: %v", err)
}
} Querying Bidsfunc main() {
akash, err := client.NewAkashClient()
if err != nil {
panic(err)
}
bidReq := v1beta3.QueryBidsRequest{Filters: v1beta3.BidFilters{
DSeq: 12345,
Owner: "<address>,
}}
bids, err := akash.GetBids(context.Background(), bidReq)
if err != nil {
log.Fatalf("error: %v", err)
}
if len(bids.Bids) <= 0 {
log.Fatalf("No bids")
}
} |
Beta Was this translation helpful? Give feedback.
0 replies
-
Hi @cloud-j-luna, thanks for making the proposal and providing examples. What improvements it brings over existing akash-api and client. Eventually, the client from the node repo will be moved to |
Beta Was this translation helpful? Give feedback.
5 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Summary
We are proposing a funding request of 25k USD in $AKT from the community pool for our efforts in developing the Akash Network Go Client Library.
Introduction
Integration with the Akash Network is currently very challenging for third parties. A Javascript Client Library is available that powers the web integrations built on Akash Network. For services and tools built using other technologies there is no standard way to integrate with he Akash Network which is very limiting in the growth of the Akash Network developer ecosystem.
Go Client Library
The Go Client Library offers Go developers (a big percentage of cloud-native developers) a way to interact with the Akash Network. It allows for querying deployments, providers, bids, leases as well as creating, updating and closing deployments and all related tasks (check the specification for more details). The current version of the library implements all the low level operations required to fully operate the Akash Network.
Having such a library available will allow the reimplementation of critical products such as a better CLI for the Akash Network. A new version for the Terraform Provider that removes the dependency of having Akash installed. The libraries are also being currently used by our team to build new amazing software on top of Akash Network (more about this in the future).
Funding Request
We request funding of USD 25k in $AKT by next month to open source the implemented solution.
Funding Breakdown
15k - Open source the codebase
Hourly rate $34
An Estimate of 20 hours a week for ~22 weeks
A total of $14960
10k - First 6-months maintenance and support to the community and new features (not core to the spec)
Hourly rate $20
An Estimate of 20 hours a week for ~26 weeks
A total of $10400
What are these new features?
New feature include anything that the community deems necessary to have a good experience using the library. For instance having the ability to setup an Akash account or issuing certificates. These are not part of the 1.0 spec but we are open to implement them if deemed necessary during the maintenance window/budget.
Conclusion:
Implementing these solutions will significantly enhance the Akash Network's functionality and provide a better developer experience to ecosystem developers. It will allow a new set of systems to emerge in the ecosystem and unlock new types of automations.
Beta Was this translation helpful? Give feedback.
All reactions