mirror of
https://github.com/bitcoin-s/bitcoin-s.git
synced 2025-03-15 20:30:17 +01:00
core: Fix first set of testnet4 bugs
This commit is contained in:
parent
1f7a982519
commit
3637580052
5 changed files with 30 additions and 24 deletions
|
@ -35,7 +35,7 @@
|
||||||
<appender-ref ref="ASYNC-FILE"/>
|
<appender-ref ref="ASYNC-FILE"/>
|
||||||
</root>
|
</root>
|
||||||
|
|
||||||
<logger name="org.bitcoins.node" level="INFO"/>
|
<logger name="org.bitcoins.node" level="DEBUG"/>
|
||||||
|
|
||||||
<logger name="org.bitcoins.chain" level="INFO"/>
|
<logger name="org.bitcoins.chain" level="INFO"/>
|
||||||
|
|
||||||
|
|
|
@ -232,6 +232,7 @@ object BitcoinNetworks extends StringFactory[BitcoinNetwork] {
|
||||||
case "testnet3" => TestNet3
|
case "testnet3" => TestNet3
|
||||||
case "testnet" => TestNet3
|
case "testnet" => TestNet3
|
||||||
case "test" => TestNet3
|
case "test" => TestNet3
|
||||||
|
case "testnet4" => TestNet4
|
||||||
case "regtest" => RegTest
|
case "regtest" => RegTest
|
||||||
case "signet" => SigNet
|
case "signet" => SigNet
|
||||||
case "sig" => SigNet
|
case "sig" => SigNet
|
||||||
|
|
|
@ -8,7 +8,6 @@ import org.bitcoins.core.currency.{Bitcoins, CurrencyUnit, Satoshis}
|
||||||
import org.bitcoins.core.number.{Int32, UInt32}
|
import org.bitcoins.core.number.{Int32, UInt32}
|
||||||
import org.bitcoins.core.protocol.script.{
|
import org.bitcoins.core.protocol.script.{
|
||||||
EmptyScriptPubKey,
|
EmptyScriptPubKey,
|
||||||
P2PKScriptPubKey,
|
|
||||||
ScriptPubKey,
|
ScriptPubKey,
|
||||||
ScriptSignature
|
ScriptSignature
|
||||||
}
|
}
|
||||||
|
@ -16,11 +15,7 @@ import org.bitcoins.core.protocol.transaction.*
|
||||||
import org.bitcoins.core.script.constant.{BytesToPushOntoStack, ScriptConstant}
|
import org.bitcoins.core.script.constant.{BytesToPushOntoStack, ScriptConstant}
|
||||||
import org.bitcoins.core.script.crypto.OP_CHECKSIG
|
import org.bitcoins.core.script.crypto.OP_CHECKSIG
|
||||||
import org.bitcoins.core.util.{BitcoinScriptUtil, NumberUtil}
|
import org.bitcoins.core.util.{BitcoinScriptUtil, NumberUtil}
|
||||||
import org.bitcoins.crypto.{
|
import org.bitcoins.crypto.{DoubleSha256Digest, DoubleSha256DigestBE}
|
||||||
DoubleSha256Digest,
|
|
||||||
DoubleSha256DigestBE,
|
|
||||||
ECPublicKey
|
|
||||||
}
|
|
||||||
import scodec.bits.{ByteVector, *}
|
import scodec.bits.{ByteVector, *}
|
||||||
|
|
||||||
import scala.concurrent.duration.{Duration, DurationInt}
|
import scala.concurrent.duration.{Duration, DurationInt}
|
||||||
|
@ -538,11 +533,17 @@ object TestNet4ChainParams extends BitcoinChainParams {
|
||||||
* blockchain.
|
* blockchain.
|
||||||
*/
|
*/
|
||||||
override val genesisBlock: Block = {
|
override val genesisBlock: Block = {
|
||||||
|
val asm = Seq(
|
||||||
|
BytesToPushOntoStack(33),
|
||||||
|
ScriptConstant(
|
||||||
|
"000000000000000000000000000000000000000000000000000000000000000000"),
|
||||||
|
OP_CHECKSIG
|
||||||
|
)
|
||||||
|
val spk = ScriptPubKey.fromAsm(asm)
|
||||||
createGenesisBlock(
|
createGenesisBlock(
|
||||||
timestamp =
|
timestamp =
|
||||||
"03/May/2024 000000000000000000001ebd58c244970b3aa9d783bb001011fbe8ea8e98e00e",
|
"03/May/2024 000000000000000000001ebd58c244970b3aa9d783bb001011fbe8ea8e98e00e",
|
||||||
scriptPubKey = P2PKScriptPubKey(ECPublicKey.fromHex(
|
scriptPubKey = spk,
|
||||||
"000000000000000000000000000000000000000000000000000000000000000000")),
|
|
||||||
time = UInt32(1714777860),
|
time = UInt32(1714777860),
|
||||||
nonce = UInt32(393743547),
|
nonce = UInt32(393743547),
|
||||||
nBits = UInt32.fromHex("1d00ffff"),
|
nBits = UInt32.fromHex("1d00ffff"),
|
||||||
|
|
|
@ -15,18 +15,22 @@ object HDUtil {
|
||||||
|
|
||||||
(hdPurpose, network) match {
|
(hdPurpose, network) match {
|
||||||
case (SegWit, MainNet) | (Taproot, MainNet) => SegWitMainNetPriv
|
case (SegWit, MainNet) | (Taproot, MainNet) => SegWitMainNetPriv
|
||||||
case (SegWit, TestNet3 | RegTest | SigNet) => SegWitTestNet3Priv
|
case (SegWit, TestNet3 | RegTest | SigNet | TestNet4) =>
|
||||||
case (Taproot, TestNet3 | RegTest | SigNet) => SegWitTestNet3Priv
|
SegWitTestNet3Priv
|
||||||
|
case (Taproot, TestNet3 | RegTest | SigNet | TestNet4) =>
|
||||||
|
SegWitTestNet3Priv
|
||||||
case (NestedSegWit, MainNet) => NestedSegWitMainNetPriv
|
case (NestedSegWit, MainNet) => NestedSegWitMainNetPriv
|
||||||
case (NestedSegWit, TestNet3 | RegTest | SigNet) =>
|
case (NestedSegWit, TestNet3 | RegTest | SigNet | TestNet4) =>
|
||||||
NestedSegWitTestNet3Priv
|
NestedSegWitTestNet3Priv
|
||||||
case (Multisig, MainNet) => LegacyMainNetPriv
|
case (Multisig, MainNet) => LegacyMainNetPriv
|
||||||
case (Multisig, TestNet3 | RegTest | SigNet) =>
|
case (Multisig, TestNet3 | RegTest | SigNet | TestNet4) =>
|
||||||
LegacyTestNet3Priv
|
LegacyTestNet3Priv
|
||||||
case (Legacy, MainNet) => LegacyMainNetPriv
|
case (Legacy, MainNet) => LegacyMainNetPriv
|
||||||
case (Legacy, TestNet3 | RegTest | SigNet) => LegacyTestNet3Priv
|
case (Legacy, TestNet3 | RegTest | SigNet | TestNet4) =>
|
||||||
|
LegacyTestNet3Priv
|
||||||
case (HDPurpose(585), MainNet) => SegWitMainNetPriv
|
case (HDPurpose(585), MainNet) => SegWitMainNetPriv
|
||||||
case (HDPurpose(585), TestNet3 | RegTest | SigNet) => SegWitTestNet3Priv
|
case (HDPurpose(585), TestNet3 | RegTest | SigNet | TestNet4) =>
|
||||||
|
SegWitTestNet3Priv
|
||||||
case (unknown: HDPurpose, _) =>
|
case (unknown: HDPurpose, _) =>
|
||||||
throw new IllegalArgumentException(s"Got unknown HD purpose $unknown")
|
throw new IllegalArgumentException(s"Got unknown HD purpose $unknown")
|
||||||
}
|
}
|
||||||
|
@ -40,16 +44,16 @@ object HDUtil {
|
||||||
|
|
||||||
(hdPurpose, network) match {
|
(hdPurpose, network) match {
|
||||||
case (SegWit, MainNet | SigNet) => ExtKeyPubVersion.SegWitMainNetPub
|
case (SegWit, MainNet | SigNet) => ExtKeyPubVersion.SegWitMainNetPub
|
||||||
case (SegWit, TestNet3 | RegTest | SigNet) =>
|
case (SegWit, TestNet3 | RegTest | SigNet | TestNet4) =>
|
||||||
ExtKeyPubVersion.SegWitTestNet3Pub
|
ExtKeyPubVersion.SegWitTestNet3Pub
|
||||||
case (NestedSegWit, MainNet) => ExtKeyPubVersion.NestedSegWitMainNetPub
|
case (NestedSegWit, MainNet) => ExtKeyPubVersion.NestedSegWitMainNetPub
|
||||||
case (NestedSegWit, TestNet3 | RegTest | SigNet) =>
|
case (NestedSegWit, TestNet3 | RegTest | SigNet | TestNet4) =>
|
||||||
ExtKeyPubVersion.NestedSegWitTestNet3Pub
|
ExtKeyPubVersion.NestedSegWitTestNet3Pub
|
||||||
case (Multisig, MainNet) => ExtKeyPubVersion.LegacyMainNetPub
|
case (Multisig, MainNet) => ExtKeyPubVersion.LegacyMainNetPub
|
||||||
case (Multisig, TestNet3 | RegTest | SigNet) =>
|
case (Multisig, TestNet3 | RegTest | SigNet | TestNet4) =>
|
||||||
ExtKeyPubVersion.LegacyTestNet3Pub
|
ExtKeyPubVersion.LegacyTestNet3Pub
|
||||||
case (Legacy, MainNet) => ExtKeyPubVersion.LegacyMainNetPub
|
case (Legacy, MainNet) => ExtKeyPubVersion.LegacyMainNetPub
|
||||||
case (Legacy, TestNet3 | RegTest | SigNet) =>
|
case (Legacy, TestNet3 | RegTest | SigNet | TestNet4) =>
|
||||||
ExtKeyPubVersion.LegacyTestNet3Pub
|
ExtKeyPubVersion.LegacyTestNet3Pub
|
||||||
case (unknown: HDPurpose, _) =>
|
case (unknown: HDPurpose, _) =>
|
||||||
throw new IllegalArgumentException(s"Got unknown HD purpose $unknown")
|
throw new IllegalArgumentException(s"Got unknown HD purpose $unknown")
|
||||||
|
|
|
@ -5,7 +5,7 @@ import org.apache.pekko.stream.scaladsl.SourceQueue
|
||||||
import org.bitcoins.asyncutil.AsyncUtil
|
import org.bitcoins.asyncutil.AsyncUtil
|
||||||
import org.bitcoins.chain.config.ChainAppConfig
|
import org.bitcoins.chain.config.ChainAppConfig
|
||||||
import org.bitcoins.core.api.node.{Peer, PeerManagerApi}
|
import org.bitcoins.core.api.node.{Peer, PeerManagerApi}
|
||||||
import org.bitcoins.core.config.{MainNet, RegTest, SigNet, TestNet3, TestNet4}
|
import org.bitcoins.core.config.{MainNet, RegTest, SigNet, TestNet3}
|
||||||
import org.bitcoins.core.p2p.{ServiceIdentifier, VersionMessage}
|
import org.bitcoins.core.p2p.{ServiceIdentifier, VersionMessage}
|
||||||
import org.bitcoins.core.util.StartStopAsync
|
import org.bitcoins.core.util.StartStopAsync
|
||||||
import org.bitcoins.node.config.NodeAppConfig
|
import org.bitcoins.node.config.NodeAppConfig
|
||||||
|
@ -82,7 +82,7 @@ case class PeerFinder(
|
||||||
.filter(nodeAppConfig.torConf.enabled || !_.contains(".onion"))
|
.filter(nodeAppConfig.torConf.enabled || !_.contains(".onion"))
|
||||||
val peers = BitcoinSNodeUtil.stringsToPeers(addresses)
|
val peers = BitcoinSNodeUtil.stringsToPeers(addresses)
|
||||||
Random.shuffle(peers)
|
Random.shuffle(peers)
|
||||||
case TestNet3 | TestNet4 | RegTest | SigNet =>
|
case TestNet3 | RegTest | SigNet =>
|
||||||
Vector.empty
|
Vector.empty
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue