Zcash Block Explorer Grant

Just noting here that I’ve been talking with aiyadt about this on signal, and nighthawk is requesting that we do single payout up front, which would mean making an exception to our general procedure of asking for milestones with separate payouts, especially for grants of this size.

Given that nighthawk is clearly “here to stay” and incentivized to complete this grant in order to receive other future grants, I’m cautiously okay with this and I’m asking the others on the committee if it’s okay with them.

4 Likes

Got approval from everyone to make an exception in this case and the grant is going through!

3 Likes

Any updates on this from @aiyadt team?

1 Like

Hey @Shawn, Thanks for following up.

We did run in to delays initially with April start due to the pandemic situation in India affecting the health of family members and regular life. But the work is in good progress towards the targeted July/August delivery.

The zcashex(elixir client library to interact with the JSON-RPC endpoint provided by a Zcash full node) was open sourced on GitHub and will be soon published on the hex.pm elixir central repository.

See the Tailwind UI front end screenshots attached below. The blockchain metrics - latest height, price, size, etc. are all realtime feeds using web sockets and the user does not need to refresh the page. We’re also thinking of adding support for dark theme.

We are in the process of hosting the explorer internally for testing purposes, the final front end will be exposed to both https & tor networks while zcashd will connect to the Zcash network via tor directly.

Expect an update after we have some of the primary feature work operational.

Community Ask:
Suggestions on naming the explorer?

3 Likes

Hi @aiyadt, do you have specs on the improvements vs existing block explorers?

Thanks

1 Like

Update:

the Elixir library to interact with Zcash Full Node is published.

Package:

Documentation:
https://hexdocs.pm/zcashex/0.1.0/api-reference.html
https://hexdocs.pm/zcashex/0.1.0/Zcashex.html

Additional links:

Source:

test code coverage:

Tests running on Github actions:

5 Likes

What does it do besides mapping json into maps?

1 Like

Thanks for the question :slightly_smiling_face:

As you might already know, this elixir library essentially makes the process of calling Zcash RPC’s from elixir a bit easy. My hope is that any elixir dev wanting to interact with Zcash will find the library useful.

the library does the following things ( in addition to mapping json to maps )

  • Constructs appropriate HTTP requests using a well know HTTP client ( in the elixir world ) and takes care of Auth.
  • Uses GenServer to execute code asynchronously. This will make sure that the processes spawned can be monitored using Supervisor.
  • Maps the response JSON to elixir Structures.
  • The Structs are actually Ecto Schemas and can be used like ORM models ( actually ecto is a database wrapper and query generator for Elixir ).

basic testing is done using running zcashd in the regtest mode.
A new Docker image is created nighthawkapps/zcash which has support for running zcashd in the regtest mode.

2 Likes

Progress:

the code for the basic block explorer is published on Github.

Documentation work has started ( WIP ) and can be viewed using this link Welcome to Zcash explorer - Zcash explorer

Screenshots of the UI.

Realtime homepage ( uses WebSockets powered by Phoenix LiveView ) :

Block details page

Transaction Page

Address details page

Payment Disclosure page

Broadcast raw TX page

Viewing keys feature is WIP ( this also will use WebSockets )

3 Likes

Note: there is a docker file which will make it a bit easy to setup the local env ! do try it out.

1 Like

OK, but what you mention is fairly trivial code using the 3-rd party libraries

I see that the block explorer is up though.
Great!

You mention that a user could upload his IVK and see his shielded transactions. Is it working?

1 Like

Is there a link (e.g. password protected) where interested folks could try it out, even if it isn’t ready for public consumption?

We had shared an initial version hosted via tunnel link NGROK with the Boston Zcash Community and collected feedback. Sorry, but we refuse to share any work in progress code with the broader community for the obvious product quality & user privacy reasons.

2 Likes

Sorry, but I can not agree with

we refuse to share any work in progress code

since learning & collaboration is a big part of the developer’s culture, and the essence of a dev community.

You’ve got $50k (which are 20 years of salaries for my Mathematics Teachers in Brazil) more than 3 months ago and I can see just 10 very basic commits from vamsiikrishna (Vamsi Krishna B) · GitHub for the last 5 days.

Also, could you explain us

buy necessary software licenses for the UI components

when there are such amazing open-source libraries where we all can freely build on… What have being bought to do what is gonna be built?

1 Like

:point_right:

complete this grant in order to receive other future grants

Sorry, that didn’t read out well Polo. We are all in for learning & collaboration and also onboarded devs to contribute to Zcash repositories individually.

