Zcash Thorchain Integration Grant

ZOMG met last night and many of us are very eager to have a user-friendly decentralized solution for exchanging from BTC and ETH to ZEC.

Low-fee decentralized exchange between other popular currencies seems super important to privacy, usability, resiliency, and adoption, so we’re very interested in funding this.

That said, we have a few questions and we will probably need more detail and perhaps a bit more time to approve the grant:

  1. Can you give us—and other community members here—a clearer picture of what the end user experience will be for buying Zcash from, say, BTC or ETH once this grant is completed? Probably the best way to do this would be a screencast, but a walkthrough with a series of steps and screenshots would work too! If there are different use cases, can you walk us through each of the main ones?

  2. If there won’t be a user-friendly experience for this at the end of the grant because more work is required, could you give us an idea of what that additional work would look like? For example, you could write this up as an additional milestone in the proposal. We might not choose to fund this milestone right now, but we’ll have an idea of what the cost of necessary follow-on would would be.

  3. Because Nighthawk already has a few open grants, and because this would be another large grant, we’d like to make sure work is going well on all of your other grants before approving this one. Can you post updates here, or links to the latest updates if they’ve already been posted, so that we have it all in one place? Are all of the other projects on schedule right now? Is there anything else it would be helpful for us to review to be confident that work is on-schedule on the other grants?

  4. We want to make sure that this grant will not leave you spread thin across too many projects. Can you talk us through how your team is set up, and give us some assurance that you will not be spread too thin?

  5. Generally, we’re cautious about having too many open grants with a single grantee. Would you be open to waiting until the main Nighthawk wallet grant is completed before beginning this work? I believe the final milestone is scheduled for October, which isn’t too far off. There’s also an upcoming milestone for that grant in August.

  6. We’d like to see a more granular breakdown of costs, hours, and hourly rates for the different roles involved. Can you add this?

  7. It might be especially helpful to see if there any pieces of this work that are optional or could be broken out into another grant proposal. For example, am I right in understanding that a Zcash client in Go a necessary piece of this? Is that a full node or a light node? Would it make sense to break that out into a separate proposal, for clarity and reducing risk?

Again, we’re overall very interested in funding this. I know these are a lot of questions and might be a hassle to respond to, but it is a big grant and it will be better for all of us to settle all these questions up front.

Thanks!
—Holmes

6 Likes

Just noting that Aditya and I have also scheduled a voice call for later today, in line with past experience that synchronous communication is helpful in cases like this where there are lots of questions, and we’ll be posting notes from that here a bit later.

4 Likes

Thank you @ZcashGrants & @holmesworcester for reviewing the grant proposal and writing up all the questions & concerns, please find my replies below.

To start, I would request you to watch a video by Naomi Brockwell on the need for a DEX The End of Centralized Exchanges: THORchain - YouTube

Here is a simple video walkthrough of using ASGARDEX Desktop - YouTube
The UX is just like Uniswap, except that native assets can be traded with upfront fees. There will be multiple DEX interfaces that will enable Zcash support once they upgrade their Thorchain nodes & make a small lift per front end for which we have the support from Thorchain devs.

ASGARDEX Desktop, ASGARDEX, THORSwap will be the front ends with user friendly front ends as seen in the video. Additionally, we might apply for a Nighthawk Wallet grant to make the front end integration possible within the wallets. Similarly, as mentioned in the grant, all Zcash developers can take advantage of this native swap feature once it goes live.

Nighthawk grants are on schedule. Block Explorer’s July/August Delivery Timeline as per the grant & Nighthawk Wallet July Milestone are both on track. Work is going on towards the milestones. Thorchain work will begin only after the Block Explorer is delivered, that way there is no overlap or shortage of resources. We don’t want to hurry and release incomplete/insecure software that is prone to stability/security/privacy risks for the Zcash community. For following updates, please follow our GitHub commits nighthawk apps · GitHub or Twitter updates https://twitter.com/nighthawkwallet & https://twitter.com/lightwalletd or reach out to me anytime to setup a live features demo. Nighthawk Wallet Development Status will be regularly updated here https://nighthawkwallet.com/changelog/

For a quick gist of active Nighthawk grants:

  1. https://lightwalletd.com for real time status, monthly warranty canaries, the next milestone is on January 2022 ZF Grants - 2 years of Lightwalletd Infra hosting & maintenance
  2. GitHub - nighthawk-apps/zcash-explorer: Zcash Block Explorer Zcash Block Explorer work is on track too, with the last 2 pending items - Viewing Key support & 1 year hosting with tor onion access support, here is the latest update Zcash Block Explorer Grant - #29 by vamsi Next Milestone July/August 2021 ZF Grants - Zcash Block Explorer
  3. https://nighthawkwallet.com is live with the first milestone wrapping up following the release of T-address support and manual shielding on Android, we had the iOS release go live this week. Our updates are spread out across the Zcash Weekly Newsletter & the Light Client Working Group GitHub - zcash/lcwg: Light Client Working Group project management repository with a Milestone 1 update due in July 2021 which will go live on the website. ZF Grants - Nighthawk Wallet Design & Development '21

Here is a grant Nighthawk has successfully delivered ZF Grants - Nighthawk Wallet maintenance + server costs

The Nighthawk team is here to help further the mission of Zcash and create tools that help sustain open networks, enabling anyone and everyone to protect their own privacy on their own terms.

None of the developers working on the Nighthawk Wallet will be working on the Thorchain grant. We are extending the team with 3 new developers for Thorchain and current developers will wrap up work on the Block Explorer before starting on the Thorchain tasks. The thorchain work will go on in parallel with the Mobile Wallet development which is disconnected with each other. There are 0 shared components or developer crossover.

I don’t believe it is necessary to block a feature development that has nothing to do with the wallet, none of the developers working on the wallet will be working on the Thorchain grant. Additionally, Nighthawk Wallet’s final milestone is in December, October is just the beginning of the 3rd milestone. So it would be unfair for the Zcash community to delay a feature that would benefit a new cohort of users of a privacy coin on a DEX. And Thorchain is actively looking to add additional native assets beyond the current 4 BTC, ETC, BCH & LTC and it would be great to have ZEC as the 5th one.

The compensation for this proposal is based on the value of the outcome for Zcash attaining increase in adoption on a DEX with high on-chain volume swaps being performed on a daily basis. The existing coins are doing between $100k for LTC & $3M for BTC as of July 2021, even if ZEC manages to clinch $25k, it equates to creating a $9M+ yearly DEX volume and incentives to earn ZEC by becoming a liquidity provider on Thorchain following the solution.

We are going with the standard quoted rates for experienced developers, which are getting very difficult to find as there is a talent crunch with all senior and lead developers as most tech companies are hiring remote, even in India. Ex. Coinbase is hiring 1000 Engineers in India and we are competing for talent against them amongst many other blockchain projects (like Blockfi) paying top dollar.
Also note, Nighthawk developers have promised to resolve all outstanding Thorchain Integration issues before the final delivery, this is a flat rate grant. Here is the cost breakdown:

Task                     Total   Resources
Development             120,000      4
Testing + Integration    60,000      3
Planning + Deployment    22,000      2
                      202,000 + 26,260(13% tax) = $228,260

Golang based Bitfrost is completely native for Thorchain node that is supposed to observe the incoming Zcash transactions, make calculations and broadcast to thorchain network. It is not a full/light node in its essence, but it enables the Thorchain node operator to run a Zcashd full node natively within Thorchain’s blockchain. So, it doesn’t make sense to break this out into a separate proposal as this piece is an essential portion to deliver the end-to-end swap functionality. The only portion that can be broken out is the custom front end, which we haven’t included in this grant. Additionally, the work done as part of this grant would be reusable by future Zcash projects, especially the Kubernetes based setup for spinning up Zcash nodes at large scale.

To summarize:
We are prepared with access to both the human resources & a roadmap of items to be delivered for Thorchain integration that does not affect active Nighthawk grants. And we are reachable to formally provide current status of our work privately without making any incomplete, work-in-progress features public.

2 Likes

But:

Then,

But,

I don’t understand these statements put together. Simply put: Do you need to hire if you were offered this grant or not?

If I understand correctly, you are quoting a price based on the value the integration offers to the ecosystem but not on the actual work?

Well, as a community member, I find the lack of transparency towards the public concerning and I don’t agree with you on the need to keep your progress private.

I’d have to trust your word on this since you don’t want to show anything.

3 Likes

Hey @hanh

Please review my post thoroughly before taking points out of context which only creates uncertainity and doubts within the Zcash community. I have worked really hard to make a lot of ends meet to make progress happen, so let’s work towards collaboration and improvements.

Please DM me your timezone & when you can get on a call so I can answer to any shortcomings that you see.

1 Like

What did I take out of context? Besides, I am just asking for clarification.

Can’t you answer this question simply?

Again, I don’t see why you need to discuss privately.

3 Likes

As an example, today https://moeda.casa uses a few swap services under-the-hood for the FIAT conversion, run a full zcash node, nginx serving Ruby/Sinatra apps, a database and other microservices, many over TOR hidden services. All on a $15 server/month in New York done with a 6k grant.

