Add nim 2.0 and devel to CI matrix
This commit is contained in:
parent
a58baa4162
commit
0306443c52
|
@ -8,7 +8,7 @@ jobs:
|
||||||
max-parallel: 20
|
max-parallel: 20
|
||||||
matrix:
|
matrix:
|
||||||
test_lang: [c]
|
test_lang: [c]
|
||||||
branch: [version-1-6]
|
branch: [version-1-6, version-2-0, devel]
|
||||||
target:
|
target:
|
||||||
- os: linux
|
- os: linux
|
||||||
cpu: amd64
|
cpu: amd64
|
||||||
|
|
|
@ -7,3 +7,4 @@ build/
|
||||||
*.dylib
|
*.dylib
|
||||||
*.a
|
*.a
|
||||||
*.exe
|
*.exe
|
||||||
|
nimble.paths
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
# begin Nimble config (version 1)
|
||||||
|
when fileExists("nimble.paths"):
|
||||||
|
include "nimble.paths"
|
||||||
|
# end Nimble config
|
|
@ -1,8 +1,8 @@
|
||||||
# Copyright (c) 2018 Status Research & Development GmbH
|
# Copyright (c) 2018-2024 Status Research & Development GmbH
|
||||||
# Distributed under the Apache v2 License (license terms are at http://www.apache.org/licenses/LICENSE-2.0).
|
# Distributed under the Apache v2 License (license terms are at http://www.apache.org/licenses/LICENSE-2.0).
|
||||||
|
|
||||||
import ./proof_of_work, ./private/conversion
|
import ./proof_of_work
|
||||||
import endians, random, math, nimcrypto
|
import random, math, nimcrypto
|
||||||
|
|
||||||
proc mulCarry(a, b: uint64): tuple[carry, unit: uint64] =
|
proc mulCarry(a, b: uint64): tuple[carry, unit: uint64] =
|
||||||
## Multiplication in extended precision
|
## Multiplication in extended precision
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (c) 2018 Status Research & Development GmbH
|
# Copyright (c) 2018-2024 Status Research & Development GmbH
|
||||||
# Distributed under the Apache v2 License (license terms are at http://www.apache.org/licenses/LICENSE-2.0).
|
# Distributed under the Apache v2 License (license terms are at http://www.apache.org/licenses/LICENSE-2.0).
|
||||||
|
|
||||||
import math, endians,
|
import math, endians,
|
||||||
|
@ -17,7 +17,7 @@ const
|
||||||
DATASET_BYTES_GROWTH* = 2'u64^23 # dataset growth per epoch
|
DATASET_BYTES_GROWTH* = 2'u64^23 # dataset growth per epoch
|
||||||
CACHE_BYTES_INIT* = 2'u64^24 # bytes in cache at genesis
|
CACHE_BYTES_INIT* = 2'u64^24 # bytes in cache at genesis
|
||||||
CACHE_BYTES_GROWTH* = 2'u64^17 # cache growth per epoch
|
CACHE_BYTES_GROWTH* = 2'u64^17 # cache growth per epoch
|
||||||
CACHE_MULTIPLIER = 1024 # Size of the DAG relative to the cache
|
CACHE_MULTIPLIER* = 1024 # Size of the DAG relative to the cache
|
||||||
EPOCH_LENGTH* = 30000 # blocks per epoch
|
EPOCH_LENGTH* = 30000 # blocks per epoch
|
||||||
MIX_BYTES* = 128 # width of mix
|
MIX_BYTES* = 128 # width of mix
|
||||||
HASH_BYTES* = 64 # hash length in bytes
|
HASH_BYTES* = 64 # hash length in bytes
|
||||||
|
@ -31,7 +31,7 @@ const
|
||||||
proc get_cache_size*(block_number: uint64): uint64 {.noSideEffect.}=
|
proc get_cache_size*(block_number: uint64): uint64 {.noSideEffect.}=
|
||||||
result = CACHE_BYTES_INIT + CACHE_BYTES_GROWTH * (block_number div EPOCH_LENGTH)
|
result = CACHE_BYTES_INIT + CACHE_BYTES_GROWTH * (block_number div EPOCH_LENGTH)
|
||||||
result -= HASH_BYTES
|
result -= HASH_BYTES
|
||||||
while (let dm = divmod(result, HASH_BYTES);
|
while (let dm = intmath.divmod(result, HASH_BYTES);
|
||||||
dm.rem == 0 and not dm.quot.isPrime):
|
dm.rem == 0 and not dm.quot.isPrime):
|
||||||
# In a static lang, checking that the result of a division is prime
|
# In a static lang, checking that the result of a division is prime
|
||||||
# means checking that remainder == 0 and quotient is prime
|
# means checking that remainder == 0 and quotient is prime
|
||||||
|
@ -40,7 +40,7 @@ proc get_cache_size*(block_number: uint64): uint64 {.noSideEffect.}=
|
||||||
proc get_data_size*(block_number: uint64): uint64 {.noSideEffect.}=
|
proc get_data_size*(block_number: uint64): uint64 {.noSideEffect.}=
|
||||||
result = DATASET_BYTES_INIT + DATASET_BYTES_GROWTH * (block_number div EPOCH_LENGTH)
|
result = DATASET_BYTES_INIT + DATASET_BYTES_GROWTH * (block_number div EPOCH_LENGTH)
|
||||||
result -= MIX_BYTES
|
result -= MIX_BYTES
|
||||||
while (let dm = divmod(result, MIX_BYTES);
|
while (let dm = intmath.divmod(result, MIX_BYTES);
|
||||||
dm.rem == 0 and not dm.quot.isPrime):
|
dm.rem == 0 and not dm.quot.isPrime):
|
||||||
result -= 2 * MIX_BYTES
|
result -= 2 * MIX_BYTES
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
# Copyright (c) 2018 Status Research & Development GmbH
|
# Copyright (c) 2018-2024 Status Research & Development GmbH
|
||||||
# Distributed under the Apache v2 License (license terms are at http://www.apache.org/licenses/LICENSE-2.0).
|
# Distributed under the Apache v2 License (license terms are at http://www.apache.org/licenses/LICENSE-2.0).
|
||||||
|
|
||||||
|
{. warning[UnusedImport]:off .}
|
||||||
|
|
||||||
import ./test_internal_multiprecision_arithmetic,
|
import ./test_internal_multiprecision_arithmetic,
|
||||||
./test_proof_of_work
|
./test_proof_of_work
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
include ../src/mining
|
include ../src/mining
|
||||||
|
|
||||||
import unittest, random
|
import unittest
|
||||||
|
|
||||||
suite "[Internal] Testing multi-precision arithmetic":
|
suite "[Internal] Testing multi-precision arithmetic":
|
||||||
test "Multi-Precision multiplication gives the proper unit (modulo 2^64)":
|
test "Multi-Precision multiplication gives the proper unit (modulo 2^64)":
|
||||||
|
|
Loading…
Reference in New Issue