Nxt Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Latest Nxt Client 1.11.9 - NEW RELEASE: Ardor 2.0.3e TestNet IS LAUNCHED! - The Ignis ICO is currently ongoing!!

Pages: [1] 2 3 ... 7  All

Author Topic: Ardor v2.0.0e  (Read 13732 times)

Jean-Luc

  • Core Dev
  • Hero Member
  • *****
  • Offline Offline
  • Posts: 1610
    • View Profile
  • Karma: +816/-81
Ardor v2.0.0e
February 11, 2017, 07:46:53 am

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Release 2.0.0e

https://bitbucket.org/JeanLucPicard/ardor/downloads/ardor-client-2.0.0e.zip

sha256:

b814ec631d37e2afc1319a458525d1cfd61c583f61f1d77d8312bc7249131711  ardor-client-2.0.0e.zip

https://bitbucket.org/JeanLucPicard/ardor/downloads/ardor-client-2.0.0e.sh

sha256:

32ed1df94300275cf8aac9966a3f26bc6cf607c646fda54f7966953cab9aa882  ardor-client-2.0.0e.sh

https://bitbucket.org/JeanLucPicard/ardor/downloads/ardor-client-2.0.0e.exe



This is an experimental release for testing only. Source code is not provided.


Change log:

This is the first release of the Ardor software, for testnet only. It represents
the first milestone in the building of the Ardor platform.


== New Features ==

The main new user-visible feature is the existence of a single forging chain,
using the ARDR token, and multiple child chains, each with its own token.


== Forging Chain ==

The Ardor chain is used to establish the proof-of-stake consensus, using ARDR
balances only. It supports only a few transaction types: ordinary payments,
balance leasing, and coin exchange. Prunable plain or encrypted message
attachments are also supported, but not permanent or standalone arbitrary
message transactions.


== Child Chains ==

The child chains support all transaction types as previously implemented on the
Nxt platform, with the exception of balance leasing which is only available on
the Ardor chain, and tagged data extend transaction which has been removed as
unnecessary. A child chain can optionally be configured to disable certain
transaction types, which has been done for testing purposes on the EUR child
chain, disabling the Asset Exchange and Digital Marketplace.


== Coin Exchange ==

To allow trading of child chain coins to each other, and also between child
chains and the Ardor chain, a new Coin Exchange module has been implemented.

For trading between child chain coins, the coin exchange transactions are
submitted on the child chain of the coin being sold. For trading between a child
chain coin and Ardor, the transaction is submitted on the Ardor chain regardless
of whether it is a buy or sell, and the fees for such transactions are higher.


== Bundling ==

The bundling process is used to group child chain transactions from a child
chain into a transaction on the Ardor chain. Bundlers accept the fees from
those child chain transactions, in the corresponding child chain coin, and
pay fees in ARDR to the parent chain forgers. Bundlers can be started from
the cogwheel/bundlers menu, defining the coin to ARDR exchange rate they accept,
a limit on the total fees in ARDR a bundler will pay, and an optional overpay
amount.

When a bundler is running, it checks the unconfirmed transactions pool every
time a new transaction from the child chain being bundled arrives. If the
transaction fee included by the transaction sender, in child chain coins, when
converted to Ardor using the exchange rate accepted by the bundler is at least
equal to the minimum Ardor fee required for this transaction, the bundler will
generate a ChildBlock transaction, including in it this and all other currently
unconfirmed child chain transactions satisfying this requirement. The Ardor fee
the bundler will include for the ChildBlock transaction is equal to the sum of
the minimum required Ardor fees for each, plus the calculated overpay amount, if
any. Such overpay amount is optional, and may be used by bundlers willing to pay
more in order to have their transactions included in block instead of those of
competing bundlers.
The new ChildBlock transaction will displace from the unconfirmed pool any
ChildBlock transactions of the same child chain that include only a subset of
the same child transactions.
When propagating through the network, ChildBlock transactions will only be
accepted by peers if they either include child transactions not already included
in other ChildBlock transactions the peer already has in its pool, or offer to
pay a higher fee for the same transactions. This ensures the network is not
flooded with ChildBlock transactions even if every node is running a bundler,
and allows bundlers to compete for propagating their transactions through the
network by offering to pay higher fees.

It is now possible for child transactions to be submitted with zero fees, in
child chain coins. If a bundler is willing to pay the Ardor fees for those,
they will be included in the blockchain in the ChildBlock created by such
bundler.

To prevent the unconfirmed pool from being overfilled with such zero-fees child
chain transactions, once the maxUnconfirmedTransactions limit (configured in
nxt.properties, default 2000) has been exceeded, child chain transactions will
be dropped unless a bundler has already submitted a ChildBlock transaction which
includes them.

Bundlers advertise their accepted bundling rates to other peers, signing such
rates announcements with the private key of the bundler's account. To prevent
fake rates announcements, they can be filtered based on this account effective
balance (default set in nxt.minBundlerBalanceFXT is 1000 ARDR).
The GetBundlerRates API can be used to retrieve known bundlers rates, again
with optional filtering by minimum bundler effective balance.


== Peer Networking ==

The peer networking has been fully re-written and optimized to use socket
connections and binary messages instead of http and JSON.

Block and transaction propagation through the network has been optimized, by
sharing with peers the inventory of transaction IDs in the unconfirmed pool or
in recent blocks, and only propagating the missing ones, if any, when a new
block is generated, or a child block is bundled.

The hallmark feature has been removed as it is not needed anymore, hallmarks are
no longer supported.


== New APIs ==

APIs of the new Coin Exchange feature:
ExchangeCoins, CancelCoinExchange, GetCoinExchangeOrder, GetCoinExchangeOrders,
GetCoinExchangeOrderIds, GetCoinExchangeTrade, GetCoinExchangeTrades,
GetExpectedCoinExchangeOrderCancellations, GetExpectedCoinExchangeOrders,
GetLastCoinExchangeTrade.

Bundling related APIs:
BundleTransactions, GetBundlers, GetBundlerRates, StartBundler, StopBundler.

Other new APIs:
GetBalances, GetEffectiveBalance, GetFxtTransaction.


== API changes ==

All APIs that are now chain specific accept a new chain parameter. Either the
chain name or the chain ID can be used.

Transaction IDs are no longer 64-bit longs but 256-bit hashes, necessitating
changes in all APIs that accept transaction ID parameters or return such in the
JSON fields. For transactions on the Ardor chain, 64-bit long IDs can still be
used with the getFxtTransaction API, as those are enforced to be unique. For
child chain transactions, the getTransaction API now requires a fullHash
parameter, in addition to specifying the chain.

Prices and rates are now defined relative to a whole unit of the holding being
bought or sold (asset, currency, coin), not to a QNT indivisible unit.

All priceNQT and rateNQT parameters and JSON fields have been renamed where
appropriate to priceNQTPerCoin, priceNQTPerShare, rateNQTPerUnit, etc., to
reflect their changed meaning of price per whole unit of each holding rather
than per QNT.

All "units" parameters in the Monetary System APIs have been renamed to
unitsQNT.

DividendPayment API accepts holding and holdingType parameters to allow paying
dividends in another asset or MS currency. The amountNQTPerQNT parameter has
been renamed to amountNQTPerShare and now refers to dividend amount in NQT per
a whole share of the asset rather than per QNT.

The GetAccount API no longer returns balanceNQT and unconfirmedBalanceNQT, as
balances are now chain specific. The GetBalance API should be used to get chain
balances instead, or GetBalances for querying multiple chains.

APIs which accept holding and holdingType parameters now require holding to be
set to the chain ID when holdingType=0 (coin).

Since 0 is now a valid fee value for child chains, all CreateTransaction APIs
will accept it, instead of using it as a request for the server to calculate
and use the minimum fee. To let the server calculate the child transaction fee,
a value of feeNQT=-1 should be used, and a new feeRateNQTPerFXT parameter must
be supplied, to indicate the exchange rate to use when calculating the fee
(since minimum fees can only be calculated in ARDR). If feeRateNQTPerFXT is
also set to -1, the server will query the currently known bundlers rates for
this child chain, also subject to the minBundlerBalanceFXT limit on effective
bundler account balance, and use the best one for the fee calculation. As
bundlers rates cannot be trusted blindly, the transaction will not be
broadcasted in this case, the returned transaction JSON including the fees
calculated should be reviewed by the user. The bundler rate used will be
returned in the bundlerRateNQTPerFXT JSON field, -1 if no bundlers are known for
the chain.

The following APIs have been removed: ExtendTaggedData, GetPhasingPolls,
GetTaggedDataExtendTransactions, GetInboundPeers, MarkHost, DecodeHallmark.


== Transaction types and bytes format ==

The numbering of some transaction types has changed, due to the internal
reorganizations of the TransactionType classes. Transaction types on the Ardor
chain use negative numbers, e.g. -1 for ChildChainBlock, -2 for Ardor ordinary
payment. Some transaction subtypes have been moved to a separate type, e.g.
voting and phasing related transactions have been moved out of Messaging to a
new Voting transaction type. The output of getConstants should be consulted for
a full list of the current transaction types and subtypes.

The transaction bytes format has also changed, adding a chain ID, reorganizing
the ordering of attachment and appendix bytes, and allowing prunable attachment
parts to also optionally be represented in the bytes format, for the purpose of
sending them more efficiently over the peer to peer network.

The JSON transaction representation is still supported, even though it is no
longer used in the peer networking. Some attachment fields have been renamed
for consistency with the API changes - units to unitsQNT, priceNQT to
priceNQTPerShare, rateNQT to rateNQTPerUnit, amountNQT for dividend payments to
amountNQTPerShare, etc.


== Entity IDs ==

As part of designing child chain transactions to be prunable, it is no longer
possible to enforce uniqueness of the 64-bit transaction IDs for child chains.
This affects the IDs of derived entities such as Assets, MS Currencies, Polls,
Digital Goods, Shufflings, etc.

For global derived entities such as Assets or Currencies, the 64-bit long IDs
are still unique and used in the corresponding APIs. Note however that this
uniqueness is now only within the same object type, i.e. it is not guaranteed
that an Asset and a Currency will not happen to have the same 64-bit long ID.

For child chain local entities, such as Polls and Digital Goods, the 64-bit IDs
are still unique, but within the same child chain only, and still used in their
APIs. Again, there is no uniqueness guarantee across different entity types
anymore.

For entities that are prunable, such as prunable messages, tagged data, and
shufflings, the full 256-bit hash must be used as an ID now, and the appropriate
APIs have been changed.


== Phasing and Account control ==

Only child chain transactions can be phased. Therefore, when account control
is set for an account, it can no longer submit Ardor chain transactions.
Phasing parameters which refer to transaction IDs must now use transaction
full hashes instead, prefixed with the chain ID separated with ':'.
It is possible to refer to transactions on other chains when approving a phased
transaction, or setting up a by-transaction phasing voting model.
The controlMaxFees parameter when setting mandatory approval now accepts
multiple values, each fee being prefixed with the child chain ID and ':', to
indicate which child chain the limit applies to. If no max fee has been set for
a child chain, there is no phasing transactions fees total limit on it for the
controlled account.


== Transaction selection, sorting, limits and fees ==

An Ardor chain block can contain up to 10 (ten) transactions, this including
both native Ardor transactions and ChildBlock transactions. There is no total
payload size limit.

A ChildBlock can contain up to 100 (one hundred) child transactions, subject
to a total payload limit of 128 kbytes. Prunable child transaction parts are
also counted towards the payload size limit.

There is a limit of one ChildBlock per Ardor block for each child chain.

As in Nxt, it is up to a block forger which transactions to include in a block
and how to sort them. The default forger behaviour is to select transactions
ordered by Ardor fee (not fee per byte as in Nxt, since there is no block
payload limit), and then sort them based on arrival timestamp.

It is also up to the ChildBlock bundler which child transactions to include in
a ChildBlock, and this selection can be customized by defining a custom filter
in the nxt.bundlingFilter property. The default bundler behaviour is to select
child transactions ordered by fee per byte, up to the count and payload limits
of a child block, creating several child blocks if necessary. Within a child
block, child transactions are sorted based on their full hash, but executed
based on sorting them after adding the block hash to the child transaction hash,
i.e. the execution order of child transactions within a block is deterministic
but not predictable and not controllable by the bundler or by the forger. This
is in order to prevent front-running of asset exchange and other trading orders.

Ardor fees from ChildBlock transactions paid to the block forger are shared with
the previous three block forgers in 1:1:1:1 ratio. Other Ardor chain fees are
fully kept by the block forger, and child block transaction fees (in child chain
coins) are fully kept by the ChildBlock bundler.

The back fees sharing which was applied in Nxt for some other transactions types
such as currency or asset issuance has been removed, however the limitations of
one such transaction per block for scarce blockchain resources are preserved.

Default fee for Ardor chain transactions is 10 ARDR. Default fee for child chain
transactions is 0.1 ARDR. A ChildBlock must contain at least one child chain
transaction, but there is no minimum ChildBlock fee requirement, i.e. such a
ChildBlock with a single transaction in it would require only 0.1 ARDR fee if
this is the minimum fee for the child transaction it contains.

Fees for child chain transaction types have been scaled depending on their
impact on the blockchain, e.g. asset issuance fees are still 1000 ARDR as assets
are global and kept permanently. There is a 1 ARDR extra fee added to
transactions that create a new account.

The above fees and limits are set for the current testnet only and are subject
to change before the production mainnet release.


== Testnet accounts ==

The testnet genesis block has been created based on account balances from the
Nxt testnet, as of 2017/01/01 (block height 1061208). Users who had testnet
accounts as of that height should find their ARDR and NXT testnet balances
imported into this testnet, to ARDR and IGNIS tokens respectively, plus an
approximately equivalent amount of BTC, USD, and EUR child chain coins for
testing. To allow for developers testing and running forging and bundling nodes,
account holdings have been reduced by 50% which have been allocated to
developers accounts.


== Upgrading from Nxt ==

The Ardor release is not an upgrade and does not in any way affect your existing
Nxt account or client installation. Both Ardor and Nxt should be possible to run
simultaneously on the same machine, as long as the hardware capacity allows it.

The included ArdorNxtComparison.pdf document summarizes the major differences
between the Nxt and Ardor platforms, for those deciding which one is a better
fit for their use case, or considering a migration from Nxt to Ardor. More
documentation should be added as Ardor development and features mature and
stabilize.


-----BEGIN PGP SIGNATURE-----

iQIcBAEBCgAGBQJYnfMhAAoJENqvaxkWiP4ZYdYQAN2Y3xh1dOWS3ucT4CNaIz9W
eHtDgeL/XoUeKYhc9N+F5Z7KOcMkxYPmTZM3l1/D+b9GT7QOWgm+UaUQ2F+jWE2h
Cc22Idz0X2c8hjDvgRyTHHAlCu9bzmnS+ClfwZi/i3mb941q0GebpDstWgMCVEhc
dX4/1hqgLz/V6J0MN9u2v7CdOdqJXp5Tg9ap4pWa7ZHlSC2AQoDZW8e29qZVDfHn
8GcztXPzUZAtS9qIQrhpX7w74AkamCC2hkrn0v32Izc5mGo6v781aicYQRgJB+cr
KLGt7XBdTWj0zOaV64+nbVhLt8MmfdR9x0cDfuS2Rxvvp7kB0i11tCSqMobr1LJc
JjMfGbdzsN8M4z5OMohO21uikn+NQqlENob4xJ7CxPJfpXLhKLToFBL9lnYXBekK
x9AXauXPKT0qdQEN4mVAHv/Eu3QHa9FH9Zv+7ztt9nnjel/2kEE31VcuU4GHAl+H
z9wvhAp4YDgmH4PdJO5QZfef8zAb00PB0R88oOq95f3+Qd3uPnSm81G/kQM5BACx
5KnR8kRDXSPiHjXc830RX8mqTz4YJ69zhltHpL8qXfvXgmD4ZEVeFAv3HBw/E/3c
XZ44cn5jS5iyBzE69vD178RksaeUfJfzyXtFWDpi7WRzMb91Tbdv0+wyl+5fhusJ
kWnN1wnv5sukNnKzWheU
=fEB+
-----END PGP SIGNATURE-----
GPG key fingerprint: 263A 9EB0 29CF C77A 3D06  FD13 811D 6940 E1E4 240C
NXT-X4LF-9A4G-WN9Z-2R322

qq2536007339

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 481
    • View Profile
  • Karma: +41/-9
Re: Ardor v2.0.0e
February 11, 2017, 07:48:02 am

Great,finally we have a offical testnet,thanks for devs hard work!
你送我未来币,我是要的。NXT-DJ68-PG7W-4JEU-2LU5T

NxtSwe

  • Hero Member
  • *****
  • Offline Offline
  • Posts: 658
    • View Profile
  • Karma: +122/-9
Re: Ardor v2.0.0e
February 11, 2017, 08:19:22 am

o_O

Definitely gonna check this one out!
Check out the NxtLib, the .NET Framework API for the Nxt platform.

allwelder

  • Hero Member
  • *****
  • Offline Offline
  • Posts: 1867
  • NxtChina.org
    • View Profile
    • NxtChina.org
  • Karma: +196/-13
Re: Ardor v2.0.0e
February 11, 2017, 08:31:49 am

Nice,Ardor coming...
NxtChina |Weibo |Twitter Donation welcomed:NXT-APL9-66GU-K8LY-B3JJJ

danisapfirov

  • Full Member
  • ***
  • Offline Offline
  • Posts: 127
    • View Profile
  • Karma: +17/-7
Re: Ardor v2.0.0e
February 11, 2017, 08:33:59 am

I am unable to download the zip file using NRS 1.11.3. My system Win 10. Downloading from the link of OP works fine.
« Last Edit: February 11, 2017, 08:37:41 am by danisapfirov »

lurker10

  • Hero Member
  • *****
  • Offline Offline
  • Posts: 1336
    • View Profile
  • Karma: +168/-33
Re: Ardor v2.0.0e
February 11, 2017, 08:35:58 am

Looks great!
Run a node - win a prize! "Lucky node" project jar: NXT-8F28-EDVE-LPPX-HY4E7

NxtSwe

  • Hero Member
  • *****
  • Offline Offline
  • Posts: 658
    • View Profile
  • Karma: +122/-9
Re: Ardor v2.0.0e
February 11, 2017, 09:29:57 am

Is there an official "request testnet IGNIS/ARDR/USD/EUR" thread?
Or should we continue to use abctc's good old thread perhaps.
https://nxtforum.org/testnet/some-testnxt-to-test-asset-exchange/
Check out the NxtLib, the .NET Framework API for the Nxt platform.

lurker10

  • Hero Member
  • *****
  • Offline Offline
  • Posts: 1336
    • View Profile
  • Karma: +168/-33
Re: Ardor v2.0.0e
February 11, 2017, 10:41:21 am

I don't know if this is a bug or my misunderstanding.
I started a Ignis bundler to accept 0 fee txs. It worked, my own 0 fee tx got bundled.

After stopping the bundler, getBundlerRates keeps responding with {"minRateNQTPerFXT": "0",  "chain": 2} and the send Ignis Minimum Fee calculates to 0. My subsequent txs with 0 Ignis fees are pending unconfirmed, it may indicate no other bundlers have a 0 rate?

An hour later getBundlerRates response is again correct.
« Last Edit: February 11, 2017, 11:39:52 am by lurker10 »
Run a node - win a prize! "Lucky node" project jar: NXT-8F28-EDVE-LPPX-HY4E7

MrV777

  • Hero Member
  • *****
  • Offline Offline
  • Posts: 979
    • View Profile
  • Karma: +112/-4
Re: Ardor v2.0.0e
February 11, 2017, 11:55:28 am

Great work!!
Will be trying it out this weekend  :)
NXT: NXT-BK2J-ZMY4-93UY-8EM9V
NXT nodes: 209.222.98.250, 216.155.128.10

coolfish

  • Full Member
  • ***
  • Offline Offline
  • Posts: 140
    • View Profile
  • Karma: +6/-0
Re: Ardor v2.0.0e
February 11, 2017, 12:35:52 pm

Great work!
I am trying it
MyNxt: 6869673164215466219

squidgle

  • Newbie
  • *
  • Offline Offline
  • Posts: 9
    • View Profile
  • Karma: +0/-0
Re: Ardor v2.0.0e
February 11, 2017, 02:44:43 pm

Amazing work devs!

Few questions:
  • I run an NXT node, will this eventually replace the NXT node software I'm running now and handle both NXT and ARDR networks?
  • If #1 is false, can we run both nodes simultaneously on the same box?
NXT-TZUL-DZ42-3QTE-3Y6JL

VanBreuk

  • Administrator
  • Hero Member
  • *****
  • Offline Offline
  • Posts: 2540
    • View Profile
  • Karma: +342/-18
Re: Ardor v2.0.0e
February 11, 2017, 03:07:34 pm

Amazing work devs!

Few questions:
  • I run an NXT node, will this eventually replace the NXT node software I'm running now and handle both NXT and ARDR networks?
  • If #1 is false, can we run both nodes simultaneously on the same box?

== Upgrading from Nxt ==

The Ardor release is not an upgrade and does not in any way affect your existing
Nxt account or client installation. Both Ardor and Nxt should be possible to run
simultaneously on the same machine, as long as the hardware capacity allows it.
GPG Fingerprint: B020 D1C1 F289 3B2C 3577  9EAD 455D D175 5913 C7F1

Brangdon

  • Hero Member
  • *****
  • Offline Offline
  • Posts: 1301
  • Quality is addictive.
    • View Profile
  • Karma: +219/-25
Re: Ardor v2.0.0e
February 11, 2017, 03:16:48 pm

If I want to run a public server, what port(s) do I need to open port ? Do I just need TCP or is UDP needed too?

A comment in the properties file suggests testnet uses 26873, 26876 and 26877. However, my node seems to be connecting to nrs.scripterron.org on 52.20.107.161 and that appears to have 26873 closed and 26874 open instead.
NXT-RTYD-LJXQ-EPNJ-H7AQ5. Sponsoring 1 public node at brangdon.duckdns.org.

ScripterRon

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 457
    • View Profile
  • Karma: +72/-2
Re: Ardor v2.0.0e
February 11, 2017, 03:51:21 pm

I am unable to download the zip file using NRS 1.11.3. My system Win 10. Downloading from the link of OP works fine.
Ardor is not an upgrade of Nxt.  So you will need to use the download link.  Be sure to install it in a different directory.
NXT-XM86-4ZNA-65L5-CDWUE

TheWireMaster

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 342
    • View Profile
    • NXT Folks
  • Karma: +23/-0
Re: Ardor v2.0.0e
February 11, 2017, 03:54:07 pm

wow... so far I like! :)
Cool stuff devs!
NXT-5WW2-XQ63-CFGM-G7YAJ

ScripterRon

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 457
    • View Profile
  • Karma: +72/-2
Re: Ardor v2.0.0e
February 11, 2017, 04:02:51 pm

I don't know if this is a bug or my misunderstanding.
I started a Ignis bundler to accept 0 fee txs. It worked, my own 0 fee tx got bundled.

After stopping the bundler, getBundlerRates keeps responding with {"minRateNQTPerFXT": "0",  "chain": 2} and the send Ignis Minimum Fee calculates to 0. My subsequent txs with 0 Ignis fees are pending unconfirmed, it may indicate no other bundlers have a 0 rate?

An hour later getBundlerRates response is again correct.
Published bundler rates are good for 60 minutes and are based on 10-minute clock intervals.  So, if you started your bundler at 6:14, it would have a timestamp of 6:10 and would be good until 7:25 (there is a 15-minute window before the rate expires).  The current bundler rates for a node are automatically broadcast every 60 minutes.  A better bundler rate for a specific account will replace the current bundler rate for that account, so you can lower the bundler rate at any time if you set it too high.  However, there is currently no mechanism to adjust the rate higher if you set it too low.

We could have a network message to delete a bundler rate when a bundler is stopped.  However, we don't know if that account is running a bundler on just a single node (the rate message initially contained the node address but that was dropped as a privacy concern).  Also, the more common case will be the entire node is stopped, so we wouldn't be able to broadcast the rate delete message in that case.
NXT-XM86-4ZNA-65L5-CDWUE

ScripterRon

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 457
    • View Profile
  • Karma: +72/-2
Re: Ardor v2.0.0e
February 11, 2017, 04:09:39 pm

If I want to run a public server, what port(s) do I need to open port ? Do I just need TCP or is UDP needed too?

A comment in the properties file suggests testnet uses 26873, 26876 and 26877. However, my node seems to be connecting to nrs.scripterron.org on 52.20.107.161 and that appears to have 26873 closed and 26874 open instead.
nxt-default.properties is wrong.  When I wrote the new network code last year, I used 6873/7873 for the peer port since the code at that time was for use with Nxt.  With the change to Ardor, a '2' was added to the existing addresses.  So mainnet is 27874/27876/27877 and testnet is 26874/26876/26877.

To answer your question, open ports 26874 for peer networking, 26876 for API and 26877 for API_SSL.  Note that there is no longer a distinction between inbound and outbound peer connections.  All peer connections are bi-directional and are used to send and receive network messages.
NXT-XM86-4ZNA-65L5-CDWUE

lurker10

  • Hero Member
  • *****
  • Offline Offline
  • Posts: 1336
    • View Profile
  • Karma: +168/-33
Re: Ardor v2.0.0e
February 11, 2017, 04:20:04 pm

