wavesplatform / matcher

Matcher for Waves Node.
MIT License
18 stars 32 forks source link

Waves Dex Is it possible to create own matcher against the orders in alreay existing matcher? #167

Closed sultana-mnw closed 4 years ago

sultana-mnw commented 5 years ago

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.

username1565 commented 5 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.

sultana-mnw commented 5 years ago

for creating own matcher we have run full node ?? or else what steps i need to follow for creating own matcher?

username1565 commented 5 years ago

@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.

sultana-mnw commented 5 years ago

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??

username1565 commented 5 years ago

download failed

bitSecurities commented 5 years ago

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?

username1565 commented 5 years ago

@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.

bitSecurities commented 5 years ago

@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?

username1565 commented 5 years ago

@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.

bitSecurities commented 5 years ago

@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.

username1565 commented 5 years ago

@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...

bitSecurities commented 5 years ago

@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
}
...
username1565 commented 5 years ago

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.

  1. 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
  2. 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"
  ]
username1565 commented 5 years ago

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.

bitSecurities commented 5 years ago

@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.

bitSecurities commented 5 years ago

@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:

  1. 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?

  2. 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.

username1565 commented 5 years ago

@bitSecurities,

  1. 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"
  1. 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"
}
bitSecurities commented 5 years ago

@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,

bitSecurities commented 5 years ago

@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.

username1565 commented 5 years ago

@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...

bitSecurities commented 5 years ago

@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
username1565 commented 5 years ago

@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.

bitSecurities commented 5 years ago

@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?

username1565 commented 5 years ago

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.

bitSecurities commented 5 years ago

@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.

sultana-mnw commented 5 years ago

@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

P2P Network settings

network {

Network address

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 settings

wallet {

Password to protect wallet file

password = "1234567890"

# Wallet seed as BASE58 string
seed = xxxxxx

}

Blockchain settings

blockchain.type = TESTNET

Node's REST API settings

rest-api {

Enable/disable node's 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"

... here may be other extensions

]

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 settings

matcher {

Enable/disable matcher

enable = yes

# Matcher's account address
account = "3Mxhd7Mntb5J1Bpw6r7ANcVbn3C4sBuHdps"

# Matcher REST API bind address

bind-address = "0.0.0.0"

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.

username1565 commented 5 years ago

@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

sultana-mnw commented 5 years ago

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'.

username1565 commented 5 years ago
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?

br0x commented 5 years ago

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"

sultana-mnw commented 5 years ago

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.

vsuharnikov commented 4 years ago

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