Source: pcoc reference/java/ at aaa8946.
Java reference
The Java implementation of Satoshi Hike. It is one of three independent references. It is a guide, not the specification. Where it disagrees with the SPEC, the specification wins and this tree has a bug.
This port does not generate the conformance vectors. v2.sh compiles the sources and runs pcoc.conformance.V2Pack and pcoc.hike.Spec6Pins against spec/conformance/v2.0/.
Tag
The current tag is ref-java-v2.0.2.
Toolchain
JDK 21 or newer is required. JDK 17 does not work. There is no Gradle and no Maven. reference/java/v2.sh runs javac --release 21.
Check with javac -version. It must print 21 or higher. On 17, install a JDK 21 side by side, point JAVA_HOME at it, and put $JAVA_HOME/bin first on PATH.
Test
From the repository root:
bash reference/java/v2.sh
On success the script exits 0 after the conformance and pin checks. On a javac older than 21 it stops at once and prints:
v2.sh: JDK 21 or newer is required (javac reports: …). On JDK 17, install a JDK 21 side by side, point JAVA_HOME at it, and put $JAVA_HOME/bin first on PATH.
It does not skip.
Produce and verify
After v2.sh has compiled (or the same javac --release 21 line), the classes are pcoc.cli.Produce and pcoc.cli.Verify. Verify writes a section 14 record. Exit status is not an admission decision.
Spec pin
reference/SPEC_PIN names spec-v2.0.3 and the vector hash. Check it with python3 reference/tools/check_spec_pin.py from the repository root.
Demo keys
The demo seed-phrase flag is outside this port. It is not production_seed.
From pcoc reference/java/README.md at aaa8946. Raw markdown.