We wanted to give people a way to incentivize getting their questions answered more quickly.

What it does

Xtack allows users to place bounties on questions they wish to be answered quickly. This allows for other users to be the first to correctly answer and claim the bounty. The question author's bounty is placed in escrow while waiting for the questioner to approve an answer. Once an answerer has been approved by the questioner it is marked as such and the bounty is released from escrow and placed in the wallet of the answerer. Users can search for questions to answer based on several criteria such as recency, bounty value, or answered status.

How we built it

Our backend is built on a Ripple node we spun up to enable us to interact with the live Ripple network (no testnets). Our API communicates with our node through a modified version of xpring4j which allows us to use our own Ripple gRPC endpoint. The API was implemented with Dropwizard to provide a RESTful interface.

Challenges we ran into

None of us had ever developed anything that interacts with a blockchain before. Xpring4j made this process fairly simple but the versions available publicly on the maven repository only allows connections to their testnet. We looked through the source code for xpring4j and decided that we would compile a modified version to allow us to connect to the main Ripple network. Little did we know, the public endpoints did not yet support xpring4j. When we reached out to some folks at Xpring, we found out that to accomplish what we wanted, we would need to host our own Ripple node using with a more up to date codebase which brokered communications between xpring4j and the Ripple network.

Accomplishments that we're proud of

We were able to modify a production library to allow us to bypass some limitations. It was quite a challenge to compile a modified version of xpring4j to deploy through dokku and we're quite happy with the results.

What we learned

We had initially set out to learn how to use xpring4j to facilitate financial transactions but we ended up learning a whole lot about gRPC, the Ripple network, protobuf, and a lot of the other dependencies used by xpring4j through trying to understand the codebase enough to compile a modified version for ourselves.

What's next for Xtack (Said: Stack)

We would like to implement and host ILP nodes to enable us to transact between multiple currencies. In addition, we also have plans for features we couldn't hack out this weekend: moderation, replies to comments, reputation system, return bounty, question categories, business plan for growth and scale.

Share this project: