Auto merge of #2183 - ebfull:rust-introduction, r=ebfull
Introduce Rust/librustzcash into the zcash build system Introduces Rust into the build system and brings a trivial xor operation into the code (near where we will likely be working).
This commit is contained in:
12
src/pow.cpp
12
src/pow.cpp
@@ -16,6 +16,10 @@
|
||||
|
||||
#include "sodium.h"
|
||||
|
||||
#ifdef ENABLE_RUST
|
||||
#include "librustzcash.h"
|
||||
#endif // ENABLE_RUST
|
||||
|
||||
unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock, const Consensus::Params& params)
|
||||
{
|
||||
unsigned int nProofOfWorkLimit = UintToArith256(params.powLimit).GetCompact();
|
||||
@@ -96,6 +100,14 @@ bool CheckEquihashSolution(const CBlockHeader *pblock, const CChainParams& param
|
||||
// H(I||V||...
|
||||
crypto_generichash_blake2b_update(&state, (unsigned char*)&ss[0], ss.size());
|
||||
|
||||
#ifdef ENABLE_RUST
|
||||
// Ensure that our Rust interactions are working in production builds. This is
|
||||
// temporary and should be removed.
|
||||
{
|
||||
assert(librustzcash_xor(0x0f0f0f0f0f0f0f0f, 0x1111111111111111) == 0x1e1e1e1e1e1e1e1e);
|
||||
}
|
||||
#endif // ENABLE_RUST
|
||||
|
||||
bool isValid;
|
||||
EhIsValidSolution(n, k, state, pblock->nSolution, isValid);
|
||||
if (!isValid)
|
||||
|
||||
Reference in New Issue
Block a user