I co-run a dozen of other VPS for friends with other services since 2007… today you could even orchestrate hundreds of kubernets/dockers images in your own machine to test things, and just replicate it online, if that is the case - which is also unclear.

Sorry for my radical sincerity, but

$20,000: $5,000 x 4 months of multiple large AWS instances to run Thorchain test-net.

sounds not just too excessive, it sounds absurd. But I might be missing something.
Are those nodes mining rigs? :sweat_smile:

“THORNodes network is intended to be initially 100, but can scale to 300.”

You dont have to replicate it all to integrate into it, I suposse. With 230k you could afford 57 young Software Engineers in Europe at once, or 3 Seniors Devs for a full-year work project. It is not because we are sat on an oil basin that we have to become greedy making as many holes we can to suck it. Isn’t it?

Also, for many years I’ve being extremely underpaied for contractors making tons of money, and I would like the Grant Team to check if Nighthawk Team outsource other devs, they dont promote the same. I bet those mentioned 1k Indians contracted by Coinbase are not getting 1/3 of the formers.

Since many people are interested on this feature, and Moeda Team has some developed modules in our monolith, we might make a parallel proposal soon.

3 Likes

Hey @extrapo Thank you for your feedback.

That’s great! As long as your traffic is within the limits of the hosting plan you are on. Otherwise, check if you can leverage lightwalletd calls for your use, we operate load-balanced Zcash full nodes at https://lightwalletd.com that you are free to use to reduce your costs.

Good point, and yes, our estimates of running the Thorchain test-net for development comes to approx. $5,000 and I’ll ask our DevOps lead @vamsi to expand on the setup. To deliver this grant, we will need the entirety of the Thorchain infra spun up for end-to-end testing as we are adding Zcash support on all the levels of Thorchain’s blockchain, namely THORChain, Midgard, ASGARDEX. The setup also requires full nodes of the supported blockchains BTC, ETH, BCH, LTC & RUNE services running.

Each THORNode is comprised of 5 major components.

  1. thord - this is a daemon that runs the THORChain chain itself

  2. thor-api - this daemon runs an HTTP server, that gives a RESTful API to the chain

  3. bifrost - this daemon creates connections to remote chains (like Bitcoin, Ethereum, Binance, etc) to both observe activity on those chains (incoming/outgoing transactions), and also sign/broadcast outgoing transactions (moving funds on remote chains).

  4. thor-gateway : THORNode gateway proxy to get a single IP address for multiple deployments

  5. midgard - this daemon is a layer 2 REST API that provides front-end consumers with semi real-time rolled up data and analytics of the THORChain network. Most requests to the network will come through Midgard. This daemon is here to keep the chain itself from fielding large quantities of requests. You can think of it as a “read-only slave” to the chain. This keeps the resources of the network focused on processing transactions.

  6. Full nodes - for every chain that is supported by the network, each THORNode operator will run their own full node of each chain (Bitcoin, Ethereum, Binance, etc).

You can read more at THORNode Overview - THORChain Docs

Sorry, where is this quote coming from?

Per the Thorchain devs, we actually do need to run the setup as mentioned, additionally, they recommend not to setup the nodes manually(which could have brought the costs down).

I have connected with recruiters and seen the profiles of engineers from Europe, but I haven’t come across any senior/lead engineers with blockchain experience. I have also worked with junior/mid-level engineers from Europe, and the work from them is just not on par with what can be delivered as a scalable solution. Please ping me if you find 57 software engineers with blockchain experience who can promise to deliver work for a flat budget.

That’s a good point, we have not advertised our needs on the forums for hiring members to the Nighthawk team as we have access to talent pools directly that we can work with to deliver the work per our milestones. This is something we can improve on.
And no, we don’t “outsource” our work to third-party, but bring in experienced developers to develop features on a per module basis. I would like to chat with you if you are interested to working with us in the future.

@hanh My reply was about the active grants to @holmesworcester and how this grant is un-affected, but you seem to have confused with statements for the ongoing-grants VS this grant. This is where a quick call helps resolve any uncertainty.

Yes, we need to pay the developers that we will onboard for this grant. For now, all we have is availability of developers(10+ years experience) beginning at the end of month. Generally, we prefer having access to talent to reduce delays in finding talent after the grant is already started.

We can record our call and make it public if you want :slight_smile: I just want to answer your concerns in a concise manner since you have many.

1 Like

This excludes public checks of the development process which is risky - this also excludes public collaboration while in development. I think something like this should never be accepted by the Zcash community and the ZOMG committee. Especially given the budget we are talking about.

I ask the @ZcashGrants committee to comment on this.

1 Like

From their docs. :smirk:

1 Like

On the contrary, releasing work-in-progress code to non-contributing developers is very risky.

If contributors really want to help and need an insight, we share our progress with the Light Client Working Group Friday calls at GitHub - zcash/lcwg: Light Client Working Group project management repository (Light client developers, Protocol developers, and lightwalletd developers are invited to attend the meetings. This is not a meeting for passive participants).

Additionally, any code that is released publicly without our review and merged in develop would bring up issues with what is pending/what is not. The grants provided to us are to deliver functional work and not to open source our internal-processes or non-compiling code.

@mika to access the code for existing deliverables, see nighthawk apps · GitHub

My ‘inner geek’ says “yeah, this sounds cool”…but I wonder just how useful (or used) this would be? Its not something I would use but that’s just my humble opinion.

Just because we can doesn’t mean we should, its a lot of $$ that could be used elsewhere.

5 Likes

That’s an good question @ChileBob

My initial review of Thorchain, the LP incentives & inter-blockchain swaps was that it would be first be a strong vehicle to onboard new users from the DEX ecosystem to the Zcash network by using native coins on Zcash blockchain VS token based system limited on Ethereum that does result in ZEC token exposure but adds primary on-chain value to ETH network only.

Then, we might start seeing existing Zcash users test & access the decentralized native swaps VS going via centralized swap providers like https://stealthex.io or SideShift.ai - No Sign-Up Crypto Exchange

Overall, I see the result of this implementation demonstrate Zcash expanding to new blockchains and making it easy for the larger cryptocurrency economy to access privacy oriented Zcash while reducing reliance on centralized exchanges. And personally, I think the budget of ~$250k of community funds will go a long way once the implementation is complete. Now it’s up to @ZcashGrants to decide if they see value in this proposal.

1 Like

Right, just want to make sure as I didn’t remember bringing it up :grinning_face_with_smiling_eyes:

So, Thorchain has their own internal incentive system where they control the RUNE inflation to attract more node runners on main-net, I heard that running a public node is very profitable at this moment, but it takes around ~$2.5M in RUNE just to get started.

The work from this grant will only touch main-net in the deployment phase when we interact with our partners who are node runners.

I agree that the usefulness is questionable at the 200k + price.

We are talking about 9M trading volume and yearly. It’s not a very useful metric but even so, this is tiny.

If there is interest, I’d suggest considering several bids and picking the best team at the best price. There doesn’t seem to be any urgency anyway.

2 Likes

Would love to see another similar proposal. Competition is good for Zcash.

I think Nighthawk team needs to deliver their funded projects first before adding a new major grant like this one.

3 Likes

Newb here, but I agree.

We need native ZEC represented on Thorchain.

This is a short term project with long term value.

If hires can be made quickly and it doesn’t delay the existing grants, we need to pull the trigger.

Volume is going to skyrocket when the MCCN caps are raised in the coming months, and we should to be ready.

3 Likes

Thanks for your support & feedback on the Block Explorer grant @tokidoki , as mentioned earlier, we will be delivering both Zcash Block Explorer & Nighthawk Wallet Milestone 1 as per the existing grant milestones prior to receiving the funds for Milestone 1 of Thorchain Integration Grant.

2 Likes

For setting up THORNode - both testnet and mainnet ( for testing purpose ) , we will be using Amazon Elastic Kubernetes Service ( EKS) .

as for the instances in the K8S cluster, we would be running instances with at least 16 vCPU and 32 GiB Memory with local SSD.

why do we need to run so many instances ?

each THORNode is comprised of 5 major components:

  1. thord - this is a daemon that runs the THORChain chain itself

  2. thor-api - this daemon runs an HTTP server, that gives a RESTful API to the chain

  3. bifrost - this daemon creates connections to remote chains (like Bitcoin, Ethereum, Binance, etc) to both observe activity on those chains (incoming/outgoing transactions), and also sign/broadcast outgoing transactions (moving funds on remote chains).

  4. thor-gateway : THORNode gateway proxy to get a single IP address for multiple deployments

  5. midgard - this daemon is a layer 2 REST API that provides front-end consumers with semi real-time rolled up data and analytics of the THORChain network. Most requests to the network will come through Midgard. This daemon is here to keep the chain itself from fielding large quantities of requests. You can think of it as a “read-only slave” to the chain. This keeps the resources of the network focused on processing transactions.

  6. Full nodes - for every chain that is supported by the network, each THORNode operator will run their own full node of each chain (Zcash, Bitcoin, Ethereum, Binance, etc).

for all the HTTP services mentioned above, AWS Application Load Balancers will be used.

Also costs for DevOps is included in the $20,000.

2 Likes

An in-depth discussion on What is Thorchain? and How it works via Clubhouse

3 Likes