I don't know if this is a bug or my misunderstanding.
I started a Ignis bundler to accept 0 fee txs. It worked, my own 0 fee tx got bundled.

After stopping the bundler, getBundlerRates keeps responding with {"minRateNQTPerFXT": "0",  "chain": 2} and the send Ignis Minimum Fee calculates to 0. My subsequent txs with 0 Ignis fees are pending unconfirmed, it may indicate no other bundlers have a 0 rate?

An hour later getBundlerRates response is again correct.
Published bundler rates are good for 60 minutes and are based on 10-minute clock intervals.  So, if you started your bundler at 6:14, it would have a timestamp of 6:10 and would be good until 7:25 (there is a 15-minute window before the rate expires).  The current bundler rates for a node are automatically broadcast every 60 minutes.  A better bundler rate for a specific account will replace the current bundler rate for that account, so you can lower the bundler rate at any time if you set it too high.  However, there is currently no mechanism to adjust the rate higher if you set it too low.

We could have a network message to delete a bundler rate when a bundler is stopped.  However, we don't know if that account is running a bundler on just a single node (the rate message initially contained the node address but that was dropped as a privacy concern).  Also, the more common case will be the entire node is stopped, so we wouldn't be able to broadcast the rate delete message in that case.

Something like this happened, I reproduced it and it took about an hour again for getBundlerRates to report the new value after my 0 fee accepting bundler had been stopped.

Can this open attack surface when a bad actor can broadcast a 0 fee rate and stop the bundler, then repeat the same again every hour, confusing peer nodes into reporting a minimum fee of 0 and tricking clients into submitting 0 fee transactions that do not confirm?
Run a node - win a prize! "Lucky node" project jar: NXT-8F28-EDVE-LPPX-HY4E7

ScripterRon

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 457
    • View Profile
  • Karma: +72/-2
Re: Ardor v2.0.0e
February 11, 2017, 04:20:56 pm

Just checked my VPS node and there are 33 connections already.  That is great!  Let me know if you experience any network problems since the network code has never had this many peers at one time.
NXT-XM86-4ZNA-65L5-CDWUE

ScripterRon

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 457
    • View Profile
  • Karma: +72/-2
Re: Ardor v2.0.0e
February 11, 2017, 04:29:42 pm

I don't know if this is a bug or my misunderstanding.
I started a Ignis bundler to accept 0 fee txs. It worked, my own 0 fee tx got bundled.

After stopping the bundler, getBundlerRates keeps responding with {"minRateNQTPerFXT": "0",  "chain": 2} and the send Ignis Minimum Fee calculates to 0. My subsequent txs with 0 Ignis fees are pending unconfirmed, it may indicate no other bundlers have a 0 rate?

An hour later getBundlerRates response is again correct.
Published bundler rates are good for 60 minutes and are based on 10-minute clock intervals.  So, if you started your bundler at 6:14, it would have a timestamp of 6:10 and would be good until 7:25 (there is a 15-minute window before the rate expires).  The current bundler rates for a node are automatically broadcast every 60 minutes.  A better bundler rate for a specific account will replace the current bundler rate for that account, so you can lower the bundler rate at any time if you set it too high.  However, there is currently no mechanism to adjust the rate higher if you set it too low.

We could have a network message to delete a bundler rate when a bundler is stopped.  However, we don't know if that account is running a bundler on just a single node (the rate message initially contained the node address but that was dropped as a privacy concern).  Also, the more common case will be the entire node is stopped, so we wouldn't be able to broadcast the rate delete message in that case.

Something like this happened, I reproduced it and it took about an hour again for getBundlerRates to report the new value after my 0 fee accepting bundler had been stopped.

Can this open attack surface when a bad actor can broadcast a 0 fee rate and stop the bundler, then repeat the same again every hour, confusing peer nodes into reporting a minimum fee of 0 and tricking clients into submitting 0 fee transactions that do not confirm?
The bundler account must have at least 1000 ARDR in order to publish the bundler rate.  You can increase this value if desired (nxt.minBundlerBalanceFXT in nxt.properties) and your node will ignore rates published by accounts with a lower effective balance.

One thought is to have a bundler blacklist which would specify accounts that are blacklisted.  I'm not sure how effective this would be since the attacker could just transfer the ARDR to a new account and continue the attack.  So the best defense is a high ARDR requirement (POS for bundlers).
NXT-XM86-4ZNA-65L5-CDWUE
Pages: [1] 2 3 ... 7  All