Closed sultana-mnw closed 4 years ago
@sultana-mnw, Matcher is semi-decentralized part of WAVES DEX. All orders are stored on specified matcher. Read this closed issue, https://github.com/wavesplatform/Waves/issues/1354 and issue in the bottom.
for creating own matcher we have run full node ?? or else what steps i need to follow for creating own matcher?
@sultana-mnw, at first, you need to configure matcher. See here the section "Matcher settings" If you using old version of the node this will be runned after run the node. If you using new node, from version v1.0.0, you need to using dex extensions for the node, and one from this extenstions - is a matcher module. See this issue: https://github.com/wavesplatform/dex/issues/37 After running node with matcher extension, you'll see Mather REST API, but this will be on http://localhost:6886 , not HTTPS. To connect your own matcher into waves-client, you need to set up your matcher on HTTPS. You can using nginx proxy, as I did it to test, or you can use an another ways to do this. Also, you can using HTTP-matcher in old waves-lite-client, and using this without HTTPS. There is no any orders stored on new matcher, and this will not be added automatically in future. So, you need to do PR for your own matcher, because matcher is semi-decentralized part of WAVES-network. But this is working, and clients can working with custom nodes and matchers, even on localhost. Now in all network, there is only few official matchers. This option just means, no any center to stop all this decentralized WAVES network, and this can be raised from anywhere.
Best regards.
am getting error while running this command
sbt checkPR [info] Loading settings for project waves-dex-build from plugins.sbt ... [info] Loading project definition from /home/sultana/waves-dex/project [info] Loading settings for project root from build.sbt ... [info] Loading settings for project dex-generator from build.sbt ... [info] Loading settings for project dex-it from build.sbt ... [info] Loading settings for project dex from build.sbt ... [info] Loading settings for project waves-build from plugins.sbt ... [info] Loading project definition from /root/.sbt/1.0/staging/b02d83a062fa303d833d/waves/project [info] Loading settings for project root from build.sbt ... [info] Loading settings for project benchmark from build.sbt ... [info] Loading settings for project node-generator from build.sbt ... [info] Loading settings for project node-it from build.sbt ... [info] Loading settings for project grpc-server from build.sbt ... [info] Loading settings for project node from build.sbt ... [info] Loading settings for project lang from build.sbt ... [info] Loading settings for project langJS from build.sbt ... [info] Resolving key references (11340 settings) ... [info] Set current project to root (in build file:/home/sultana/waves-dex/) [info] Set current project to root (in build file:/home/sultana/waves-dex/) [warn] Credentials file /root/.sbt/.credentials does not exist [info] Updating ProjectRef(uri("git://github.com/wavesplatform/Waves.git#v1.0.2"), "node")... [info] Done updating. [info] Cleaning LocalProject(dex), LocalProject(dex-generator), LocalProject(dex-it), LocalProject(it), LocalProject(root), ProjectRef(git://github.com/wavesplatform/Waves.git#v1.0.2,node), ProjectRef(git://github.com/wavesplatform/Waves.git#v1.0.2,node-it) [warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings. [info] Updating ProjectRef(uri("git://github.com/wavesplatform/Waves.git#v1.0.2"), "node-it")... [info] Updating dex... [info] downloading http://dl.bintray.com/dnvriend/maven/com/github/dnvriend/akka-persistence-inmemory_2.12/2.5.15.1/akka-persistence-inmemory_2.12-2.5.15.1.jar ... [error] SERVER ERROR: Operation not permitted url=http://dl.bintray.com/dnvriend/maven/com/github/dnvriend/akka-persistence-inmemory_2.12/2.5.15.1/akka-persistence-inmemory_2.12-2.5.15.1.jar [warn] [FAILED ] com.github.dnvriend#akka-persistence-inmemory_2.12;2.5.15.1!akka-persistence-inmemory_2.12.jar: The HTTP response code for http://dl.bintray.com/dnvriend/maven/com/github/dnvriend/akka-persistence-inmemory_2.12/2.5.15.1/akka-persistence-inmemory_2.12-2.5.15.1.jar did not indicate a success. See log for more detail. (1471ms) [warn] Detected merged artifact: [FAILED ] com.github.dnvriend#akka-persistence-inmemory_2.12;2.5.15.1!akka-persistence-inmemory_2.12.jar: (0ms). [warn] ==== local: tried [warn] /root/.ivy2/local/com.github.dnvriend/akka-persistence-inmemory_2.12/2.5.15.1/jars/akka-persistence-inmemory_2.12.jar [warn] ==== public: tried [warn] https://repo1.maven.org/maven2/com/github/dnvriend/akka-persistence-inmemory_2.12/2.5.15.1/akka-persistence-inmemory_2.12-2.5.15.1.jar [warn] ==== local-preloaded-ivy: tried [warn] /root/.sbt/preloaded/com.github.dnvriend/akka-persistence-inmemory_2.12/2.5.15.1/jars/akka-persistence-inmemory_2.12.jar [warn] ==== local-preloaded: tried [warn] file:////root/.sbt/preloaded/com/github/dnvriend/akka-persistence-inmemory_2.12/2.5.15.1/akka-persistence-inmemory_2.12-2.5.15.1.jar [warn] ==== dnvriend: tried [warn] http://dl.bintray.com/dnvriend/maven/com/github/dnvriend/akka-persistence-inmemory_2.12/2.5.15.1/akka-persistence-inmemory_2.12-2.5.15.1.jar [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: FAILED DOWNLOADS :: [warn] :: ^ see resolution messages for details ^ :: [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: com.github.dnvriend#akka-persistence-inmemory_2.12;2.5.15.1!akka-persistence-inmemory_2.12.jar [warn] :::::::::::::::::::::::::::::::::::::::::::::: [info] Done updating. [warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings. [error] sbt.librarymanagement.ResolveException: download failed: com.github.dnvriend#akka-persistence-inmemory_2.12;2.5.15.1!akka-persistence-inmemory_2.12.jar [error] at sbt.internal.librarymanagement.IvyActions$.resolveAndRetrieve(IvyActions.scala:332) [error] at sbt.internal.librarymanagement.IvyActions$.$anonfun$updateEither$1(IvyActions.scala:208) [error] at sbt.internal.librarymanagement.IvySbt$Module.$anonfun$withModule$1(Ivy.scala:239) [error] at sbt.internal.librarymanagement.IvySbt.$anonfun$withIvy$1(Ivy.scala:204) [error] at sbt.internal.librarymanagement.IvySbt.sbt$internal$librarymanagement$IvySbt$$action$1(Ivy.scala:70) [error] at sbt.internal.librarymanagement.IvySbt$$anon$3.call(Ivy.scala:77) [error] at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:95) [error] at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:80) [error] at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:99) [error] at xsbt.boot.Using$.withResource(Using.scala:10) [error] at xsbt.boot.Using$.apply(Using.scala:9) [error] at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:60) [error] at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:50) [error] at xsbt.boot.Locks$.apply0(Locks.scala:31) [error] at xsbt.boot.Locks$.apply(Locks.scala:28) [error] at sbt.internal.librarymanagement.IvySbt.withDefaultLogger(Ivy.scala:77) [error] at sbt.internal.librarymanagement.IvySbt.withIvy(Ivy.scala:199) [error] at sbt.internal.librarymanagement.IvySbt.withIvy(Ivy.scala:196) [error] at sbt.internal.librarymanagement.IvySbt$Module.withModule(Ivy.scala:238) [error] at sbt.internal.librarymanagement.IvyActions$.updateEither(IvyActions.scala:193) [error] at sbt.librarymanagement.ivy.IvyDependencyResolution.update(IvyDependencyResolution.scala:20) [error] at sbt.librarymanagement.DependencyResolution.update(DependencyResolution.scala:56) [error] at sbt.internal.LibraryManagement$.resolve$1(LibraryManagement.scala:45) [error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$12(LibraryManagement.scala:93) [error] at sbt.util.Tracked$.$anonfun$lastOutput$1(Tracked.scala:68) [error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$19(LibraryManagement.scala:106) [error] at scala.util.control.Exception$Catch.apply(Exception.scala:224) [error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11(LibraryManagement.scala:106) [error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11$adapted(LibraryManagement.scala:89) [error] at sbt.util.Tracked$.$anonfun$inputChanged$1(Tracked.scala:149) [error] at sbt.internal.LibraryManagement$.cachedUpdate(LibraryManagement.scala:120) [error] at sbt.Classpaths$.$anonfun$updateTask$5(Defaults.scala:2561) [error] at scala.Function1.$anonfun$compose$1(Function1.scala:44) [error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:40) [error] at sbt.std.Transform$$anon$4.work(System.scala:67) [error] at sbt.Execute.$anonfun$submit$2(Execute.scala:269) [error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16) [error] at sbt.Execute.work(Execute.scala:278) [error] at sbt.Execute.$anonfun$submit$1(Execute.scala:269) [error] at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178) [error] at sbt.CompletionService$$anon$2.call(CompletionService.scala:37) [error] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [error] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [error] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [error] at java.lang.Thread.run(Thread.java:748) [error] (dex / update) sbt.librarymanagement.ResolveException: download failed: com.github.dnvriend#akka-persistence-inmemory_2.12;2.5.15.1!akka-persistence-inmemory_2.12.jar'
how could i resolve this error??
download failed
Thx @username1565 for all previous information and tips, it will be very helpful before starting my own job at own matcher (I am going to do it soon). By the way, I have one question (I cannot find in the Waves doc) -
Is this needed to install full mining node and run in the production mode by using 1,000 Waves BEFORE install and launch the matcher, definitely? Or running the matcher module cannot require the full mining node with allocation 1,000 Waves?
@bitSecurities, 1000 WAVES - is minimum Generating Balance for mining node, so this minimum just need for mining node, to generate blocks. This 1000 WAVES can be leased to the empty node, and after 1000 blocks confirmations of the leasing-transaction - this node can do mining. This minimum was been a first Feature Request, accepted and activated, after successfully voting. See: https://dev.pywaves.org/activation/ 1000 WAVES no need for matcher, just for mining. This need because probablity to generate blocks with lesser balances is very very low. Just to be more effective, and get 1 block at least for 1 week, this minimum was been accepted as start point, to start mining.
Otherwise, with less balance, the probability of finding a block is too low, and you can wait a long time to generate a block on your mining node... So it's not entirely clear whether mining is happening, or something is wrong, and it's time to turn off the node, after two weeks of unsuccessful mining... While the real probability of finding a block, say, is 1 block per month, with a small generating balance.
@username1565 Thx a lot for the info, that such own matcher will be successfully launched on the node which is just a propagating-blockchain-node, but not a mining-node (generating a block). My next question is about Waves tokenomics of such a solution, regarding your trial with a succeesful execution the exchange-transacton on your own matcher.
As you have writtne - you attached your Waves client to your own launched matcher, Next the matcher executed an order at DEX from your client by gaining the 0.003 Waves of exchanging-fee and giving it to your matcher's address this 0..003 Waves (as I understand?) . But this transaction was broadcasted to the whole blockchain by the client by using other nodes (mining nodes in the Waves NG system). Does it mean that the whole fee from this transaction was taken by your matcher and the nodes confirmed your transaction in blockchian for free (no charge), because nothing from the transaction fee went to the NG-system nodes which made a job to confirm it?
Or did your matcher split the gained fee with a node which resolved a block, where the exchanging transaction was confirmed?
@bitSecurities, yes, and all right. But standard node is mining-node by default. You can configure this funcions - yourself (see different sections there).
Exchange transactions have [type = 7], and all fees from this transactions receive the matchers. My test-transaction was been included into the block 1679071 in mainnet blockchain.
This was been exchange of token IOU1 to WAVES from myself - just for myself.
You can see matcher address there: 3P68Vpfa8UqhB1AGtXNSknYv1qMiJiCgXMj
This is my node. And here you can see incoming transaction with receive fees:
https://w8io.ru/3P68Vpfa8UqhB1AGtXNSknYv1qMiJiCgXMj/
2019.08.27 07:38 (1679071) (exchange) MATCHER -> 3P68Vpfa8UqhB1AGtXNSknYv1qMiJiCgXMj +0.00300000 Waves
No any additional fees no need to pay.
Miners get fees from the transfers, burn, and another type of transactions - not from exchange-transactions. Just see blocks here: https://wavesblockexplorer.com/#!/blocks and where you can see Fee-column, that's fees are received by miners for each generated block, but no the fees from exchange-transactions.
That means, if you have your own matcher, you can using High Frequrency Trading, and trading with larger volumes, and you will not lose nothing in fees, but blockchain size will growing faster in this case.
And here: https://w8io.ru/MATCHER You can see all matchers in mainnet. Only two-three matchers.
Also, there is possible to do mining and confirm transactions -
without connect to the mainnet, for example in LAN.
Because this is a DEX - Decentralized Exchange.
Just see the parameter qurum=1
in the section miner
, in the configuration file.
Have a nice day.
@username1565 Thank you once again! Everything is clear now and as you have said - own matcher is a fantastic tool to launch market making or HFT on Waves blockchain assets, Really curious what will be with Waves blockchain size after several guys will implement bots for such market making - as mentioned - the blockchain size will be growing very fast in this case. Any 24 hour test of market making on the local (LAN) fork of the blockchain should present estimation for long-term pumping the size. Or simply we can estimate the maximum load full size of all micro blocks through NG x 24 hours x 365 days to see what can be the size in the worst scenario during such one year. And have a nice day vice versa.
@bitSecurities, I think the fast growing the blockchain size will not be a problem, even for long-term working this system, but if blockchain optimization will implemented. In this case, synchronization between nodes, and primary synchronization for each new node will be faster, because no need to save FULL blockchain from genesis block up to last block, with an old non-actual transactions inside that all blocks. But this need to do. Now, primary synchronization and import of blocks go on ~4 days at blockchain height (1700000 blocks). But what will be after 5 years? 10 years?... Hehheh...
@username1565 Yes, such a blockchain optimization could be very interesting way in the future, no doubt.
By the way, I started to launch my own node/matcher installation regarding all your tips (very appreciated), including about installation Waves DEX jar files and making the special *.bat file to take them during starting the node. But I am getting suspended/timeout errors by connection to peers and no sync is progressing. I got existing peers from wavesexplorer.com. I got such errors in logs:
2019-09-24 19:45:39,650 INFO [main] c.w.Application$ - Starting... 2019-09-24 19:45:40,322 INFO [ctor.default-dispatcher-2] a.event.slf4j.Slf4jLogger - Slf4jLogger started 2019-09-24 19:45:40,525 INFO [main] c.w.Application$ - Waves v1.1.2 Blockchain Id: W 2019-09-24 19:45:40,525 DEBUG [main] c.w.database.package$ - Open DB at ./node/data 2019-09-24 19:45:44,542 INFO [main] c.w.n.PeerDatabaseImpl - Loaded 7 known peer(s) from peers.dat 2019-09-24 19:45:45,027 DEBUG [main] com.wavesplatform.package$ - Genesis block: Block(FSH8eAAzZNqnG8xgTZtz5xuLqXySsXgAjmFEC25hXMbEufiGjqWPnGCZFt6gLiVLJny16ipxRNAkkzjjhqTjBE2 -> 67rpwLC..., txs=6, features=Set(), reward=-1) ... 2019-09-24 19:45:45,370 INFO [main] com.wavesplatform.package$ - Genesis block Block(FSH8eAAzZNqnG8xgTZtz5xuLqXySsXgAjmFEC25hXMbEufiGjqWPnGCZFt6gLiVLJny16ipxRNAkkzjjhqTjBE2 -> 67rpwLC..., txs=6, features=Set(), reward=-1) has been added to the state 2019-09-24 19:45:47,643 INFO [main] c.w.Application - REST API was bound on 127.0.0.1:6869 2019-09-24 19:45:47,799 DEBUG [nio-worker-group-3-2] c.w.n.PeerDatabaseImpl - Suspending [23800230 188.166.87.58:6868] 2019-09-24 19:45:49,941 DEBUG [nio-worker-group-3-3] c.w.n.PeerDatabaseImpl - Suspending [89161504 5.189.162.236:6868] ... etc, etc 2019-09-24 19:46:38,710 DEBUG [nio-worker-group-3-3] c.w.network.NetworkServer$ - [92b411f5] Connection timed out: no further information: /7.180.253.169:6868, outgoing channel count: 1 .. etc, etc I suppose that the info about existing peers in wavesexplorer was false taken by me or I made any mistake in the conf file, But I cannot recognize where. Maybe you will be able to find why this is stopping. The conf file is as below:
# Node base directory
directory = "./node"
db {
... }
# NTP server
ntp-server = "pool.ntp.org"
# P2P Network settings
network {
...
# Network address
bind-address = "0.0.0.0"
# Port number
port = 6868
...
# List of IP addresses of well known nodes.
known-peers = ["45.33.59.25:6868", "188.166.87.58:6868","5.189.162.236:6868","173.212.234.30:6868", "104.248.197.58:6868", "07.180.253.169:6868","3.122.126.32:6868"]
....
# Wallet settings
wallet {
# Path to wallet file
file = ${waves.directory}"/wallet/wallet.dat"
# Password to protect wallet file
password = "password"
... }
# Blockchain settings
blockchain {
# Blockchain type. Could be TESTNET | MAINNET | CUSTOM. Default value is TESTNET.
type = MAINNET
...
# New blocks generator settings
miner {
# Enable/disable block generation
enable = no
...
# Node's REST API settings
rest-api {
# Enable/disable REST API
enable = yes
# Network address to bind to
bind-address = "127.0.0.1"
# Port to listen to REST API requests
port = 6869
# Hash of API key string
api-key-hash = ""
# Enable/disable CORS support
cors = yes
# Enable/disable X-API-Key from different host
api-key-different-host = no
...
waves.dex {
account = "3P6YfYFjyVaDfprgYNqC9djCyKRYyi4FAMv" # This account must be known at the Node, e.g. created through POST /addresses
# bind-address = "0.0.0.0" # uncomment this line to accept connections from any host
}
# Matcher settings
matcher {
# Enable/disable matcher
enable = yes
# Matcher's account address
account = "3P6YfYFjyVaDfprgYNqC9djCyKRYyi4FAMv"
# Matcher REST API bind address
bind-address = "127.0.0.1"
# Matcher REST API port
port = 6886
# Minimum allowed order fee
min-order-fee = 400000
# Fee of order match transaction
order-match-tx-fee = 400000
# Matcher's directories
matcher-directory = ${waves.directory}"/matcher"
data-directory = ${waves.matcher.matcher-directory}"/data"
journal-directory = ${waves.matcher.matcher-directory}"/journal"
snapshots-directory = ${waves.matcher.matcher-directory}"/snapshots"
# LevelDB's internal cache size
leveldb-cache-size = 256M
# Snapshots creation interval
snapshots-interval = 1d
# Invalid/Expired orders cleanup interval
order-cleanup-interval = 5m
# Maximum allowed amount of open orders
max-open-orders = 1000
# Maximum allowed amount of orders retrieved via REST
rest-order-limit = 100
# Maximum orders stored in OrderHistory per address
max-orders-per-address = 1000
...
extensions = [
# com.wavesplatform.matcher.Matcher
# com.wavesplatform.api.grpc.GRPCServerExtension
]
# How much time to wait for extensions' shutdown
extensions-shutdown-timeout = 5 minutes
}
...
Oww. Your post is unreadable. You can edit this. If you want to post the code, just include this into 3-time repeated symbol "`"
`_`_`(without "_")
example code
`_`_`(without "_")
Also, you can using "preview"-tab, before send your post.
I did try to read quoted post, but there is unreadable too. So many symbols.
You can see active peers here: https://wavesblockexplorer.com/#!/peers And here: https://wavesexplorer.com/peers Maybe, some peers are unactive, and connsctions are suspended.. Also, maybe you need to unlock jar-file in your firewall to allow the connections or accepting incoming connections from the another peers. For example, I did add javaw.exe in windows-brandmauer, as an exception.
Here is example of configuration file: https://github.com/wavesplatform/waves-documentation/blob/master/ko/waves-full-node/how-to-configure-a-node.md
directory = "./node"
Here can be specified custom folder, to save the data. In this case node can be portable.
wallet ->
# seed = ""
You can specify your own seed, if you want to import custom address.
For example, seed words can be encoded in the base58.
Also, if seed will be generated randomly, after first start, just save this,
and you can decode it to mnemonic words phrase, in the future.
Also, you can remove password string from config.conf, if you using VPS.
In this case, you'll may to enter password manually after each running.
By this password is encrypted the file wallet.dat
,
where is existing inside the encrypted seed, and privkey from node address.
This seed can be restored from NODE REST API, if you leave API_KEY in config (not hash only),
but maybe, this can be restored also, by hash only, on the working node.
I have writted few .bat
-files (.cmd
-files) in windows.
START_NEW_NODE_v1.1.2.bat
::Just to start the mining node
G:
cd "G:\coins\WAVES_FULL_NODE\NEW_NODE"
java -jar waves-all-1.0.2.jar node.conf
pause
Run_v1.0.2_with_extensions(MATCHER).bat
::Mining node + enabled matcher on http://127.0.0.1:6886/
G:
cd "G:\coins\WAVES_FULL_NODE\NEW_NODE"
java -cp "G:\coins\WAVES_FULL_NODE\NEW_NODE\waves-all-1.0.2.jar;G:\coins\WAVES_FULL_NODE\NEW_NODE\dex-1.0.1\dex-1.0.1\lib\*" com.wavesplatform.Application node_extensions.conf
pause
As you can see, there is used different configuration files node.conf
and node_extensions.conf
The main diffenence between this files is the following additional strings in node_extensions.conf, in the bottom of the file:
# ... here many lines of your Node's configuration
waves.extensions = [
"com.wavesplatform.dex.Matcher"
# ... here may be other extensions
]
waves.dex {
account = "NODE_ADDRESS" # This account must be known at the Node, e.g. created through POST /addresses on the NODE REST API by http://127.0.0.1:6869/
bind-address = "0.0.0.0" # uncomment this line to accept connections from any host
}
Inside this configuration files, i just using local folder to make the node portable:
waves {
# Node base directory
#directory = ${user.home}"/waves"
directory = "G:/coins/WAVES_FULL_NODE/NEW_NODE/data/"
...blah-blah-blah
and before write this, I just created the folder /data
near .jar
-file of the current version of the node.
Also, I have two another .bat
-files to import and export blockchain, using binary file:
export_blockchain_to_binary_file.bat
::blockchain binary file like this, which can be downloaded here: http://blockchain.wavesnodes.com/
G:
cd "G:\coins\WAVES_FULL_NODE\NEW_NODE"
java -cp waves-all-1.1.2.jar com.wavesplatform.Exporter -c "G:\coins\WAVES_FULL_NODE\NEW_NODE\node.conf" -o "J:\temp_downloads\mainnet-1655722" -h 1655722
pause
import_blockchain_from_binary_file.bat
::blockchain binary file to import - can be downloaded here: http://blockchain.wavesnodes.com/
G:
cd "G:\coins\WAVES_FULL_NODE\NEW_NODE"
java -cp waves-all-1.1.2.jar com.wavesplatform.Importer -c "G:\coins\WAVES_FULL_NODE\NEW_NODE\node.conf" -i "J:\temp_downloads\mainnet-1673287"
pause
File just to show help - help.bat
G:
cd "G:\coins\WAVES_FULL_NODE\NEW_NODE"
java -jar waves-all-1.0.2.jar --help
pause
And backup of seed from the node-address. seed.txt
#Just copy my seed from node address.
Base58 encoded seed: blah_blah_blah_encoded_seed_string
mnemonic seed: blah_blah_blah_decoded_seed_words
How to get it?
1. http://127.0.0.1:6869/ or where was bind and listen NODE REST API.
2. Enter the api key, hash of which specified in node.conf, and explore NODE REST API with this key.
3. GET /wallet/seed
4. Copy endoded base58 seed.
5. Decode this base58 string to words, using some converter. For example, I used this: https://username1565.github.io/brainwallet.github.io/#converter
and convert from base58 to text.
6. Copy mnemonic seed phrase - here.
All this files can be runned by mouse double-click. I don't using import-export of blockchain, because this is so slow. So I just do backup the data-folder regularry, and copy this again, if database will be damaged or data there will be corrupted.
I will not publish full my node.conf, because this contains 1400 strings, and there, inside, can be some secure data, like API key_hash or some public-key...
But, I'm using long known-peers array, and I just leave this here:
known-peers = [
"217.100.219.254:6868"
"52.52.46.76:6868"
"95.183.52.57:6868"
"108.129.24.52:6868"
"52.50.69.247:6868"
"78.46.230.142:6868"
"52.214.55.18:6868"
"35.156.19.4:6868"
"54.93.155.41:6868"
"203.220.1.195:6868"
"49.255.179.215:6868"
"220.240.70.61:6868"
"213.219.189.209:6868"
"94.156.174.100:6868"
"212.73.150.248:6868"
"217.12.203.52:6868"
"46.55.174.225:6868"
"187.103.79.229:6868"
"168.205.148.43:6868"
"179.107.98.22:6868"
"178.172.225.22:6868"
"93.125.105.174:6868"
"69.194.48.185:6868"
"149.56.17.97:6868"
"24.212.55.35:6868"
"149.56.31.199:6868"
"142.4.219.85:6868"
"149.56.109.195:6868"
"158.69.126.201:6868"
"54.39.19.7:6868"
"95.183.52.57:6868"
"95.183.53.70:6868"
"185.74.71.8:6868"
"106.38.101.50:6868"
"47.90.29.31:6868"
"47.91.245.244:6868"
"115.231.246.206:6868"
"188.75.173.74:6868"
"83.208.205.167:6868"
"46.36.37.157:6868"
"94.130.139.227:6868"
"95.179.164.56:6868"
"78.159.101.34:6868"
"5.189.146.189:6868"
"185.162.251.169:6868"
"148.251.2.87:6868"
"207.180.232.14:6868"
"95.179.167.240:6868"
"95.169.186.48:6868"
"136.243.65.148:6868"
"173.212.245.124:6868"
"173.249.26.213:6868"
"54.93.155.41:6868"
"159.69.182.215:6868"
"139.59.139.14:6868"
"173.212.243.216:6868"
"35.158.218.156:6868"
"5.9.78.7:6868"
"5.9.28.132:6868"
"85.25.210.79:6868"
"173.249.23.154:6868"
"78.46.66.27:6868"
"35.158.19.210:6868"
"46.165.221.81:6868"
"18.195.170.147:6868"
"173.249.1.184:6868"
"213.136.86.145:6868"
"88.99.235.240:6868"
"52.57.147.71:6868"
"167.86.120.68:6868"
"207.180.215.151:6868"
"79.143.181.62:6868"
"94.130.254.174:6868"
"139.59.153.195:6868"
"18.196.108.104:6868"
"167.71.58.79:6868"
"213.136.71.9:6868"
"173.212.206.150:6868"
"94.130.177.130:6868"
"207.180.253.169:6868"
"3.122.126.32:6868"
"83.135.177.0:6868"
"173.212.246.131:6868"
"77.180.6.159:6868"
"173.249.0.74:6868"
"207.180.252.189:6868"
"46.101.156.136:6868"
"78.46.50.196:6868"
"35.158.213.5:6868"
"206.81.23.177:6868"
"195.201.110.220:6868"
"148.251.195.203:6868"
"173.212.235.9:6868"
"173.212.209.86:6868"
"167.86.123.75:6868"
"18.184.106.146:6868"
"167.86.113.119:6868"
"94.130.254.104:6868"
"207.180.216.29:6868"
"207.154.248.34:6868"
"5.9.77.110:6868"
"3.122.172.245:6868"
"195.128.100.36:6868"
"104.248.21.238:6868"
"217.85.248.96:6868"
"94.130.214.70:6868"
"95.179.168.187:6868"
"78.46.230.142:6868"
"195.201.176.92:6868"
"207.180.236.55:6868"
"159.89.11.207:6868"
"193.200.241.253:6868"
"94.130.10.56:6868"
"80.241.214.193:6868"
"104.248.27.149:6868"
"5.189.136.6:6868"
"212.95.36.100:6868"
"85.214.23.29:6868"
"5.189.133.211:6868"
"165.22.28.80:6868"
"173.212.207.23:6868"
"104.248.29.178:6868"
"144.76.100.208:6868"
"173.249.16.213:6868"
"173.249.33.147:6868"
"178.238.236.94:6868"
"5.189.162.236:6868"
"212.125.109.2:6868"
"164.68.109.91:6868"
"207.180.231.5:6868"
"88.152.191.102:6868"
"18.197.15.137:6868"
"188.40.131.183:6868"
"188.166.166.47:6868"
"173.212.221.62:6868"
"173.249.1.67:6868"
"52.28.221.77:6868"
"213.136.82.252:6868"
"24.134.90.33:6868"
"173.212.234.30:6868"
"165.22.85.76:6868"
"165.22.17.219:6868"
"5.189.182.6:6868"
"195.201.119.60:6868"
"173.249.30.191:6868"
"35.156.19.4:6868"
"213.136.74.236:6868"
"209.250.238.166:6868"
"188.138.125.76:6868"
"88.99.37.232:6868"
"85.253.225.171:6868"
"84.52.56.151:6868"
"95.216.46.146:6868"
"95.217.42.235:6868"
"95.216.46.155:6868"
"95.217.34.59:6868"
"94.23.18.226:6868"
"164.132.224.127:6868"
"37.187.90.108:6868"
"51.77.203.200:6868"
"217.69.1.104:6868"
"54.36.127.193:6868"
"163.172.140.231:6868"
"134.119.215.55:6868"
"95.179.212.212:6868"
"212.83.158.100:6868"
"82.6.171.126:6868"
"165.22.113.179:6868"
"159.65.22.8:6868"
"51.77.116.183:6868"
"159.65.88.42:6868"
"104.248.173.41:6868"
"142.93.37.121:6868"
"209.97.134.1:6868"
"134.209.30.86:6868"
"35.246.46.17:6868"
"92.27.160.113:6868"
"167.99.93.175:6868"
"159.65.92.36:6868"
"209.97.135.71:6868"
"178.62.48.207:6868"
"95.179.193.244:6868"
"217.69.11.234:6868"
"47.244.150.232:6868"
"47.75.95.250:6868"
"62.165.249.114:6868"
"86.59.168.12:6868"
"52.48.248.22:6868"
"63.35.82.213:6868"
"52.142.90.170:6868"
"34.253.153.4:6868"
"52.50.69.247:6868"
"52.214.55.18:6868"
"34.240.7.165:6868"
"34.243.214.75:6868"
"52.169.199.35:6868"
"34.243.0.40:6868"
"18.202.210.200:6868"
"52.215.195.113:6868"
"63.34.73.11:6868"
"108.129.24.52:6868"
"138.91.58.108:6868"
"165.22.208.210:6868"
"45.82.136.156:6868"
"93.51.186.180:6868"
"3.112.138.57:6868"
"149.28.17.70:6868"
"18.179.76.71:6868"
"18.179.38.181:6868"
"18.179.42.104:6868"
"3.113.55.190:6868"
"45.77.176.221:6868"
"18.182.63.88:6868"
"1.234.18.162:6868"
"106.243.159.4:6868"
"221.150.111.238:6868"
"13.209.243.246:6868"
"175.125.94.90:6868"
"13.209.186.6:6868"
"52.79.147.121:6868"
"211.56.66.37:6868"
"13.209.44.12:6868"
"211.172.248.226:6868"
"13.209.25.71:6868"
"46.166.173.96:6868"
"185.25.48.12:6868"
"89.40.8.55:6868"
"185.64.104.2:6868"
"46.166.162.76:6868"
"188.42.33.124:6868"
"187.205.10.17:6868"
"193.172.33.72:6868"
"45.77.139.254:6868"
"178.62.205.170:6868"
"51.15.69.242:6868"
"134.209.86.129:6868"
"136.144.207.246:6868"
"149.210.169.190:6868"
"217.19.24.162:6868"
"188.166.67.47:6868"
"167.99.216.145:6868"
"188.166.87.58:6868"
"165.22.204.238:6868"
"83.247.111.67:6868"
"217.100.219.251:6868"
"51.15.71.72:6868"
"5.79.90.71:6868"
"86.95.3.20:6868"
"174.138.6.30:6868"
"167.71.13.254:6868"
"52.233.177.145:6868"
"52.236.155.87:6868"
"167.71.72.53:6868"
"62.108.11.96:6868"
"188.166.60.83:6868"
"62.45.13.109:6868"
"167.99.42.44:6868"
"195.123.222.20:6868"
"178.62.221.15:6868"
"109.237.209.217:6868"
"95.179.149.57:6868"
"82.197.194.154:6868"
"95.179.191.26:6868"
"188.166.30.192:6868"
"188.166.82.20:6868"
"178.128.240.99:6868"
"188.166.3.106:6868"
"212.120.87.143:6868"
"52.236.155.29:6868"
"109.237.214.208:6868"
"13.69.120.209:6868"
"84.82.23.159:6868"
"176.107.130.249:6868"
"5.181.109.139:6868"
"185.61.79.125:6868"
"217.168.76.86:6868"
"128.72.64.88:6868"
"213.183.48.59:6868"
"185.31.163.22:6868"
"188.246.224.148:6868"
"185.41.112.30:6868"
"85.235.174.134:6868"
"128.68.22.185:6868"
"217.14.197.114:6868"
"185.189.13.77:6868"
"81.5.104.122:6868"
"194.87.235.197:6868"
"91.225.238.239:6868"
"91.78.136.15:6868"
"46.164.253.103:6868"
"77.37.166.16:6868"
"84.201.163.61:6868"
"195.211.160.2:6868"
"185.137.234.120:6868"
"87.103.202.188:6868"
"79.139.180.176:6868"
"185.22.174.107:6868"
"185.130.44.109:6868"
"13.48.10.238:6868"
"52.221.202.59:6868"
"101.127.63.253:6868"
"178.128.209.174:6868"
"13.229.0.149:6868"
"47.74.229.72:6868"
"13.228.86.201:6868"
"185.198.74.91:6868"
"46.45.146.204:6868"
"95.70.203.152:6868"
"185.70.86.16:6868"
"193.104.203.45:6868"
"185.174.172.237:6868"
"95.46.107.119:6868"
"178.165.118.167:6868"
"109.200.240.242:6868"
"142.93.18.151:6868"
"157.230.49.190:6868"
"34.68.1.114:6868"
"45.56.71.137:6868"
"144.202.49.240:6868"
"104.156.225.73:6868"
"54.176.190.226:6868"
"45.33.22.96:6868"
"167.99.175.46:6868"
"35.195.101.154:6868"
"18.191.107.234:6868"
"13.57.243.173:6868"
"52.207.178.9:6868"
"165.22.186.29:6868"
"68.183.144.29:6868"
"159.89.83.200:6868"
"64.52.86.41:6868"
"144.202.8.145:6868"
"167.71.154.72:6868"
"3.13.102.28:6868"
"54.201.224.54:6868"
"35.229.203.123:6868"
"54.67.39.151:6868"
"167.99.98.46:6868"
"104.42.106.112:6868"
"45.33.59.25:6868"
"69.64.39.194:6868"
"52.52.46.76:6868"
"35.198.223.255:6868"
"45.33.5.32:6868"
"35.229.157.15:6868"
"40.83.173.248:6868"
"193.104.203.45:6868"
"178.165.118.167:6868"
"185.174.172.237:6868"
"95.46.107.119:6868"
"13.228.86.201:6868"
"13.229.0.149:6868"
"18.195.170.147:6868"
"34.253.153.4:6868"
"35.156.19.4:6868"
"52.50.69.247:6868"
"52.52.46.76:6868"
"52.57.147.71:6868"
"52.214.55.18:6868"
"54.176.190.226:6868"
"34.253.153.4:6868"
"35.156.19.4:6868"
"52.214.55.18:6868"
"52.50.69.247:6868"
"78.46.66.27:6868"
"95.183.52.57:6868"
"108.129.24.52:6868"
"54.93.155.41:6868"
"178.165.118.167:6868"
"188.42.33.124:6868"
"207.180.216.29:6868"
"82.197.194.154:6868"
"138.91.58.108:6868"
"207.154.248.34:6868"
"185.154.73.99:6868"
"165.22.186.29:6868"
"52.52.46.76:6868"
"47.74.229.72:6868"
"69.194.48.185:6868"
"165.22.113.179:6868"
"95.183.53.70:6868"
"54.67.39.151:6868"
"167.71.72.53:6868"
"159.69.182.215:6868"
"148.251.195.203:6868"
"85.25.210.79:6868"
"188.138.125.76:6868"
"178.128.209.174:6868"
"185.130.44.109:6868"
"83.208.205.167:6868"
"109.237.214.208:6868"
"87.227.188.250:6868"
"188.166.60.83:6868"
"217.14.197.114:6868"
"91.78.136.15:6868"
"86.59.168.12:6868"
"165.22.208.210:6868"
"18.196.108.104:6868"
"94.130.10.56:6868"
"193.104.203.45:6868"
"83.135.212.217:6868"
"88.99.235.240:6868"
"139.59.153.195:6868"
"94.130.214.70:6868"
"78.46.50.196:6868"
"13.48.10.238:6868"
"220.240.70.61:6868"
"18.197.15.137:6868"
"45.77.139.254:6868"
"185.41.112.30:6868"
"213.219.189.209:6868"
"178.172.225.22:6868"
"185.64.104.2:6868"
"5.181.109.139:6868"
"188.166.3.106:6868"
"195.128.100.36:6868"
"174.138.6.30:6868"
"185.239.237.159:6868"
"173.212.246.131:6868"
"167.99.42.44:6868"
"209.97.135.71:6868"
"144.202.8.145:6868"
"13.209.243.246:6868"
"149.56.109.195:6868"
"167.99.216.145:6868"
"94.23.18.226:6868"
"167.71.58.79:6868"
"106.38.101.50:6868"
"173.249.1.67:6868"
"173.212.209.86:6868"
"35.229.203.123:6868"
"178.128.240.99:6868"
"95.179.149.57:6868"
"128.68.22.185:6868"
"35.158.19.210:6868"
"195.201.176.92:6868"
"45.33.59.25:6868"
"164.132.224.127:6868"
"52.28.221.77:6868"
"167.86.120.68:6868"
"13.209.44.12:6868"
"52.214.55.18:6868"
"54.36.127.193:6868"
"213.136.71.9:6868"
"62.165.249.114:6868"
"84.236.12.116:6868"
"173.212.245.124:6868"
"34.68.1.114:6868"
"136.243.65.148:6868"
"3.112.138.57:6868"
"149.28.17.70:6868"
"18.191.107.234:6868"
"139.59.139.14:6868"
"78.46.230.142:6868"
"77.185.64.11:6868"
"77.185.128.1:6868"
"212.83.158.100:6868"
"5.9.28.132:6868"
"85.214.23.29:6868"
"93.125.105.174:6868"
"212.120.87.143:6868"
"188.166.82.20:6868"
"104.248.27.149:6868"
"188.246.224.148:6868"
"77.37.166.16:6868"
"178.238.236.94:6868"
"134.209.86.129:6868"
"109.237.209.217:6868"
"52.233.177.145:6868"
"185.162.251.169:6868"
"217.85.242.44:6868"
"94.156.174.100:6868"
"89.40.8.55:6868"
"221.150.111.238:6868"
"52.142.90.170:6868"
"52.221.202.59:6868"
"167.71.13.254:6868"
"5.79.90.71:6868"
"95.217.42.235:6868"
"167.86.113.119:6868"
"52.207.178.9:6868"
"149.56.31.199:6868"
"142.93.37.121:6868"
"167.86.123.75:6868"
"188.166.87.58:6868"
"144.76.100.208:6868"
"195.201.172.78:6868"
"142.93.18.151:6868"
"95.179.167.240:6868"
"84.201.163.61:6868"
"47.91.245.244:6868"
"95.217.34.59:6868"
"92.27.160.113:6868"
"95.179.168.187:6868"
"35.158.218.156:6868"
"45.82.136.156:6868"
"52.236.155.29:6868"
"94.130.254.104:6868"
"130.193.57.248:6868"
"173.249.30.191:6868"
"108.129.24.52:6868"
"18.202.196.73:6868"
"173.212.207.23:6868"
"49.255.179.215:6868"
"95.169.186.48:6868"
"149.56.17.97:6868"
"157.230.49.190:6868"
"91.225.238.239:6868"
"13.228.86.201:6868"
"34.243.0.40:6868"
"173.249.1.184:6868"
"35.195.101.154:6868"
"94.228.167.143:6868"
"46.164.253.103:6868"
"203.220.1.195:6868"
"127.0.0.1:6868"
"187.103.79.229:6868"
"193.200.241.253:6868"
"80.241.214.193:6868"
"86.95.3.20:6868"
"79.139.180.176:6868"
"163.172.140.231:6868"
"185.189.13.77:6868"
"63.35.82.213:6868"
"46.36.37.157:6868"
"134.119.215.55:6868"
"13.57.243.173:6868"
"54.176.190.226:6868"
"207.180.236.55:6868"
"88.152.191.102:6868"
"159.65.22.8:6868"
"101.127.63.253:6868"
"52.215.195.113:6868"
"178.62.221.15:6868"
"52.169.199.35:6868"
"5.9.77.110:6868"
"95.46.107.119:6868"
"52.57.147.71:6868"
"94.130.139.227:6868"
"159.65.92.36:6868"
"40.83.173.248:6868"
"185.137.234.120:6868"
"84.52.56.151:6868"
"95.179.164.56:6868"
"159.89.11.207:6868"
"54.39.19.7:6868"
"46.166.162.76:6868"
"95.179.191.26:6868"
"104.42.106.112:6868"
"206.81.23.177:6868"
"188.75.173.74:6868"
"79.143.181.62:6868"
"104.248.173.41:6868"
"52.48.248.22:6868"
"47.90.29.31:6868"
"5.9.78.7:6868"
"165.22.204.238:6868"
"207.180.232.14:6868"
"164.68.109.91:6868"
"175.125.94.90:6868"
"54.93.155.41:6868"
"24.134.90.33:6868"
"167.71.154.72:6868"
"106.243.159.4:6868"
"207.180.215.151:6868"
"134.209.30.86:6868"
"46.55.174.225:6868"
"136.144.207.246:6868"
"82.6.171.126:6868"
"13.251.147.60:6868"
"188.166.30.192:6868"
"78.46.66.27:6868"
"165.22.17.219:6868"
"51.15.69.242:6868"
"52.25.69.242:6868"
"173.212.221.62:6868"
"18.202.210.200:6868"
"167.99.175.46:6868"
"68.183.144.29:6868"
"148.251.2.87:6868"
"173.212.243.216:6868"
"142.4.219.85:6868"
"188.166.166.47:6868"
"3.113.55.190:6868"
"95.179.212.212:6868"
"35.198.223.255:6868"
"45.77.176.221:6868"
"173.212.234.30:6868"
"13.209.25.71:6868"
"158.69.126.201:6868"
"35.246.46.17:6868"
"68.183.12.120:6868"
"18.179.42.104:6868"
"45.56.71.137:6868"
"193.172.33.72:6868"
"84.82.23.159:6868"
"93.51.186.180:6868"
"51.77.116.183:6868"
"185.31.163.22:6868"
"46.166.173.96:6868"
"3.122.172.245:6868"
"52.79.147.121:6868"
"207.180.253.169:6868"
"217.100.219.254:6868"
"104.248.29.178:6868"
"212.125.109.2:6868"
"176.107.130.249:6868"
"188.40.131.183:6868"
"178.62.205.170:6868"
"46.165.221.81:6868"
"195.201.119.60:6868"
"34.240.7.165:6868"
"168.205.148.43:6868"
"185.74.71.8:6868"
"94.130.177.130:6868"
"63.34.73.11:6868"
"95.216.46.155:6868"
"1.234.18.162:6868"
"3.122.126.32:6868"
"173.212.235.9:6868"
"165.22.28.80:6868"
"217.100.219.251:6868"
"81.5.104.122:6868"
"69.64.39.194:6868"
"185.70.86.16:6868"
"95.183.52.57:6868"
"173.249.26.213:6868"
"35.158.213.5:6868"
"195.123.222.20:6868"
"37.187.90.108:6868"
"34.253.153.4:6868"
"47.244.150.232:6868"
"85.235.174.134:6868"
"34.243.214.75:6868"
"95.216.46.146:6868"
"207.180.231.5:6868"
"173.249.33.147:6868"
"95.70.203.152:6868"
"149.210.169.190:6868"
"173.212.206.150:6868"
"62.108.11.96:6868"
"179.107.98.22:6868"
"18.179.38.181:6868"
"47.75.95.250:6868"
"195.211.160.2:6868"
"173.249.0.74:6868"
"217.12.203.52:6868"
"104.156.225.73:6868"
"1.2.3.4:6868"
"51.15.71.72:6868"
"213.136.86.145:6868"
"187.205.8.2:6868"
"187.205.124.93:6868"
"159.89.83.200:6868"
"94.130.254.174:6868"
"211.56.66.37:6868"
"172.17.1.13:6868"
"213.136.82.252:6868"
"35.156.19.4:6868"
"212.95.36.100:6868"
"35.229.157.15:6868"
"212.73.150.248:6868"
"217.69.11.234:6868"
"188.166.67.47:6868"
"167.99.93.175:6868"
"185.25.48.12:6868"
"18.195.170.147:6868"
"5.189.182.6:6868"
"165.22.85.76:6868"
"85.253.225.171:6868"
"62.45.13.109:6868"
"195.201.110.220:6868"
"54.201.224.54:6868"
"45.33.22.96:6868"
"217.168.76.86:6868"
"24.212.55.35:6868"
"213.183.48.59:6868"
"46.45.146.204:6868"
"46.250.17.57:6868"
"217.19.24.162:6868"
"115.231.246.206:6868"
"159.65.88.42:6868"
"217.69.1.104:6868"
"64.52.86.41:6868"
"45.33.5.32:6868"
"5.189.133.211:6868"
"128.72.64.88:6868"
"51.77.203.200:6868"
"178.62.48.207:6868"
"207.180.252.189:6868"
"104.248.21.238:6868"
"52.236.155.87:6868"
"78.159.101.34:6868"
"18.184.106.146:6868"
"18.194.250.51:6868"
"83.247.111.67:6868"
"167.99.98.46:6868"
"211.172.248.226:6868"
"3.13.102.28:6868"
"13.69.120.209:6868"
"209.97.134.1:6868"
"5.189.162.236:6868"
"194.87.235.197:6868"
"13.229.0.149:6868"
"18.179.76.71:6868"
"185.198.74.91:6868"
"46.101.156.136:6868"
"13.209.186.6:6868"
"185.174.172.237:6868"
"173.249.23.154:6868"
"185.61.79.125:6868"
"165.22.85.76:6868"
"130.193.37.149:6868"
"35.158.218.156:6868"
"45.33.22.96:6868"
"188.75.173.74:6868"
"18.194.35.238:6868"
"217.100.219.251:6868"
"52.50.69.247:6868"
"185.130.44.109:6868"
"121.189.17.230:6868"
"18.196.108.104:6868"
"85.235.174.134:6868"
"35.156.19.4:6868"
"142.93.37.121:6868"
"52.214.55.18:6868"
"94.130.254.174:6868"
"173.249.1.67:6868"
"144.202.8.145:6868"
"178.62.225.183:6868"
"95.183.53.70:6868"
"5.9.78.7:6868"
"173.249.28.63:6868"
"85.253.225.171:6868"
"176.125.109.111:6868"
"49.255.179.215:6868"
"142.91.152.20:6868"
"188.166.67.47:6868"
"193.104.203.45:6868"
"94.228.167.143:6868"
"104.131.48.151:6868"
"195.211.160.2:6868"
"179.107.98.22:6868"
"46.250.17.57:6868"
"130.193.57.248:6868"
"34.68.1.114:6868"
"52.221.202.59:6868"
"52.236.155.29:6868"
"35.195.101.154:6868"
"157.230.49.190:6868"
"104.248.27.149:6868"
"173.212.245.124:6868"
"159.89.83.200:6868"
"93.125.105.174:6868"
"178.62.48.207:6868"
"45.82.136.156:6868"
"178.62.221.15:6868"
"5.9.28.132:6868"
"167.71.72.53:6868"
"207.180.215.151:6868"
"207.180.232.14:6868"
"165.22.28.80:6868"
"173.212.234.30:6868"
"173.212.221.62:6868"
"185.25.48.12:6868"
"87.227.188.250:6868"
"5.189.182.6:6868"
"167.71.58.79:6868"
"52.236.155.87:6868"
"178.165.118.167:6868"
"104.248.29.178:6868"
"185.31.163.22:6868"
"163.172.140.231:6868"
"213.136.80.84:6868"
"109.237.214.208:6868"
"18.185.65.189:6868"
"167.86.123.75:6868"
"35.198.223.255:6868"
"61.97.253.104:6868"
"3.122.126.32:6868"
"54.176.190.226:6868"
"51.77.116.183:6868"
"68.183.12.120:6868"
"40.83.173.248:6868"
"92.27.160.113:6868"
"178.128.34.254:6868"
"46.55.174.225:6868"
"95.183.52.57:6868"
"178.128.230.137:6868"
"185.174.172.237:6868"
"115.231.246.206:6868"
"86.59.168.12:6868"
"81.5.104.122:6868"
"104.20.28.253:6868"
"167.99.42.44:6868"
"138.91.58.108:6868"
"5.189.146.189:6868"
"85.214.23.29:6868"
"173.212.243.216:6868"
"206.81.23.177:6868"
"94.130.10.56:6868"
"51.15.69.242:6868"
"81.169.200.218:6868"
"95.179.167.240:6868"
"86.95.3.20:6868"
"108.129.24.52:6868"
"5.189.136.6:6868"
"52.169.199.35:6868"
"84.201.163.61:6868"
"212.73.150.248:6868"
"18.184.106.146:6868"
"142.93.18.151:6868"
"178.128.209.174:6868"
"178.62.205.170:6868"
"51.15.71.72:6868"
"188.166.3.106:6868"
"51.77.141.159:6868"
"173.212.235.9:6868"
"94.130.177.130:6868"
"13.209.186.6:6868"
"5.79.90.71:6868"
"52.48.248.22:6868"
"174.138.6.30:6868"
"165.22.113.179:6868"
"34.243.214.75:6868"
"207.180.216.29:6868"
"52.30.47.67:6868"
"84.52.56.151:6868"
"167.99.175.46:6868"
"82.197.194.154:6868"
"173.212.209.86:6868"
"213.136.71.9:6868"
"13.48.10.238:6868"
"188.166.60.83:6868"
"54.93.155.41:6868"
"51.145.43.128:6868"
"45.56.71.137:6868"
"5.189.156.200:6868"
"207.180.253.169:6868"
"134.119.215.55:6868"
"104.20.27.253:6868"
"13.228.86.201:6868"
"52.52.46.76:6868"
"77.185.64.11:6868"
"167.86.113.119:6868"
"46.101.156.136:6868"
"13.229.0.149:6868"
"45.77.176.221:6868"
"47.74.229.72:6868"
"206.189.6.68:6868"
"188.166.166.47:6868"
"159.65.88.42:6868"
"193.172.33.72:6868"
"34.237.49.199:6868"
"207.180.252.189:6868"
"165.22.17.219:6868"
"18.195.170.147:6868"
"188.40.131.183:6868"
"24.212.55.35:6868"
"173.249.1.184:6868"
"18.197.214.35:6868"
"52.209.101.96:6868"
"82.6.171.126:6868"
"159.69.182.215:6868"
"3.13.102.28:6868"
"89.29.176.219:6868"
"167.99.93.175:6868"
"95.70.203.152:6868"
"35.158.213.5:6868"
"164.68.109.91:6868"
"35.246.46.17:6868"
"91.225.238.239:6868"
"188.42.33.124:6868"
"52.57.147.71:6868"
"62.165.249.114:6868"
"45.33.59.25:6868"
"77.95.129.67:6868"
"80.241.214.193:6868"
"78.46.66.27:6868"
"165.22.208.210:6868"
"178.128.240.99:6868"
"77.37.166.16:6868"
"209.97.134.1:6868"
"159.65.92.36:6868"
"217.100.219.252:6868"
"94.74.99.253:6868"
"173.249.33.147:6868"
"173.249.26.213:6868"
"188.166.30.192:6868"
"5.181.109.139:6868"
"164.132.224.127:6868"
"185.189.13.77:6868"
"165.22.204.238:6868"
"128.72.64.88:6868"
"78.46.230.142:6868"
"167.99.216.145:6868"
"213.136.86.145:6868"
"51.77.203.200:6868"
"213.183.48.59:6868"
"149.210.169.190:6868"
"95.169.186.48:6868"
"185.64.104.2:6868"
"195.128.100.36:6868"
"209.97.162.47:6868"
"83.247.111.67:6868"
"207.180.236.55:6868"
"209.97.135.71:6868"
"87.103.202.188:6868"
"173.249.0.74:6868"
"188.166.87.58:6868"
"13.69.120.209:6868"
"68.183.144.29:6868"
"212.83.158.100:6868"
"139.59.139.14:6868"
"165.22.186.29:6868"
"46.36.37.157:6868"
"134.209.30.86:6868"
"212.95.36.100:6868"
"95.46.107.119:6868"
"35.181.26.127:6868"
"45.77.139.254:6868"
"167.71.154.72:6868"
"217.168.76.86:6868"
"95.179.164.56:6868"
"109.237.209.217:6868"
"64.52.86.41:6868"
"62.45.13.109:6868"
"212.120.87.143:6868"
"24.134.90.33:6868"
"144.202.49.240:6868"
"46.101.235.176:6868"
"194.87.235.197:6868"
"188.166.82.20:6868"
"178.238.236.94:6868"
"185.198.74.91:6868"
"88.152.191.102:6868"
"173.212.207.23:6868"
"185.162.251.169:6868"
"91.121.83.35:6868"
"217.19.24.162:6868"
"5.189.162.236:6868"
"45.33.5.32:6868"
"104.156.225.73:6868"
"173.249.30.191:6868"
"62.108.11.96:6868"
]
See this issue https://github.com/wavesplatform/Waves/issues/2631 I have runned matcher with node version v1.0.2 + dex extensions. But I see throw error for the node with version v1.1.2.
http://dyndns-node.duckdns.org:6886/ - my Matcher REST API. http://dyndns-node.duckdns.org:6869/ - my Node REST API.
@username1565 Thanks a lot, I will edit my previous post to the more clear structure, as you suggest. Practically I tried yesterday all above things thanks to your previous tips, including running with or without these additional files of macher. I didn't have any problem with syncing in testnet - I was connected to peers and got the blockchain. The problem begun on mainnet.
Maybe the reason is to small number of peers which I put into the conf file. I will copy all your list (thanks!) into my conf and we will see, Or maybe this another issue wavesplatform/Waves#2631 - I will also check.
I will update soon.
[edit] It is syncing now, probably the reason was to short list on peers in my conf file. So, your list has been very helpful! I'm trying in a moment to start the matcher.
@username1565 Just for update ... I got a full node mode is working well and a matcher (it seems so, becasue I'm not getting the throw exceptions which you present on the issue wavesplatform/Waves#2631 ) on version 1.1.2.
But I'm not sure is this matcher well running on my computer, Because I got two things which I suppose are not compatible with previous descriptions in your posts:
I see Swagger of REST API 127.0.0.1:6869, but I cannot see Swagger of Matcher REST API 127.0.0.6886 (the message is "Can't read from server. It may not have the appropriate access-control-origin settings."). Is this OK? netstat -a also shows only opened port 6869 and nothing about port 6886 (which is mentioned in my conf file for MATCHER REST API) How to check that Matcher REST API is working well in my situation?
I can see that Swagger is strange with hashing - I'm getting two different results for hashing the key - there are different hashes from the Swagger (here) and from your converter (here) for the same phrase by using Base58. Finally when I put the both hashes into the conf file (I'm trying these both versions) and try to use it at wallet/seed (to check that hash key is running well) - everytime (by different trails with hash key is put in the conf file) I got such answers at wallet/seed with error:
{
"error": 2,
"message": "Provided API key is not correct"
}
I cannot understand why is the situation with hashing on Swagger and using it by the node from the conf file.
@bitSecurities,
- I see Swagger of REST API 127.0.0.1:6869, but I cannot see Swagger of Matcher REST API 127.0.0.6886 (the message is "Can't read from server. It may not have the appropriate access-control-origin settings."). Is this OK?
What version? v1.1.2? Did you try all steps from that my issue? This can be repeated in another folder, and then config can be extended. At any time all folder "data" can be cleared, and also you can specify full pathways there, not relative pathways.
As I remember, CORS can be allowed in browser. Also, you can see here: https://minings.ru/majning-waves/
# Node's REST API settings.
rest-api {
...
# Enable/disable CORS support.
cors = yes
}
And maybe, this can working too, in matcher
-section.
netstat -a also shows only opened port 6869 and nothing about port 6886 (which is mentioned in my conf file for MATCHER REST API) How to check that Matcher REST API is working well in my situation?
You can using netstat -an
too to see IP addresses, where this is already binded.
Also, 127.0.0.6886
is an incorrect IP. Try http://127.0.0.1:6886
.
And you can bind it to 0.0.0.0
or [::]
to allow incoming connection from anywhere.
# Matcher REST API bind address
bind-address = "0.0.0.0"
- I can see that Swagger is strange with hashing - I'm getting two different results for hashing the key - there are different hashes from the Swagger (here) and from your converter (here) for the same phrase by using Base58.
My converter (not my) I'd using just to decode Base58-seed to mnemonic word's passphrase (and encode it to base58 encoded seed, before generate wallet.dat
, when /data
-folder was been empty). This is not hash.
To calculate hash from your opened API_KEY, use POST /utils/hash/secure
.
Example: ridethewaves!
-> H6nsiifwYKYEx6YzYD7woP1XCn72RVvx6tC1zjjLXqsu
Then:
rest-api {
...
# Hash of API key string
api-key-hash = "H6nsiifwYKYEx6YzYD7woP1XCn72RVvx6tC1zjjLXqsu" # hash from api key
# Enable/disable CORS support
cors = yes
# Enable/disable api_key from different host
api-key-different-host = no
and ridethewaves!
string can be used as API key, in the top, to explore this and unlock locked functions, when you open your NODE REST API.
Example: GET /wallet/seed
working only when correct API key was been specified, and corresponding hash is equal with hash, which specified in configuration file.
Else:
{
"error": 2,
"message": "Provided API key is not correct"
}
@username1565 Thanks for your insights.
Regarding my matcher is running on 1.1.2 node - I think the code of dex extension simply doesn't work at my installation, despite no exceptions are alerted.. I tried bind to 0.0.0.0 a moment ago, CORS is obviously enabled, but still I got the strange message of no connection when ... Swagger of 127.0.0.6886 is starting with interface and next this error. It looks lika a problem with execution these jar files of dex 1.0.2 in 1.1.2 node. And nestat -an shows no 6886 port is listening, as below, only 6869 port is ready:
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING
TCP 0.0.0.0:5985 0.0.0.0:0 LISTENING
TCP 0.0.0.0:5986 0.0.0.0:0 LISTENING
TCP 0.0.0.0:47001 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49664 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49665 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49666 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49667 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49668 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49674 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49675 0.0.0.0:0 LISTENING
TCP 10.156.0.4:139 0.0.0.0:0 LISTENING
TCP 10.156.0.4:3389 89.66.8.182:57329 ESTABLISHED
TCP 10.156.0.4:49669 169.254.169.254:80 ESTABLISHED
TCP 10.156.0.4:49786 35.160.158.154:443 ESTABLISHED
TCP 10.156.0.4:59002 172.217.23.170:443 ESTABLISHED
TCP 10.156.0.4:59069 52.50.69.247:6868 ESTABLISHED
TCP 10.156.0.4:59090 93.125.105.174:6868 SYN_SENT
TCP 127.0.0.1:6869 0.0.0.0:0 LISTENING
TCP 127.0.0.1:49776 127.0.0.1:49777 ESTABLISHED
TCP 127.0.0.1:49777 127.0.0.1:49776 ESTABLISHED
TCP 127.0.0.1:49778 127.0.0.1:49779 ESTABLISHED
TCP 127.0.0.1:49779 127.0.0.1:49778 ESTABLISHED
TCP 127.0.0.1:49789 127.0.0.1:49790 ESTABLISHED
TCP 127.0.0.1:49790 127.0.0.1:49789 ESTABLISHED
TCP 127.0.0.1:49798 127.0.0.1:49799 ESTABLISHED
TCP 127.0.0.1:49799 127.0.0.1:49798 ESTABLISHED
TCP 127.0.0.1:49847 127.0.0.1:49848 ESTABLISHED
TCP 127.0.0.1:49848 127.0.0.1:49847 ESTABLISHED
TCP 127.0.0.1:50129 127.0.0.1:50130 ESTABLISHED
TCP 127.0.0.1:50130 127.0.0.1:50129 ESTABLISHED
TCP 127.0.0.1:50648 127.0.0.1:50649 ESTABLISHED
TCP 127.0.0.1:50649 127.0.0.1:50648 ESTABLISHED
TCP 127.0.0.1:50692 127.0.0.1:50693 ESTABLISHED
TCP 127.0.0.1:50693 127.0.0.1:50692 ESTABLISHED
TCP 127.0.0.1:50840 127.0.0.1:50841 ESTABLISHED
TCP 127.0.0.1:50841 127.0.0.1:50840 ESTABLISHED
TCP 127.0.0.1:50854 127.0.0.1:50855 ESTABLISHED
TCP 127.0.0.1:50855 127.0.0.1:50854 ESTABLISHED
TCP 127.0.0.1:58972 127.0.0.1:58973 ESTABLISHED
TCP 127.0.0.1:58973 127.0.0.1:58972 ESTABLISHED
TCP 127.0.0.1:58974 127.0.0.1:58975 ESTABLISHED
TCP 127.0.0.1:58975 127.0.0.1:58974 ESTABLISHED
TCP 127.0.0.1:58976 127.0.0.1:58977 ESTABLISHED
TCP 127.0.0.1:58977 127.0.0.1:58976 ESTABLISHED
TCP 127.0.0.1:58978 127.0.0.1:58979 ESTABLISHED
TCP 127.0.0.1:58979 127.0.0.1:58978 ESTABLISHED
TCP 127.0.0.1:58980 127.0.0.1:58981 ESTABLISHED
TCP 127.0.0.1:58981 127.0.0.1:58980 ESTABLISHED
TCP 127.0.0.1:58982 127.0.0.1:58983 ESTABLISHED
TCP 127.0.0.1:58983 127.0.0.1:58982 ESTABLISHED
TCP 127.0.0.1:58984 127.0.0.1:58985 ESTABLISHED
TCP 127.0.0.1:58985 127.0.0.1:58984 ESTABLISHED
TCP 127.0.0.1:58986 127.0.0.1:58987 ESTABLISHED
TCP 127.0.0.1:58987 127.0.0.1:58986 ESTABLISHED
TCP 127.0.0.1:58988 127.0.0.1:58989 ESTABLISHED
TCP 127.0.0.1:58989 127.0.0.1:58988 ESTABLISHED
TCP [::]:135 [::]:0 LISTENING
TCP [::]:445 [::]:0 LISTENING
TCP [::]:3389 [::]:0 LISTENING
TCP [::]:5985 [::]:0 LISTENING
TCP [::]:5986 [::]:0 LISTENING
TCP [::]:47001 [::]:0 LISTENING
TCP [::]:49664 [::]:0 LISTENING
TCP [::]:49665 [::]:0 LISTENING
TCP [::]:49666 [::]:0 LISTENING
TCP [::]:49667 [::]:0 LISTENING
TCP [::]:49668 [::]:0 LISTENING
TCP [::]:49674 [::]:0 LISTENING
TCP [::]:49675 [::]:0 LISTENING
UDP 0.0.0.0:123 *:*
UDP 0.0.0.0:500 *:*
UDP 0.0.0.0:3389 *:*
UDP 0.0.0.0:4500 *:*
UDP 0.0.0.0:5353 *:*
UDP 0.0.0.0:5355 *:*
UDP 10.156.0.4:137 *:*
UDP 10.156.0.4:138 *:*
UDP 127.0.0.1:64718 *:*
UDP [::]:123 *:*
UDP [::]:500 *:*
UDP [::]:3389 *:*
UDP [::]:4500 *:*
UDP [::]:5353 *:*
UDP [::]:5355 *:*
This fact of no alerts of exceptions on my computer is nothing when it doesn't work as a matcher through the dex 1.0.2 libraries. Sorry @username1565, but I have nothing new for you in the issue wavesplatform/Waves#2631
So I am going to try on 1.0.2. as you were successful at that version.
And also thanks for the topic 2. This is very helpful for me,
@username1565 On my computer (Microsoft Server 2019 + Java SDK 11 Red Hat) the node 1.0.2 doesn't work correctly (Swagger makes exceptions). But my 1.1.2 node works well on this PC, but with another type of non-working Matcher, apart from your issue wavesplatform/Waves#2631
I suppose that these cases come simply from different integrations between Windows versions and Java SDK versions. Probably trying on different configurations of Windows version/SDK vereion - it will be succesfully finally.
So, generally I am awaiting new extension files of DEX for 1.1.2. or any news at your issue wavesplatform/Waves#2631 Because I went through all possibilites and your very helpful tips and now I am at the staeg that this is more Java execution on the system than my configuration.
@bitSecurities, what throw exception do you receive in console, when you try to run node v1.0.2, by all steps from that issue?
Can you copy and paste this throw exception here?
If you try to run the node from another folder, maybe you need to unlock this .jar
-files in your firewall too...
@username1565 Below is an extract from console at 1.0.2 (stopping at Swagger). The same conf file works well for 1.1.2 on my machine and the node is stable, including Swagger:
2019-09-25 22:39:05,781 INFO [main] c.w.Application$ - Starting...
2019-09-25 22:39:06,609 INFO [ctor.default-dispatcher-6] a.event.slf4j.Slf4jLogger - Slf4jLogger started
2019-09-25 22:39:06,734 INFO [main] c.w.Application$ - Waves v1.0.2 Blockchain Id: W
2019-09-25 22:39:10,865 INFO [main] com.wavesplatform.package$ - Genesis block Block(FSH8eAAzZNqnG8xgTZtz5xuLqXySsXgAjmFEC25hXMbEufiGjqWPnGCZFt6gLiVLJny16ipxRNAkkzjjhqTjBE2 -> 67rpwLC..., txs=6, features=Set()) has been added to the state
2019-09-25 22:39:10,880 INFO [main] c.w.w.Wallet$WalletImpl - Added account wavesplatform/Waves#1
2019-09-25 22:39:16,833 INFO [main] c.w.Application - REST API was bound on 127.0.0.1:6900
2019-09-25 22:40:47,483 WARN [tor.default-dispatcher-10] c.w.a.h.CompositeHttpService - HTTP 308 Permanent Redirect from GET http://127.0.0.1:6900/
2019-09-25 22:40:47,608 INFO [ctor.default-dispatcher-8] c.w.a.h.CompositeHttpService - HTTP 200 OK from GET http://127.0.0.1:6900/api-docs/index.html
...
2019-09-25 22:40:49,176 INFO [tor.default-dispatcher-17] c.w.a.h.CompositeHttpService - HTTP 200 OK from GET http://127.0.0.1:6900/api-docs/images/favicon-16x16.png
Uncaught error from thread [wavesplatform-akka.actor.default-dispatcher-8]: javax/xml/bind/annotation/XmlRootElement, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[wavesplatform]
java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlRootElement
at io.swagger.jackson.ModelResolver.resolve(ModelResolver.java:282)
at io.swagger.jackson.ModelResolver.resolve(ModelResolver.java:194)
at com.github.swagger.akka.SwaggerScalaModelConverter.resolve(SwaggerScalaModelConverter.scala:86)
at io.swagger.converter.ModelConverterContextImpl.resolve(ModelConverterContextImpl.java:103)
at io.swagger.jackson.ModelResolver.resolve(ModelResolver.java:248)
at io.swagger.jackson.ModelResolver.resolve(ModelResolver.java:194)
at com.github.swagger.akka.SwaggerScalaModelConverter.resolve(SwaggerScalaModelConverter.scala:86)
at io.swagger.converter.ModelConverterContextImpl.resolve(ModelConverterContextImpl.java:103)
at io.swagger.jackson.ModelResolver.resolveProperty(ModelResolver.java:170)
at io.swagger.jackson.ModelResolver.resolveProperty(ModelResolver.java:121)
at com.github.swagger.akka.SwaggerScalaModelConverter.resolveProperty(SwaggerScalaModelConverter.scala:66)
at io.swagger.converter.ModelConverterContextImpl.resolveProperty(ModelConverterContextImpl.java:83)
at io.swagger.converter.ModelConverters.readAsProperty(ModelConverters.java:63)
at io.swagger.jaxrs.Reader.parseMethod(Reader.java:904)
at io.swagger.jaxrs.Reader.read(Reader.java:325)
at io.swagger.jaxrs.Reader.read(Reader.java:175)
at com.github.swagger.akka.SwaggerGenerator.filteredSwagger(SwaggerHttpService.scala:101)
at com.github.swagger.akka.SwaggerGenerator.filteredSwagger$(SwaggerHttpService.scala:100)
at com.wavesplatform.api.http.swagger.SwaggerDocService.filteredSwagger(SwaggerDocService.scala:11)
at com.github.swagger.akka.SwaggerGenerator.generateSwaggerJson(SwaggerHttpService.scala:72)
at com.github.swagger.akka.SwaggerGenerator.generateSwaggerJson$(SwaggerHttpService.scala:70)
at com.wavesplatform.api.http.swagger.SwaggerDocService.generateSwaggerJson(SwaggerDocService.scala:11)
at com.github.swagger.akka.SwaggerHttpService.$anonfun$routes$3(SwaggerHttpService.scala:115)
at akka.http.scaladsl.server.directives.RouteDirectives.$anonfun$complete$1(RouteDirectives.scala:47)
at akka.http.scaladsl.server.StandardRoute$$anon$1.apply(StandardRoute.scala:19)
at akka.http.scaladsl.server.StandardRoute$$anon$1.apply(StandardRoute.scala:19)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$mapRouteResult$2(BasicDirectives.scala:66)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$textract$2(BasicDirectives.scala:159)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$mapRequestContext$2(BasicDirectives.scala:43)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$textract$2(BasicDirectives.scala:159)
at akka.http.scaladsl.server.RouteConcatenation$RouteWithConcatenation.$anonfun$$tilde$1(RouteConcatenation.scala:44)
at akka.http.scaladsl.server.RouteConcatenation$RouteWithConcatenation.$anonfun$$tilde$1(RouteConcatenation.scala:44)
at akka.http.scaladsl.server.RouteConcatenation$RouteWithConcatenation.$anonfun$$tilde$1(RouteConcatenation.scala:44)
at akka.http.scaladsl.server.RouteConcatenation$RouteWithConcatenation.$anonfun$$tilde$2(RouteConcatenation.scala:47)
at akka.http.scaladsl.util.FastFuture$.strictTransform$1(FastFuture.scala:41)
at akka.http.scaladsl.util.FastFuture$.transformWith$extension1(FastFuture.scala:45)
at akka.http.scaladsl.util.FastFuture$.flatMap$extension(FastFuture.scala:26)
at akka.http.scaladsl.server.RouteConcatenation$RouteWithConcatenation.$anonfun$$tilde$1(RouteConcatenation.scala:44)
at akka.http.scaladsl.server.RouteConcatenation$RouteWithConcatenation.$anonfun$$tilde$1(RouteConcatenation.scala:44)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$mapRouteResult$2(BasicDirectives.scala:66)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$textract$2(BasicDirectives.scala:159)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$mapRouteResultWith$2(BasicDirectives.scala:72)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$textract$2(BasicDirectives.scala:159)
at akka.http.scaladsl.server.directives.ExecutionDirectives.$anonfun$handleExceptions$2(ExecutionDirectives.scala:32)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$textract$2(BasicDirectives.scala:159)
at akka.http.scaladsl.server.Route$.$anonfun$asyncHandler$1(Route.scala:86)
at akka.stream.impl.fusing.MapAsyncUnordered$$anon$31.onPush(Ops.scala:1318)
at akka.stream.impl.fusing.GraphInterpreter.processPush(GraphInterpreter.scala:519)
at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:411)
at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:588)
at akka.stream.impl.fusing.GraphInterpreterShell$AsyncInput.execute(ActorGraphInterpreter.scala:472)
at akka.stream.impl.fusing.GraphInterpreterShell.processEvent(ActorGraphInterpreter.scala:563)
at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:745)
at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:760)
at akka.actor.Actor.aroundReceive(Actor.scala:517)
at akka.actor.Actor.aroundReceive$(Actor.scala:515)
at akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:670)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:592)
at akka.actor.ActorCell.invoke(ActorCell.scala:561)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:258)
at akka.dispatch.Mailbox.run(Mailbox.scala:225)
at akka.dispatch.Mailbox.exec(Mailbox.scala:235)
at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlRootElement
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 66 more
2019-09-25 22:40:49,949 ERROR [tor.default-dispatcher-11] akka.actor.ActorSystemImpl - Uncaught error from thread [wavesplatform-akka.actor.default-dispatcher-8]: javax/xml/bind/annotation/XmlRootElement, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[wavesplatform]
java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlRootElement
at io.swagger.jackson.ModelResolver.resolve(ModelResolver.java:282)
at io.swagger.jackson.ModelResolver.resolve(ModelResolver.java:194)
at com.github.swagger.akka.SwaggerScalaModelConverter.resolve(SwaggerScalaModelConverter.scala:86)
at io.swagger.converter.ModelConverterContextImpl.resolve(ModelConverterContextImpl.java:103)
at io.swagger.jackson.ModelResolver.resolve(ModelResolver.java:248)
at io.swagger.jackson.ModelResolver.resolve(ModelResolver.java:194)
at com.github.swagger.akka.SwaggerScalaModelConverter.resolve(SwaggerScalaModelConverter.scala:86)
at io.swagger.converter.ModelConverterContextImpl.resolve(ModelConverterContextImpl.java:103)
at io.swagger.jackson.ModelResolver.resolveProperty(ModelResolver.java:170)
at io.swagger.jackson.ModelResolver.resolveProperty(ModelResolver.java:121)
at com.github.swagger.akka.SwaggerScalaModelConverter.resolveProperty(SwaggerScalaModelConverter.scala:66)
at io.swagger.converter.ModelConverterContextImpl.resolveProperty(ModelConverterContextImpl.java:83)
at io.swagger.converter.ModelConverters.readAsProperty(ModelConverters.java:63)
at io.swagger.jaxrs.Reader.parseMethod(Reader.java:904)
at io.swagger.jaxrs.Reader.read(Reader.java:325)
at io.swagger.jaxrs.Reader.read(Reader.java:175)
at com.github.swagger.akka.SwaggerGenerator.filteredSwagger(SwaggerHttpService.scala:101)
at com.github.swagger.akka.SwaggerGenerator.filteredSwagger$(SwaggerHttpService.scala:100)
at com.wavesplatform.api.http.swagger.SwaggerDocService.filteredSwagger(SwaggerDocService.scala:11)
at com.github.swagger.akka.SwaggerGenerator.generateSwaggerJson(SwaggerHttpService.scala:72)
at com.github.swagger.akka.SwaggerGenerator.generateSwaggerJson$(SwaggerHttpService.scala:70)
at com.wavesplatform.api.http.swagger.SwaggerDocService.generateSwaggerJson(SwaggerDocService.scala:11)
at com.github.swagger.akka.SwaggerHttpService.$anonfun$routes$3(SwaggerHttpService.scala:115)
at akka.http.scaladsl.server.directives.RouteDirectives.$anonfun$complete$1(RouteDirectives.scala:47)
at akka.http.scaladsl.server.StandardRoute$$anon$1.apply(StandardRoute.scala:19)
at akka.http.scaladsl.server.StandardRoute$$anon$1.apply(StandardRoute.scala:19)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$mapRouteResult$2(BasicDirectives.scala:66)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$textract$2(BasicDirectives.scala:159)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$mapRequestContext$2(BasicDirectives.scala:43)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$textract$2(BasicDirectives.scala:159)
at akka.http.scaladsl.server.RouteConcatenation$RouteWithConcatenation.$anonfun$$tilde$1(RouteConcatenation.scala:44)
at akka.http.scaladsl.server.RouteConcatenation$RouteWithConcatenation.$anonfun$$tilde$1(RouteConcatenation.scala:44)
at akka.http.scaladsl.server.RouteConcatenation$RouteWithConcatenation.$anonfun$$tilde$1(RouteConcatenation.scala:44)
at akka.http.scaladsl.server.RouteConcatenation$RouteWithConcatenation.$anonfun$$tilde$2(RouteConcatenation.scala:47)
at akka.http.scaladsl.util.FastFuture$.strictTransform$1(FastFuture.scala:41)
at akka.http.scaladsl.util.FastFuture$.transformWith$extension1(FastFuture.scala:45)
at akka.http.scaladsl.util.FastFuture$.flatMap$extension(FastFuture.scala:26)
at akka.http.scaladsl.server.RouteConcatenation$RouteWithConcatenation.$anonfun$$tilde$1(RouteConcatenation.scala:44)
at akka.http.scaladsl.server.RouteConcatenation$RouteWithConcatenation.$anonfun$$tilde$1(RouteConcatenation.scala:44)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$mapRouteResult$2(BasicDirectives.scala:66)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$textract$2(BasicDirectives.scala:159)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$mapRouteResultWith$2(BasicDirectives.scala:72)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$textract$2(BasicDirectives.scala:159)
at akka.http.scaladsl.server.directives.ExecutionDirectives.$anonfun$handleExceptions$2(ExecutionDirectives.scala:32)
at akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$textract$2(BasicDirectives.scala:159)
at akka.http.scaladsl.server.Route$.$anonfun$asyncHandler$1(Route.scala:86)
at akka.stream.impl.fusing.MapAsyncUnordered$$anon$31.onPush(Ops.scala:1318)
at akka.stream.impl.fusing.GraphInterpreter.processPush(GraphInterpreter.scala:519)
at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:411)
at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:588)
at akka.stream.impl.fusing.GraphInterpreterShell$AsyncInput.execute(ActorGraphInterpreter.scala:472)
at akka.stream.impl.fusing.GraphInterpreterShell.processEvent(ActorGraphInterpreter.scala:563)
at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:745)
at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:760)
at akka.actor.Actor.aroundReceive(Actor.scala:517)
at akka.actor.Actor.aroundReceive$(Actor.scala:515)
at akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:670)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:592)
at akka.actor.ActorCell.invoke(ActorCell.scala:561)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:258)
at akka.dispatch.Mailbox.run(Mailbox.scala:225)
at akka.dispatch.Mailbox.exec(Mailbox.scala:235)
at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlRootElement
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 66 common frames omitted
2019-09-25 22:40:49,970 INFO [shutdownHook3] c.w.Application - HistoryReplier was shutdown successfully
2019-09-25 22:40:49,978 INFO [shutdownHook3] c.w.Application - Closing REST API
2019-09-25 22:40:49,992 INFO [shutdownHook3] c.w.n.PeerDatabaseImpl - Saving 392 known peer(s) to peers.dat
2019-09-25 22:40:50,118 INFO [shutdownHook3] c.w.Application - Stopping network services
2019-09-25 22:40:54,564 INFO [shutdownHook3] c.w.Application - Miner was shutdown successfully
2019-09-25 22:40:54,564 INFO [utx-pool-sync-31] c.w.n.UtxPoolSynchronizer$ - UtxPoolSynschronizer stops
2019-09-25 22:40:54,564 INFO [shutdownHook3] c.w.Application - MicroblockSynchronizer was shutdown successfully
2019-09-25 22:40:54,564 INFO [shutdownHook3] c.w.Application - ScoreObserver was shutdown successfully
2019-09-25 22:40:54,580 INFO [shutdownHook3] c.w.Application - ExtensionLoader was shutdown successfully
2019-09-25 22:40:54,580 INFO [shutdownHook3] c.w.Application - Appender was shutdown successfully
2019-09-25 22:40:54,580 INFO [shutdownHook3] c.w.Application - Closing storage
2019-09-25 22:40:54,596 INFO [shutdownHook3] c.wavesplatform.utils.NTP - Shutting down Time
2019-09-25 22:40:54,596 INFO [shutdownHook3] c.w.Application - Shutdown complete
@bitSecurities, very good!
Uncaught error from thread
says about something is Uncaught and maybe, something was been changed...
And... Oww, really!
I see there is published some updates for dex-extensions here: https://github.com/wavesplatform/dex/releases
When I wrote this issue,
I did copied already saved dex-1.0.1.tgz, unpack this to .tar
, then unpack to the folder
.
And this is working for node v1.0.2...
But, now I see there is already released dex-1.0.2.tgz, and this working with node v1.1.2,
after change the version and pathways, inside those .bat
-files.
But this node was been stopped for me:
2019-09-26 02:06:31,368 ERROR [main] c.w.Application - Usage of the default api
key hash (H6nsiifwYKYEx6YzYD7woP1XCn72RVvx6tC1zjjLXqsu) is prohibited, please ch
ange it in the waves.conf
This is not so smart, because api-key-hash cann't be generated locally, then, after this stop... Will be better to just add notification, and continue, after press any key...
Anyway, just need to change default api-key-hash
in configuration file.
~~Yes, you can generate api-key-hash using outside node, like https://nodes.wavesnodes.com
see POST /utils/hash/secure
there.
But sending API-KEY
as OPENED TEXT
to another node, even over HTTPS is not secure.
So you can try to start v1.0.2,
and generate api key hash locally, using NODE REST API on http://127.0.0.1:6869~~
P.S.: Also, I just leave this strings here, to get around this only for node v1.1.2:
# Hash of API key string
# open_text = "test_api_key"
api-key-hash = "86GJVSoboK12zXHYJFzoucAKaFS1yyXA2NztWSt9tGiX"
# THIS MUST TO BE CHANGED IN FUTURE.
# GENERATE HASH YOU CAN HERE: http://127.0.0.1:6869/api-docs/index.html
# POST /utils/hash/secure
# message: API-key, as opened text
# result: api-key-hash
Finally! Best regards, and have a nice day.
@username1565 Congrats that is running already on your machine on 1.1.2 node with dex 1.0.2!
I still on the way. I use 1.1.2 jar file of the node. I changed libriaries from dex 1.0.1 to dex 1.0.2 on my 1.1.2 node, everything works as a node (including Swagger with REST API on 127.0.0.1:6869), but I cannot see any opened port 6886 nor Matcher REST API on 127.0.0.1:6886), netstat -an presents:
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING
TCP 0.0.0.0:5985 0.0.0.0:0 LISTENING
TCP 0.0.0.0:5986 0.0.0.0:0 LISTENING
TCP 0.0.0.0:47001 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49664 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49665 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49666 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49667 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49668 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49674 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49675 0.0.0.0:0 LISTENING
TCP 10.156.0.4:139 0.0.0.0:0 LISTENING
TCP 10.156.0.4:3389 94.254.128.43:52490 ESTABLISHED
TCP 10.156.0.4:49669 169.254.169.254:80 ESTABLISHED
TCP 10.156.0.4:49692 52.26.100.123:443 ESTABLISHED
TCP 10.156.0.4:50141 34.253.153.4:6868 ESTABLISHED
TCP 10.156.0.4:50192 172.217.22.10:443 ESTABLISHED
TCP 10.156.0.4:50195 217.69.1.104:6868 SYN_SENT
TCP 127.0.0.1:6869 0.0.0.0:0 LISTENING
TCP 127.0.0.1:6869 127.0.0.1:50189 ESTABLISHED
TCP 127.0.0.1:49681 127.0.0.1:49682 ESTABLISHED
TCP 127.0.0.1:49682 127.0.0.1:49681 ESTABLISHED
TCP 127.0.0.1:49683 127.0.0.1:49684 ESTABLISHED
TCP 127.0.0.1:49684 127.0.0.1:49683 ESTABLISHED
TCP 127.0.0.1:49690 127.0.0.1:49691 ESTABLISHED
TCP 127.0.0.1:49691 127.0.0.1:49690 ESTABLISHED
TCP 127.0.0.1:49719 127.0.0.1:49720 ESTABLISHED
TCP 127.0.0.1:49720 127.0.0.1:49719 ESTABLISHED
TCP 127.0.0.1:49908 127.0.0.1:49909 ESTABLISHED
TCP 127.0.0.1:49909 127.0.0.1:49908 ESTABLISHED
TCP 127.0.0.1:49910 127.0.0.1:49911 ESTABLISHED
TCP 127.0.0.1:49911 127.0.0.1:49910 ESTABLISHED
TCP 127.0.0.1:49912 127.0.0.1:49913 ESTABLISHED
TCP 127.0.0.1:49913 127.0.0.1:49912 ESTABLISHED
TCP 127.0.0.1:49914 127.0.0.1:49915 ESTABLISHED
TCP 127.0.0.1:49915 127.0.0.1:49914 ESTABLISHED
TCP 127.0.0.1:49916 127.0.0.1:49917 ESTABLISHED
TCP 127.0.0.1:49917 127.0.0.1:49916 ESTABLISHED
TCP 127.0.0.1:49918 127.0.0.1:49919 ESTABLISHED
TCP 127.0.0.1:49919 127.0.0.1:49918 ESTABLISHED
TCP 127.0.0.1:49920 127.0.0.1:49921 ESTABLISHED
TCP 127.0.0.1:49921 127.0.0.1:49920 ESTABLISHED
TCP 127.0.0.1:49922 127.0.0.1:49923 ESTABLISHED
TCP 127.0.0.1:49923 127.0.0.1:49922 ESTABLISHED
TCP 127.0.0.1:49924 127.0.0.1:49925 ESTABLISHED
TCP 127.0.0.1:49925 127.0.0.1:49924 ESTABLISHED
TCP 127.0.0.1:50170 127.0.0.1:6869 TIME_WAIT
TCP 127.0.0.1:50189 127.0.0.1:6869 ESTABLISHED
TCP [::]:135 [::]:0 LISTENING
TCP [::]:445 [::]:0 LISTENING
TCP [::]:3389 [::]:0 LISTENING
TCP [::]:5985 [::]:0 LISTENING
TCP [::]:5986 [::]:0 LISTENING
TCP [::]:47001 [::]:0 LISTENING
TCP [::]:49664 [::]:0 LISTENING
TCP [::]:49665 [::]:0 LISTENING
TCP [::]:49666 [::]:0 LISTENING
TCP [::]:49667 [::]:0 LISTENING
TCP [::]:49668 [::]:0 LISTENING
TCP [::]:49674 [::]:0 LISTENING
TCP [::]:49675 [::]:0 LISTENING
UDP 0.0.0.0:123 *:*
UDP 0.0.0.0:500 *:*
UDP 0.0.0.0:3389 *:*
UDP 0.0.0.0:4500 *:*
UDP 0.0.0.0:5353 *:*
UDP 0.0.0.0:5355 *:*
UDP 10.156.0.4:137 *:*
UDP 10.156.0.4:138 *:*
UDP 127.0.0.1:53468 *:*
UDP [::]:123 *:*
UDP [::]:500 *:*
UDP [::]:3389 *:*
UDP [::]:4500 *:*
UDP [::]:5353 *:*
UDP [::]:5355 *:*
My section for DEX and matcher in the conf file looks in such a way (the address is generated at my wallet of the node):
waves.extensions = [
"com.wavesplatform.dex.Matcher"
# ... here may be other extensions
]
waves.dex {
account = "3P5mtgN9CKyY9uFRKToB1oXMKnUurkF4msv" # This account must be known at the Node, e.g. created through POST /addresses
bind-address = "0.0.0.0" # uncomment this line to accept connections from any host
}
# Matcher settings
matcher {
# Enable/disable matcher
enable = yes
# Matcher's account address
account = "3P5mtgN9CKyY9uFRKToB1oXMKnUurkF4msv"
# Matcher REST API bind address
bind-address = "0.0.0.0"
# Matcher REST API port
port = 6886
# Minimum allowed order fee
min-order-fee = 400000
# Fee of order match transaction
order-match-tx-fee = 400000
# Matcher's directories
matcher-directory = ${waves.directory}"/matcher"
data-directory = ${waves.matcher.matcher-directory}"/data"
journal-directory = ${waves.matcher.matcher-directory}"/journal"
snapshots-directory = ${waves.matcher.matcher-directory}"/snapshots"
# LevelDB's internal cache size
leveldb-cache-size = 256M
# Snapshots creation interval
snapshots-interval = 1d
# Invalid/Expired orders cleanup interval
order-cleanup-interval = 5m
# Maximum allowed amount of open orders
max-open-orders = 1000
# Maximum allowed amount of orders retrieved via REST
rest-order-limit = 100
# Maximum orders stored in OrderHistory per address
max-orders-per-address = 1000
# Base assets used as price assets
price-assets = [
"WAVES",
"Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe",
"HyFJ3rrq5m7FxdkWtQXkZrDat1F7LjVVGfpSkUuEXQHj",
"2xnE3EdpqXtFgCP156qt1AbyjpqdZ5jGjWo3CwTawcux",
"6pmDivReTLikwYqQtJTv6dTcE59knriaodB3AK8T9cF8"
]
# Predefined ordering of base assets
predefined-pairs = [
{amountAsset = "WAVES", priceAsset = "Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe"},
{amountAsset = "WAVES", priceAsset = "HyFJ3rrq5m7FxdkWtQXkZrDat1F7LjVVGfpSkUuEXQHj"},
{amountAsset = "WAVES", priceAsset = "2xnE3EdpqXtFgCP156qt1AbyjpqdZ5jGjWo3CwTawcux"},
{amountAsset = "WAVES", priceAsset = "6pmDivReTLikwYqQtJTv6dTcE59knriaodB3AK8T9cF8"},
{amountAsset = "Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe", priceAsset = "2aSqCbvCTgvCpwkGsk4mea4tCLG4Zgp69aQDhHNvRUZv"},
{amountAsset = "Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe", priceAsset = "8zEZuJcKPQmFuYgVe5ZMpxgiPLu5zBhjA6xgdGomQDaP"},
{amountAsset = "Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe", priceAsset = "D2MNuUyA38pSKoV7F7vpS15Uhw9nw5qfbrGUfCLRNuRo"},
{amountAsset = "2xnE3EdpqXtFgCP156qt1AbyjpqdZ5jGjWo3CwTawcux", priceAsset = "HyFJ3rrq5m7FxdkWtQXkZrDat1F7LjVVGfpSkUuEXQHj"}
]
# Maximum difference with Matcher server time
max-timestamp-diff = 3h
# Blacklisted assets id
blacklisted-assets: []
# Blacklisted assets name
blacklisted-names: []
# Blacklisted addresses
blacklisted-addresses: []
}
Do you have any idea aboiut any reason why 6886 port and Matcher REST API isn't opened on my machine?
Hm... I don't understand the reason, why matcher not binded to specified IP addresses.
Maybe you need to unlock something in firewall, or add exception for .bat
-.cmd
-files or conf.
Also, you can try to run v1.1.2 with dex-1.0.2 extensions
java -cp "waves-all-1.1.2.jar;dex-1.0.2\lib\*" com.wavesplatform.Application node_test.conf
pause
and with this config - node_test.conf:
# Waves node settings
waves {
# Node base directory
#directory = ${user.home}"/waves" # replaced from
directory = "./data" # replaced to /data
# Node data directory (LevelDB)
data-directory = ${waves.directory}"/data"
# LevelDB's internal cache size (in bytes)
leveldb-cache-size = 256M
# P2P Network settings
network {
# Peers and blacklist storage file
file = ${waves.directory}"/peers.dat"
# String with IP address and port to send as external address during handshake. Could be set automatically if UPnP
# is enabled.
#
# If `declared-address` is set, which is the common scenario for nodes running in the cloud, the node will just
# listen to incoming connections on `bind-address:port` and broadcast its `declared-address` to its peers. UPnP
# is supposed to be disabled in this scenario.
#
# If declared address is not set and UPnP is not enabled, the node will not listen to incoming connections at all.
#
# If declared address is not set and UPnP is enabled, the node will attempt to connect to an IGD, retrieve its
# external IP address and configure the gateway to allow traffic through. If the node succeeds, the IGD's external
# IP address becomes the node's declared address.
#
# In some cases, you may both set `decalred-address` and enable UPnP (e.g. when IGD can't reliably determine its
# external IP address). In such cases the node will attempt to configure an IGD to pass traffic from external port
# to `bind-address:port`. Please note, however, that this setup is not recommended.
# declared-address = "1.2.3.4:6863"
# Network address
bind-address = "[::]" # IPv6
bind-address = "0.0.0.0" # IPv4
# Port number
port = 6863
# Node name to send during handshake. Comment this string out to set random node name.
# node-name = "default-node-name"
# Node nonce to send during handshake. Should be different if few nodes runs on the same external IP address. Comment this out to set random nonce.
# nonce = 0
# List of IP addresses of well known nodes.
#known-peers = ["52.30.47.67:6863", "52.28.66.217:6863", "52.77.111.219:6863", "52.51.92.182:6863"] #TESTNET
known-peers = ["52.214.55.18:6868", "78.46.230.142:6868", "128.72.64.88:6868", "193.104.203.45:6868"] #MAINNET. Peers here: https://wavesblockexplorer.com/#!/peers and here: https://wavesexplorer.com/peers
# How long the information about peer stays in database after the last communication with it
peers-data-residence-time = 1d
# How long peer stays in blacklist after getting in it
black-list-residence-time = 15m
# Number of inbound network connections
max-inbound-connections = 30
# Number of outbound network connections
max-outbound-connections = 30
# Number of connections from single host
max-single-host-connections = 3
# Timeout on network communication with other peers
connection-timeout = 30s
# Size of buffer to store unverified (not properly handshaked) peers
max-unverified-peers = 100
# If yes the node requests peers and sends known peers
enable-peers-exchange = yes
# If yes the node can blacklist others
enable-blacklisting = yes
# How often connected peers list should be broadcasted
peers-broadcast-interval = 2m
# When accepting connection from remote peer, this node will wait for handshake for no longer than this value. If
# remote peer fails to send handshake within this interval, it gets blacklisted. Likewise, when connecting to a
# remote peer, this node will wait for handshake response for no longer than this value. If remote peer does not
# respond in a timely manner, it gets blacklisted.
handshake-timeout = 30s
# Peers suspension time, the peer is suspended if it fails to respond before timeout occur
suspension-residence-time = 1m
upnp {
# Enable UPnP tunnel creation only if you router/gateway supports it. Useful if your node is runnin in home
# network. Completely useless if you node is in cloud.
enable = no
# UPnP timeouts
gateway-timeout = 7s
discover-timeout = 3s
}
# Logs incoming and outgoing messages
traffic-logger {
# Codes of transmitted messages to ignore. See MessageSpec.messageCode
ignore-tx-messages = [23, 25] # BlockMessageSpec, TransactionMessageSpec
# Codes of received messages to ignore. See MessageSpec.messageCode
ignore-rx-messages = [25] # TransactionMessageSpec
}
}
# Wallet settings
wallet {
# Path to wallet file
file = ${waves.directory}"/wallet/wallet.dat"
# Password to protect wallet file
password = "some string as password"
# By default, the node will attempt to generate a new seed. To use a specific seed, uncomment the following line and
# specify your base58-encoded seed.
# seed = "BASE58SEED"
seed = "Uk3Ti9acd5s9jiMu2u9JCYyWtWH2rxBj5iU5ho15xoJ7cbLF69m4uvUxgggE36zntqTzZdMdTRq8ih1r9cHgE68T4t6eBhqMoFicLZwmPJ5BK4cbUJWMNNmaNvaSgPN"
#base58 encoded mnemonic seed - from address 3PAVn1E8AG6qNM6ewvyYNWMom1WMHUESUk5, generated here: https://cryptostorage.com/generate.html?tickers=waves
#web cross shuffle run again parent civil ball plate fluid giggle seminar witness invest title
}
# Blockchain settings
blockchain {
# Max transactions per block diff, affects size of atomic persistence.
max-transactions-per-block-diff = 6000
# Amount of blocks in memory. Fast rollback is possible up to this value.
min-blocks-in-memory = 100
# Blockchain type. Could be TESTNET | MAINNET | CUSTOM. Default value is TESTNET.
#type = TESTNET #replaced from
type = MAINNET #replaced to mainnet
# 'custom' section present only if CUSTOM blockchain type is set. It's impossible to overwrite predefined 'testnet' and 'mainnet' configurations.
# custom {
# # Address feature character. Used to prevent mixing up addresses from different networks.
# address-scheme-character = "C"
#
# # Timestamps/heights of activation/deactivation of different functions.
# functionality {
# feature-check-blocks-period = 5000
# blocks-for-feature-activation = 4000
# allow-temporary-negative-until = 0
# allow-invalid-payment-transactions-by-timestamp = 0
# require-sorted-transactions-after = 0
# generation-balance-depth-from-50-to-1000-after-height = 0
# minimal-generating-balance-after = 0
# allow-transactions-from-future-until = 0
# allow-unissued-assets-until = 0
# require-payment-unique-id-after = 0
# allow-invalid-reissue-in-same-block-until-timestamp = 0
# allow-multiple-lease-cancel-transaction-until-timestamp = 0
# reset-effective-balances-at-height = 0
# block-version-3-after-height = 0
# pre-activated-features {}
# double-features-periods-after-height = 0
# }
#
# # List of genesis transactions
# genesis {
# # Average delay between blocks
# average-block-delay = 60s
#
# # Timestamp of genesis transactions
# timestamp = 1460678400000
#
# # Timestamp of genesis block
# block-timestamp = 1500635421931
#
# # Genesis block signature
# signature = "BASE58BLOCKSIGNATURE"
#
# # Initial balance in smallest units
# initial-balance = 100000000000000
#
# # Initial base target
# initial-base-target =153722867
#
# # List of genesis transactions
# transactions = [
# {recipient = "BASE58ADDRESS1", amount = 50000000000000},
# {recipient = "BASE58ADDRESS2", amount = 50000000000000}
# ]
# }
# }
}
# Checkpoints settings
checkpoints {
# Public key for checkpoints verification, default TESTNET public key
public-key = "4PvoqxpWi7kCA9N3UXcEB9CZx4iPPeHX9jSYdAioPhnr"
}
# Matcher settings
matcher {
# Enable/disable matcher
enable = yes
# Matcher's account address
account = "3PAVn1E8AG6qNM6ewvyYNWMom1WMHUESUk5"
# Matcher REST API bind address
bind-address = "[::]" # IPv6
bind-address = "0.0.0.0" # IPv4
# Matcher REST API port
port = 6886
# Minimum allowed order fee
min-order-fee = 400000
# Fee of order match transaction
order-match-tx-fee = 400000
# Matcher's directories
matcher-directory = ${waves.directory}"/matcher"
data-directory = ${waves.matcher.matcher-directory}"/data"
journal-directory = ${waves.matcher.matcher-directory}"/journal"
snapshots-directory = ${waves.matcher.matcher-directory}"/snapshots"
# LevelDB's internal cache size
leveldb-cache-size = 256M
# Snapshots creation interval
snapshots-interval = 1d
# Invalid/Expired orders cleanup interval
order-cleanup-interval = 5m
# Maximum allowed amount of open orders
max-open-orders = 1000
# Maximum allowed amount of orders retrieved via REST
rest-order-limit = 100
# Maximum orders stored in OrderHistory per address
max-orders-per-address = 1000
# Base assets used as price assets
price-assets = [
"WAVES",
"Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe",
"HyFJ3rrq5m7FxdkWtQXkZrDat1F7LjVVGfpSkUuEXQHj",
"2xnE3EdpqXtFgCP156qt1AbyjpqdZ5jGjWo3CwTawcux",
"6pmDivReTLikwYqQtJTv6dTcE59knriaodB3AK8T9cF8"
]
# Predefined ordering of base assets
predefined-pairs = [
{amountAsset = "WAVES", priceAsset = "Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe"},
{amountAsset = "WAVES", priceAsset = "HyFJ3rrq5m7FxdkWtQXkZrDat1F7LjVVGfpSkUuEXQHj"},
{amountAsset = "WAVES", priceAsset = "2xnE3EdpqXtFgCP156qt1AbyjpqdZ5jGjWo3CwTawcux"},
{amountAsset = "WAVES", priceAsset = "6pmDivReTLikwYqQtJTv6dTcE59knriaodB3AK8T9cF8"},
{amountAsset = "Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe", priceAsset = "2aSqCbvCTgvCpwkGsk4mea4tCLG4Zgp69aQDhHNvRUZv"},
{amountAsset = "Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe", priceAsset = "8zEZuJcKPQmFuYgVe5ZMpxgiPLu5zBhjA6xgdGomQDaP"},
{amountAsset = "Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe", priceAsset = "D2MNuUyA38pSKoV7F7vpS15Uhw9nw5qfbrGUfCLRNuRo"},
{amountAsset = "2xnE3EdpqXtFgCP156qt1AbyjpqdZ5jGjWo3CwTawcux", priceAsset = "HyFJ3rrq5m7FxdkWtQXkZrDat1F7LjVVGfpSkUuEXQHj"}
]
# Maximum difference with Matcher server time
max-timestamp-diff = 3h
# Blacklisted assets id
blacklisted-assets: []
# Blacklisted assets name
blacklisted-names: []
# Blacklisted addresses
blacklisted-addresses: []
}
# New blocks generator settings
miner {
# Enable/disable block generation
enable = yes
# Required number of connections (both incoming and outgoing) to attempt block generation. Setting this value to 0
# enables "off-line generation".
quorum = 1
# Enable block generation only in the last block if not older the given period of time
interval-after-last-block-then-generation-is-allowed = 1d
# Interval between microblocks
micro-block-interval = 5s
# Mininmum time interval between blocks
minimal-block-generation-offset = 1001ms
# Max amount of transactions in key block
max-transactions-in-key-block = 0
# Max amount of transactions in micro block
max-transactions-in-micro-block = 255
# Miner references the best microblock which is at least this age
min-micro-block-age = 6s
}
# Node's REST API settings
rest-api {
# Enable/disable REST API
enable = yes
# Network address to bind to
bind-address = "[::]" # IPv6
bind-address = "0.0.0.0" # IPv4
# Port to listen to REST API requests
port = 6869
# Hash of API key string
# open_text = "test_api_key"
api-key-hash = "86GJVSoboK12zXHYJFzoucAKaFS1yyXA2NztWSt9tGiX"
# THIS MUST TO BE CHANGED IN FUTURE.
# GENERATE HASH YOU CAN HERE: http://127.0.0.1:6869/api-docs/index.html
# POST /utils/hash/secure
# message: API-key, as opened text
# result: api-key-hash
# Enable/disable CORS support
cors = yes
# Enable/disable api_key from different host
api-key-different-host = no
}
# Nodes synchronization settings
synchronization {
# How many blocks could be rolled back if fork is detected. If fork is longer than this rollback is impossible.
max-rollback = 100
# I don't know
max-chain-length = 101
# Timeout to receive all requested blocks
synchronization-timeout = 60s
# Time to live for broadcasted score
score-ttl = 90s
# Time to wait for new score updates from the remote node
remote-score-debounce = 1s
# Settings for invalid blocks cache
invalid-blocks-storage {
# Maximum elements in cache
max-size = 30000
# Time to store invalid blocks and blacklist their owners in advance
timeout = 1d
}
# History replier caching settings
history-replier {
# Max microblocks to cache
max-micro-block-cache-size = 50
# Max blocks to cache
max-block-cache-size = 20
}
# Utx synchronizer caching settings
utx-synchronizer {
# Max microblocks to cache
network-tx-cache-size = 1000000
# Max time an unconfirmed transaction lives in cache
network-tx-cache-time = 10s
# Max number of transactions in buffer. When the limit is reached, the node processes all transactions in batch
max-buffer-size = 500
# Max time for buffer. When time is out, the node processes all transactions in batch
max-buffer-time = 100ms
}
# MicroBlock synchronizer settings
micro-block-synchronizer {
# How much time to wait before a new request of a microblock will be done
wait-response-timeout = 2s
# How much time to remember processed microblock signatures
processed-micro-blocks-cache-timeout = 3m
# How much time to remember microblocks and their nodes to prevent same processing
inv-cache-timeout = 45s
}
}
# Unverified transactions pool settings
utx {
# Pool size
max-size = 100000
# Evict transaction from UTX pool after it gets older than specified
max-transaction-age = 90m
# Utx cleanup task interval
cleanup-interval = 5m
# Blacklist transactions from these addresses (Base58 strings)
blacklist-sender-addresses = []
# Allow transfer transactions from the blacklisted addresses to these recipients (Base58 strings)
allow-blacklisted-transfer-to = []
}
# Vote for features
features {
# Auto shutdown node if a feature that is not supported by node was approved on blockchain
auto-shutdown-on-unsupported-feature = yes
# List of IDs of features that is voted 'yes' by the node
supported = [1, 2]
}
}
# ... here many lines of your Node's configuration
waves.extensions = [
"com.wavesplatform.dex.Matcher"
# ... here may be other extensions
]
waves.dex {
account = "3PAVn1E8AG6qNM6ewvyYNWMom1WMHUESUk5" # This account must be known at the Node, e.g. created through POST /addresses
bind-address = "[::]" # uncomment this line to accept connections from any host IPv6
bind-address = "0.0.0.0" # uncomment this line to accept connections from any host IPv4
}
I see in netstat -an
TCP 0.0.0.0:6869 0.0.0.0:0 LISTENING
TCP 0.0.0.0:6886 0.0.0.0:0 LISTENING
...
TCP [::]:6869 [::]:0 LISTENING
TCP [::]:6886 [::]:0 LISTENING
...
I don't see this binded on 127.0.0.1, but this is opened by http://127.0.0.1:PORT/ and in lan http://192.168.0.5:PORT/ and by external IP: http://external_IP:PORT/ and as result, on DDNS domain name, which associated with my current dynamic external IP: http://dyndns-node.duckdns.org:PORT/
And as you can see by this links, https://github.com/wavesplatform/Waves/issues/2596#issuecomment-534836445 the versions in the bottom of Swagger, says about I have already runned the node v1.1.2 with dex-extensions v1.0.2.
@username1565 Thank you very much! Finally I got it's working :) Also I have already runned the node v1.1.2 with dex-extensions v1.0.2.
Your conf file helped me so much to verify potential mistakes in my conf: [CRITICAL WHAT I SUPPOSE] I was in such a configuration of network port = 6886, what I can see there is used the same port 6883 independent from TESTNET OR MAINET OR .. So, have I used your setting:
# Port number
port = 6863
Also I corrected several other things regarding the small differences between I got from exisiting GitHub example conf files and what you have in your conf file. So, it's running finally and I have possibilty to get Swagger of Matcher REST API on 127.0.0.1:6886 This part of job is finished, I'am awaiting now for syncing my wallet with blockchain and going to NGINX setting of https connection to the matcher.
I will have also some other little questions as new posts here, if you find time for answering them.
@username1565 @bitSecurities
Am using waves-testnet_1.0.2_all.deb in ubuntu16 Os.am not getting any response from matcher api. only this api working http://127.0.0.1:6869/api-docs/index.html#!/node/version.
config file `# Waves node settins waves { blockchain.type = TESTNET
network {
bind-address = "0.0.0.0"
# Port number
port = 6863
# Node name to send during handshake. Comment this string out to set random node name.
node-name = "MyTESTNETnode123"
# String with IP address and port to send as external address during handshake. Could be set automatically if uPnP is enabled.
#declared-address = "1.2.3.4:6863"
black-list-residence-time = 30 minutes
}
wallet {
password = "1234567890"
# Wallet seed as BASE58 string
seed = xxxxxx
}
blockchain.type = TESTNET
rest-api {
enable = yes
# Network address to bind to
bind-address = "0.0.0.0"
# Port to listen to REST API requests
port = 6869
# Hash of API key string
api-key-hash = "H6nsiifwYKYEx6YzYD7woP1XCn72RVvx6tC1zjjLXqsu"
} waves.extensions = [ "com.wavesplatform.dex.Matcher"
]
waves.dex { account = "3Mxhd7Mntb5J1Bpw6r7ANcVbn3C4sBuHdps" # This account must be known at the Node, e.g. created through POST /addresses bind-address = "0.0.0.0" # uncomment this line to accept connections from any host }
matcher {
enable = yes
# Matcher's account address
account = "3Mxhd7Mntb5J1Bpw6r7ANcVbn3C4sBuHdps"
# Matcher REST API bind address
bind-address = "[::]" # IPv6
bind-address = "0.0.0.0" # IPv4
# Matcher REST API port
port = 6886
# Minimum allowed order fee
min-order-fee = 300000
# Fee of order match transaction
order-match-tx-fee = 300000
# Matcher's directories
matcher-directory = ${waves.directory}"/matcher"
data-directory = ${waves.matcher.matcher-directory}"/data"
journal-directory = ${waves.matcher.matcher-directory}"/journal"
snapshots-directory = ${waves.matcher.matcher-directory}"/snapshots"
# LevelDB's internal cache size
leveldb-cache-size = 256M
# Snapshots creation interval
snapshots-interval = 1d
# Invalid/Expired orders cleanup interval
order-cleanup-interval = 5m
# Maximum allowed amount of open orders
max-open-orders = 1000
# Maximum allowed amount of orders retrieved via REST
rest-order-limit = 100
# Maximum orders stored in OrderHistory per address
max-orders-per-address = 1000
# Base assets used as price assets
price-assets = [
"WAVES",
"Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe",
"HyFJ3rrq5m7FxdkWtQXkZrDat1F7LjVVGfpSkUuEXQHj",
"2xnE3EdpqXtFgCP156qt1AbyjpqdZ5jGjWo3CwTawcux",
"6pmDivReTLikwYqQtJTv6dTcE59knriaodB3AK8T9cF8"
]
# Predefined ordering of base assets
predefined-pairs = [
{amountAsset = "WAVES", priceAsset = "Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe"},
{amountAsset = "WAVES", priceAsset = "HyFJ3rrq5m7FxdkWtQXkZrDat1F7LjVVGfpSkUuEXQHj"},
{amountAsset = "WAVES", priceAsset = "2xnE3EdpqXtFgCP156qt1AbyjpqdZ5jGjWo3CwTawcux"},
{amountAsset = "WAVES", priceAsset = "6pmDivReTLikwYqQtJTv6dTcE59knriaodB3AK8T9cF8"},
{amountAsset = "Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe", priceAsset = "2aSqCbvCTgvCpwkGsk4mea4tCLG4Zgp69aQDhHNvRUZv"},
{amountAsset = "Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe", priceAsset = "8zEZuJcKPQmFuYgVe5ZMpxgiPLu5zBhjA6xgdGomQDaP"},
{amountAsset = "Fmg13HEHJHuZYbtJq8Da8wifJENq8uBxDuWoP9pVe2Qe", priceAsset = "D2MNuUyA38pSKoV7F7vpS15Uhw9nw5qfbrGUfCLRNuRo"},
{amountAsset = "2xnE3EdpqXtFgCP156qt1AbyjpqdZ5jGjWo3CwTawcux", priceAsset = "HyFJ3rrq5m7FxdkWtQXkZrDat1F7LjVVGfpSkUuEXQHj"}
]
# Maximum difference with Matcher server time
max-timestamp-diff = 3h
# Blacklisted assets id
blacklisted-assets: []
# Blacklisted assets name
blacklisted-names: []
# Blacklisted addresses
blacklisted-addresses: []
}
}
include "local.conf"` only nodes are syncing. but i did't get response from matcher api. is that the configuration file right. please give possible solution.
@bitSecurities,
Huh? Just port conflict...
The node port for MAINNET
, which specified in network
-section,
by default is 6868
.
NODE REST API - 6869
Matcher REST API - 6886
For testnet
, there is another ports. I'm using mainnet.
I reccomend you to do backup
the folder data
, with leveldb blockchain database
, after full syncronization.
Some errors there is possible, when this database can be corrupted,
exapmle here: https://github.com/wavesplatform/Waves/issues/2621
So you can just copy this data from backup, and synchronize only last blocks, not full blockchain again and again.
@sultana-mnw,
Oww. Your post is unreadable. You can edit this. If you want to post the code, just include this into 3-time repeated symbol "`"
`_`_`(without "_")
example code
`_`_`(without "_")
Also, you can using "preview"-tab, before send your post.
This strings:
# ... here many lines of your Node's configuration
waves.extensions = [
"com.wavesplatform.dex.Matcher"
# ... here may be other extensions
]
waves.dex {
account = "3PAVn1E8AG6qNM6ewvyYNWMom1WMHUESUk5" # This account must be known at the Node, e.g. created through POST /addresses
bind-address = "[::]" # uncomment this line to accept connections from any host IPv6
bind-address = "0.0.0.0" # uncomment this line to accept connections from any host IPv4
}
need to put in the bottom, and in end of configuration file, not in the middle. See this config, here: https://github.com/wavesplatform/Waves/issues/2596#issuecomment-535374920
Hi @username1565
am getting error while executing the waves node https://github.com/wavesplatform/Waves/releases/download/v1.0.2/waves_1.0.2_all.deb
Error
]: Started Waves node. Oct 09 18:33:23 waves[10574]: INFO c.w.Application$ - Starting... Oct 09 18:33:23 waves[10574]: INFO a.event.slf4j.Slf4jLogger - Slf4jLogger started Oct 09 18:33:23 waves[10574]: INFO c.w.Application$ - Waves v1.0.2 Blockchain Id: T Oct 09 18:33:23 waves[10574]: ERROR c.w.actor.RootActorSystem$ - Error while initializing actor system wavesplatform Oct 09 18:33:23 waves[10574]: org.fusesource.leveldbjni.internal.NativeDB$DBException: IO error: /data/data/LOCK: No such file or directory Oct 09 18:33:23 waves[10574]: at org.fusesource.leveldbjni.internal.NativeDB.checkStatus(NativeDB.java:200) Oct 09 18:33:23 waves[10574]: at org.fusesource.leveldbjni.internal.NativeDB.open(NativeDB.java:218) Oct 09 18:33:23 waves[10574]: at org.fusesource.leveldbjni.JniDBFactory.open(JniDBFactory.java:168) Oct 09 18:33:23 waves[10574]: at com.wavesplatform.db.package$.openDB(package.scala:22) Oct 09 18:33:23 waves[10574]: at com.wavesplatform.Application.<init>(Application.scala:64) Oct 09 18:33:23 waves[10574]: at com.wavesplatform.Application$.$anonfun$startNode$4(Application.scala:440) Oct 09 18:33:23 waves[10574]: at com.wavesplatform.Application$.$anonfun$startNode$4$adapted(Application.scala:419) Oct 09 18:33:23 waves[10574]: at com.wavesplatform.actor.RootActorSystem$.start(RootActorSystem.scala:25) Oct 09 18:33:23 waves[10574]: at com.wavesplatform.Application$.startNode(Application.scala:419) Oct 09 18:33:23 waves[10574]: at com.wavesplatform.Application$.main(Application.scala:402) Oct 09 18:33:23 waves[10574]: at com.wavesplatform.Application.main(Application.scala) Oct 09 18:33:23 systemd[1]: waves.service: Main process exited, code=exited, status=1/FAILURE Oct 09 18:33:23 systemd[1]: waves.service: Unit entered failed state. Oct 09 18:33:23 systemd[1]: waves.service: Failed with result 'exit-code'.
ERROR c.w.actor.RootActorSystem$ - Error while initializing actor system wavesplatform
Oct 09 18:33:23 waves[10574]: org.fusesource.leveldbjni.internal.NativeDB$DBException:
IO error: /data/data/LOCK: No such file or directory
By the phrase: /data/data/LOCK: No such file or directory
, this seems like your database is corrupted or data is damaged, or blockchain files cann't be saved there, because there is no created that catalog, or because program cann't write there.
Do you see any files in the catalog /waves/data/data/
?
Did you specify correct pathway in the configuration file, here:
waves {
# Node base directory
directory = ${user.home}"/waves"
# Node data directory (LevelDB)
data-directory = ${waves.directory}"/data"
...
??
Also, is this folder was been created? If yes, what about rights to write there?
Oct 09 18:33:23 waves[10574]: org.fusesource.leveldbjni.internal.NativeDB$DBException: IO error: /data/data/LOCK: No such file or directory Oct 09 18:33:23 waves[10574]: at
Just check you data directory and all files within have owner "waves" and group "waves"
Hi, thanks the above issue is resolved. Another one doubt the sell/buy order fees 0.003 WAVES can be reduce after each successful transaction from buyer/seller is that is default or we can modify that.
Another one doubt the sell/buy order fees 0.003 WAVES can be reduce after each successful transaction from buyer/seller is that is default or we can modify that.
Here some options: https://github.com/wavesplatform/dex/blob/master/dex/src/main/resources/application.conf#L92
Hi Waves Team,
I want to create own dex like dex ethereum. I explore the documentation then i create buy and sell order using wavekeeper. Here i want to provide and maintain the Dex platform in waves but the problem is orders Fees is transferring to matcher keys. How could i controlled that and how can i create my own matcher key. please a give a possible solution for creating own Dex in waves platform.
Thanks.