OpenCores

IOTA PoW Pearl-Diver Curl-P81

Project maintainers

Details

Name: iota_pow_vhdl
Created: Apr 25, 2018
Updated: Jul 31, 2021
SVN Updated: Jun 2, 2018
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 0 reported / 0 solved
Star1you like it: star it!

Other project properties

Category:Crypto core
Language:VHDL
Development status:Beta
Additional info:Design done, FPGA proven
WishBone compliant: No
WishBone version: n/a
License: Others

Description

This project became obsolete because IOTA switched to Chrysalis in 2021 and this project no longer is compatible.

There won't be an upgrade!

Overview

IOTA PoW needs a lot of computational power which makes sending transactions on smaller microcontrollers (like ARM) very slow.

This is a port of IRI's official Pearl-Diver for PoW-computation for FPGAs which speeds up the process of doing Proof-Of-Work significantly by a factor of more than 140 compared to e.g. a Raspberry Pi.

For instance, finding the nonce of a single transaction takes about 90s on a Raspi. Finding the nonce hardware accelerated by this core reduces the time to ~300ms.

The sources in the SVN contain everything for being synthesizable directly on an Altera DE1 board but the next step will be a custom PCB with Cyclon 10 which can directly plugged on top of a Raspberry Pi.

Project Website

You can find the project website (with more instructions) on Project Website

Technical Data of Proof-Of-Concept

Proof-Of-Concept

  • Running on EP2C20 @ 200MHz archieving about 12MHash/s
  • Resource usage is about 79%
  • The core if 5-fold parallel (that means, 5 Curl-P81 hashes are calculated in parallel) but it is customizable
  • Only Altera PLL and no other vendor specific core or unusual libaries needed - so it's very easy to retarget this project to different FPGAs

Synthesis Report Cyclon 2

Here the wiring between Raspi and Altera-DE1

Connection Altera DE1 and Raspi

Integration into dcurl library

dcurl is a very fast Curl-Hashing-Library which not only supports graphics cards (OpenCL) but also provides highly optimized variants for SSE and AVX capable CPUs.

I did a fork of the library and added code for support of the VHDL Pearl-Diver.

The advantage is that every software working together with dcurl library can make use of the FPGA version of Curl (on Raspberry Pi – for different targets the low level control of SPI has to be replaced).

There is also a IRI variant which supports directly the dcurl-Library, so IRI can directly make use of this core

Link to dcurl

Further instructions on the Project Website

Next Steps

  • Custom PCB with Cyclon 10 LP 25kLE
  • 7-fold parallel mit 140MHz in a low-power FPGA reaching about 12MH/s.
  • Can be plugged onto Raspberry or used without Raspberry Pi over USB
  • PCB already being manufactured

Cyclon 10 LP Prototype

Layout, Schematic, BOM

Layout, Schematic, BOM will be published openly when the custom PCB is assembled and works :)

License

MIT license