Skip to content

A Java native implementation of the CryptoNight proof of work algorithm

Notifications You must be signed in to change notification settings

jounaidr/CryptoNightJ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CryptoNightJ

A sub-optimal Java native implementation of the CryptoNight proof of work algorithm, see CryptoNightJNI for an optimal solution.

The algorithms implementation can be found in: Cryptonight.java with various other hashing packages used.

Algorithm Overview

The CryptoNight algorithm consists of three sections: scratchpad initialisation, memory-hard loop and results calculation. The following three diagrams (based on the Cryptonote Standard 2013) provide an overview on how the algorithm functions. See the Monero docs or JRC writeup for more info.

Scratchpad Initialisation:

Memory-hard Loop:

Results Calculation:

Dependencies

The project structure and dependencies can be seen in the following diagram: CryptoNightJ_expanded_dependancy_diagram

TODOs

  • Optimisation throughout (see code)
  • Refactor Cryptonight.java to implement hashing digest interface as to stay consistent with other Java hashing algorithms

About

A Java native implementation of the CryptoNight proof of work algorithm

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages