Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bluzelle DB library support (PHP, Python, C#, Java, C++, Ruby, Go, Rust, or Dart) #5

Open
njmurarka opened this issue Jun 17, 2021 · 6 comments

Comments

@njmurarka
Copy link

Prize Title

Bluzelle DB library support (PHP, Python, C#, Java, C++, Ruby, Go, Rust, or Dart)

Prize Bounty

$2,500 USD worth of ERC20 BLZ for each library submission, at time of payout

Challenge Description

Bluzelle provides decentralized data services, powered by the Cosmos blockchain. Our services include a key-value-store (CRUD), oracle, and NFT. We are also building toward providing support to EVM (Ethereum Virtual Machine) and Polkadot support for our services. Our bounties reflect our aggressive approach to consistently improve our ecosystem and value proposition.

While the Hackathon has a specific start and end date, we are ok with work continuing after the hackathon, for the chosen winners to finish their projects to our standards.

Use protobuf and Bluzelle's “.proto” files to implement the full suite of Bluzelle modules. Use the existing Bluzelle JS library as a reference on what services and API's need to be exposed in the library.

This is a relatively simple task. Assuming you know protobuf and/or got it working already, most of the code is generated automatically by the protobuf compiler using our “.proto” files. What still needs to be built by you is the transport module. The transport module wraps and unwraps transactions and requests (including handling batch transactions that use “withTransaction”), talking to the correct RPC endpoint running on Bluzelle's Stargate testnet. “withTransaction” allows a client developer (using your library) to batch together multiple requests (like say, create, update, delete) in one transaction.

Protobuf does not actually own or manage transport -- that is what this transport module does -- take protobuf’s serialized objects and send them to the endpoint, and take the protofbuf-serialized objects returned from the endpoint and deserialize them for consumption by the client.

Please visit the following URL for a quick-start:

https://github.com/bluzelle/curium/tree/stargate/sdk/docs/arch

High level, we only currently have a JS/TS library, and you can use that as an example, and the Protobuf files, to create that new library of your choosing.

Please look extensively at the existing JS/TS library and the example provided to get a practical understanding of what is being asked for here. We are expecting the full language spec to be tested and submitted by you, along of course, with the critical transport adapter.

Your deliverable then should be the transport adapter, and steps so that we can dynamically generate your library from your code, and then use it in a working database client application. Expect us to test and use every function in the existing JS/TS library, against your own library submission, including batch transactions “withTransaction”, that are a strict requirement.

Please test this client and ensure it works as expected.

Resources

Our Discord:

https://discord.gg/yqBmzPxRZK

Website:

https://www.bluzelle.com

Our JS library:

https://www.npmjs.com/package/@bluzelle/sdk-js

To install our libraries:

install @bluzelle/sdk-js with “yarn” or “npm”

Submission Requirements

The submission should include sufficiently QA’d documentation on how to deploy the service/product, and how to use the submission as per the requirements of the bounty.

These should include documentation on the commands to be used to interact with the submission, and how the submission is configured to work properly with BluzelleDB, etc.

A video demo should be included. It would nice to have a voice-over in English where we can fully understand the submission, but this is not a strict requirement. A computer-generated voice over is ok too, if you prefer.

The demo should also walk through the code and explain all the items that are being provided. The demo should walk through the process of deploying the submission, and how to use it, etc.

It is expected that the documentation is accurate. We will follow your documentation, to properly evaluate the submission. If it is incorrect, we may be unable to fairly evaluate your submission.

Including tests with your submission will greatly improve your chances of winning. We like to run tests that are highly verbose and explicit in terms of what they are doing, so we can gain confidence in the correctness of what you have submitted. If you provide tests and expect us to run them, like everything else, document it well, and ensure that the tests can be run by us -- give us the steps to setup and run the tests.

If the documentation is incomplete or incorrect, there is a possibility that we may not be able to fairly assess the submission, as we will walk through the documentation to validate the project. Due to practical limitations on time and resources, once a project is submitted, we are not able to provide much assistance in correcting a project’s that may not be properly working, nor to inquire to get proper steps, if the documentation that comes with a submission is insufficient.

Your project will be judged based on what you submit. Please submit something that is complete, well thought out, and tested, from a documentation and product features and code quality standpoint. We will do our best to evaluate, but obviously, the easier you make our life, the better the chances are that you win.

WE LOVE VERBOSITY AND DOCUMENTATION. There is no such thing as too much information. Explain what you have built, and please ensure it will run CORRECTLY, when we follow your directions literally. Just doing this alone will vastly improve your chances of victory.

Judging Criteria

Our goal is to, as part of the evaluation process, fully setup, and use your submission, successfully, and without any major hiccups.

Based on the ease of doing this and the quality of your documentation, product, code, and features, we will choose the winner.

There is no preference to ordering of submissions -- just be sure to submit them on time. Once submitted, we will evaluate and there will not be alot of opportunity for back and forth. Please ensure your submitted documentation and code is complete, enabling us to properly judge it based on its merit.

We will choose the best based on quality. Documentation and properly written code is a large part of the criteria. A project that we cannot deploy ourselves is difficult to give a prize to. We will do our best to contact you, if there is an issue. Practically, we probably won’t have much time to contact you, after submission, to get clarification or to ask you to fix a bug. It ideally should work when we judge it.

Note: While the descriptions given for bounties are quite explicit and even tend to suggest how an actual solution to each problem can be built, you as a developer have the option to architect the solution your own way. We have provided guidance on a solution we see as reasonable, but we are open to considering other solutions. Obviously, we will choose the best overall submission, based on various factors including the elegance of the solution.

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 12366.8825 BLZ (2504.8 USD @ $0.2/BLZ) attached to it.

@gitcoinbot
Copy link

gitcoinbot commented Jun 17, 2021

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 3 weeks, 1 day from now.
Please review their action plans below:

1) betterclever has started work.

Bluezelle DB library for JVM
2) cpurta has started work.

Planning on building out a Golang DB library that will be unit tested and has integration tests.
3) rashmi-278 has started work.

Build support for Python
4) echolon166 has started work.

I will build a Dart library for Bluzelle DB.
5) lyledavids has started work.

C# nuget package

Learn more on the Gitcoin Issue Details page.

@njmurarka
Copy link
Author

We have extended the deadline for this bounty by an extra month.

Please let us know if you have any questions or blockers we can help you with.

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 2500.0 USDC (2500.00 USD @ $1.0/USDC) has been submitted by:


@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 2500.0 USDC (2500.00 USD @ $1.0/USDC) has been submitted by:

  1. @echolon166

@njmurarka please take a look at the submitted work:


@hhio618
Copy link

hhio618 commented Oct 23, 2021

Hey @njmurarka. could you please take a look at our work?
https://github.com/hhio618/bluzelle-py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants