spesmilo / electrumx

Alternative implementation of spesmilo/electrum-server
MIT License
439 stars 353 forks source link

Add support bitcoin signet #122

Closed wakiyamap closed 3 years ago

wakiyamap commented 3 years ago

I confirmed transmission and reception with electrum. https://explorer.bc-2.jp/tx/00257c1319bd526294c4c2fbfd028cbb02522b07ecf31b867c628e9671659ec1 https://explorer.bc-2.jp/tx/a264d80620d31de40584d276f94ac4dc82e3ca139e0f940cd940f02925239484

test server signet-electrumx.wakiyamap.dev

diff --git a/electrum/commands.py b/electrum/commands.py
index b34d0f736..bf6ebf2ed 100644
--- a/electrum/commands.py
+++ b/electrum/commands.py
@@ -1394,6 +1394,7 @@ def add_global_options(parser):
     group.add_argument("--testnet", action="store_true", dest="testnet", default=False, help="Use Testnet")
     group.add_argument("--regtest", action="store_true", dest="regtest", default=False, help="Use Regtest")
     group.add_argument("--simnet", action="store_true", dest="simnet", default=False, help="Use Simnet")
+    group.add_argument("--signet", action="store_true", dest="signet", default=False, help="Use Signet")
     group.add_argument("-o", "--offline", action="store_true", dest="offline", default=False, help="Run offline")

 def add_wallet_option(parser):
diff --git a/electrum/constants.py b/electrum/constants.py
index 6e5f7435e..fffed66b4 100644
--- a/electrum/constants.py
+++ b/electrum/constants.py
@@ -153,9 +153,21 @@ class BitcoinSimnet(BitcoinTestnet):
     LN_DNS_SEEDS = []

+class BitcoinSignet(BitcoinTestnet):
+
+    GENESIS = "00000008819873e925422c1ff0f99f7cc9bbb232af63a077a480a3633bee1ef6"
+    DEFAULT_SERVERS = read_json('servers_signet.json', {})
+    CHECKPOINTS = []
+    LN_DNS_SEEDS = []
+
+
 # don't import net directly, import the module instead (so that net is singleton)
 net = BitcoinMainnet

+def set_signet():
+    global net
+    net = BitcoinSignet
+
 def set_simnet():
     global net
     net = BitcoinSimnet
diff --git a/electrum/servers_signet.json b/electrum/servers_signet.json
new file mode 100644
index 000000000..9eed859c1
--- /dev/null
+++ b/electrum/servers_signet.json
@@ -0,0 +1,8 @@
+{
+    "signet-electrumx.wakiyamap.dev": {
+        "pruning": "-",
+        "s": "50002",
+        "t": "50001",
+        "version": "1.4"
+    }
+}
diff --git a/electrum/simple_config.py b/electrum/simple_config.py
index 3ab248da7..96e313096 100644
--- a/electrum/simple_config.py
+++ b/electrum/simple_config.py
@@ -128,6 +128,9 @@ class SimpleConfig(Logger):
         elif self.get('simnet'):
             path = os.path.join(path, 'simnet')
             make_dir(path, allow_symlink=False)
+        elif self.get('signet'):
+            path = os.path.join(path, 'signet')
+            make_dir(path, allow_symlink=False)

         self.logger.info(f"electrum directory {path}")
         return path
diff --git a/run_electrum b/run_electrum
index beef12d2e..375384cf7 100755
--- a/run_electrum
+++ b/run_electrum
@@ -364,6 +364,8 @@ def main():
         constants.set_regtest()
     elif config.get('simnet'):
         constants.set_simnet()
+    elif config.get('signet'):
+        constants.set_signet()

     cmdname = config.get('cmd')
SomberNight commented 3 years ago

Thank you!