When it comes to grant proposals with specific timelines and requirements, the focus of the developers is on the deliverable and only when we get from 0 to 1, with the release version, we open source the code for the broader community to interact, fork & make PRs. Hope you understand this, otherwise an open-ended discussion on the grant requirements following the start would end up delaying the grant deliverable.

For all of our dependencies & tools for development, we have made extra efforts to go with open source software and if possible, FOSS.

Prior to this proposal going live, the community discussed(in this thread) around the unique features they would like to see for the Zcash Block Explorer. One of the requirement was to not rely on JS. And based on our research, the most cost optimal way to do that was to use Tailwinds CSS which has pre-existing components that matched the needs of the community.

  • Use the Components to create unlimited End Products.
  • Modify the Components to create derivative components. Those components are subject to this license.
  • Use the Components to create unlimited End Products for unlimited Clients.
  • Use the Components to create End Products where the End Product is sold to End Users.
  • Use the Components to create End Products that are open source and freely available to End Users.

Here is the Tailwinds CSS license License - Tailwind UI

The only JS is use in the Block Explorer now I web sockets related that can pull real time data. And even if the user has No-JS, it does not break the user interface in any way except the user experience of real time data not being available. And the explorer user would need to manually refresh the page.

You can find the code to the explorer at GitHub - nighthawk-apps/zcash-explorer: Zcash Block Explorer

2 Likes

@extrapo @holmesworcester Again, apologize for the confusion with the creation of the new grant prior to delivering the existing grant.

That decision was made by me as a project manager to plan for the next development for the Zcash community following successful completion of the existing deliverable of the Block Explorer. Since in the past, it has taken 2+ weeks for a grant to be discussed & reviewed(and we are at the end of delivering the block explorer), I thought it was best to start the discussion around the Thorchain development, which does have a sense of timing for Zcash integration to get on to Thorchain.

It was never the intention to pursue multiple grants, but just the timing of events & availability of DEX experienced developer resources(who can deliver the implementation in time) per the grant, that I needed to gauge the interest from ZOMG.

2 Likes

This “Newb” user registering itself in the middle of the discussion to like (only) all your Team’s posts and endorse your proposal sounded very suspicious for me. Specially now you’ve quoted it back. Hopefully its just me over-thinking after years writing patterns for digital forensics software. :thinking:

The screenshots you posted is like a 4-days raw CSS work, or you could even have used FOSS javascript-less Components · Bootstrap, but each one has its methods to build systems, no critics with that, maybe I was lucky to be more involved with dev hackers than project managers. :stuck_out_tongue:

You’ve already managed to get 400k dollars from ZOMG Grants in the last few months, but the Nighthawk Wallet is still kind-of buggy (had problems withdrawing from a zaddr) and the Block Explorer is unknown - it seems a patch of already-done libraries and templates - nothing new for the price.

I guess we just wish more quality projects, than quantity - specially for these “top dollars”, as you say.

If you still have issues, please post the issue on Nighthawk Wallet - Zcash Community Forum or connect with @NighthawkApps privately to provide details/logs.

This is incorrect, Block Explorer code is new, details are well documented at Welcome to Zcash explorer - Zcash explorer
All the work is available open source & the repos are the posted in the previous replies.
And the deliverable that will be released will meet majority of the community needs that were discussed.

We need to regroup and collaborate on meeting the needs of the Zcash community, have developer discussions to understand the decision making instead of assumptions.

Nighthawk Team is here to deliver high quality, modular & expandable applications that are re-usable even after the core protocol upgrades to new shielded pools.

This is a good catch, and if you see anything that looks like sockpuppet accounts in the future, please feel free to flag it, @extrapo.

But remember that the set of people with both a) a reason to want the proposal approved and b) zero other interest/involvement in this forum—or c) a desire to remain anonymous in their support—is larger than the Nighthawk team and it’s best to always assume the best of each other here. We should be vigilant for scams but if we assume everyone is a scammer that will create a hostile environment and demoralize good participants.

@aiyadt — for the record here, can you confirm that nobody on your team created that single-post account? Also, I hope you understand that building trust in a process like this is messy and I hope you can be thick-skinned about it and not get demoralized yourself!

To me the post looks like a Thorchain stakeholder, FWIW. It refers to “MCCN caps” which is a Thorchain-specific thing, and it seems reasonable that someone with a stake in Thorchain might create an account here to voice support for a Zcash/Thorchain grant.

Also, I can confirm that this single comment has not been a noticeable factor in the ZOMG committee’s discussion of the Thorchain grant! So far we’ve been talking mostly about the capabilities it gives Zcash users and whether the risk vs. reward is a good balance.

5 Likes