Дополнительные настройки вашего Nxt-сервера (параметры) находятся в файлах
conf\nxt-default.properties и
conf\nxt.properties , причём параметры из
nxt.properties имеют приоритет. Это сделано для того, чтобы при обновлениях версий файл
nxt.properties не перезатирался копией из дистрибутива.
Так что если вы будете настраивать параметры своего сервера, то скопируйте файл
nxt-default.properties в
nxt.properties , настройте в нём нужные параметры, а остальные строки обязательно удалите.
По умолчанию всё уже настроено на нормальную локальную работу вашего Nxt-сервера, так что меняйте параметры
(и то только в nxt.properties) если точно понимаете, что они обозначают!
Если вы запустили Nxt на удалённом сервере (например, на
VPS), и хотите обращаться к нему (запускать web-клиент в браузере, или отправлять API-запросы) со своего локального компьютера, то в файле
nxt.properties укажите следующие параметры:
nxt.allowedBotHosts=*
nxt.apiServerHost=0.0.0.0
Если при этом вы хотите, чтобы с web- и API-запросами к вашему Nxt-серверу обращались только с конкретных IP-адресов, перечислите их вместо "*"
(через ";") в параметре
nxt.allowedBotHosts Если у вашего сервера статический IP, то вы можете анонсировать его другим нодам
(другим Nxt-серверам) в параметре
nxt.myAddress= . Это позволит вашему Nxt-серверу получать информацию от других нод, а не только запрашивать их.
Если к своему удалённому серверу вы хотите обращаться не по http, а по https, то в файле
nxt.properties укажите
nxt.uiSSL=true, также вам нужно будет получить SSL-сертификат (и указать его в параметрах
nxt.keyStorePath= и
nxt.keyStorePassword= , либо скачать такой самодельный сертификат, например,
отсюда, либо самому сделать самоподписанный сертификат (в файле keystore) командой C:\Program Files\Java_jdk1.7.0_51\bin\keytool -keystore keystore -alias nxt -genkey -keyalg RSA
(должен быть установлен JDK), и поместить его рядом с nxt.jar.Есть также сообщение, что для совместимости с последними версиями браузеров лучше генерировать сертификаты размером в 2048 бит (по умолчанию - 1024) командой
keytool -genkeypair -dname "..." -alias ... -keypass ... -keystore ... -storepass ... -keysize 2048 -keyalg RSA
If you are using Oracle Java and you want to enable "unlimited strength" encryption you need to download and install additional policy files that overwrite the defaults: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
Copy the policy files to $JAVA_HOME/jre/lib/security/ and restart Nxt and your connection should now use stronger encryption w/256 bit keys.См.также: Как
настроить https на публичных нодах.
Для запуска через Tor
используйте строку запуска с указанием socks-прокси адреса и порта, например:
java -DsocksProxyHost=localhost -DsocksProxyPort=9050 -Xmx1024M -cp nxt.jar:lib/*:conf nxt.Nxt
ну и, конечно, укажите
nxt.shareMyAddress=false в файле
nxt.properties .
В версиях 1.5.13+ вместо командной строки параметры Tor или другого socks-прокси можно указывать в файле
nxt.properties в параметрах
socksProxyHost и
socksProxyPort .
При запуске на машинах с небольшим количеством оперативной памяти (например, на VPS с 512Mb ОЗУ) Nxt-сервер может аварийно завершаться из-за нехватки памяти
(обычно в момент сканирования блокчейна).
По умолчанию Nxt-сервер отдаёт используемой им СУБД H2 половину памяти java-машины, и в в результате под код сервера остаётся маловато памяти.
При помощи параметра
nxt.dbCacheKB=128000 серверу можно указать конкретно (в килобайтах), сколько следует отвести памяти под СУБД. Кроме того, в подобных случаях лучше запускать Nxt-сервер с ограничением максимально доступной памяти для Java, для этого используйте параметр -Xmx в строке запуска, например, в файле run.bat измените подстроку "
\bin\java.exe -cp classes;..." на "
\bin\java.exe -Xmx476М cp classes;...".
Ещё около 12Мб оперативной памяти можно
сэкономить параметром
nxt.enablePublicKeyCache=falseВключить более подробные (отладочные) сообщения в java-консоли можно путём установки следующих параметров в файле
conf/logging.propertiesnxt.level = FINE
org.eclipse.jetty.level = INFO
javax.servlet.level = INFO
java.util.logging.ConsoleHandler.level = FINE
а
также параметра
Djavax.net.debug=all в строке запуска.
В версиях 1.5.10+ в строку запуска сервера (в run.bat) добавили параметр "-Dnxt.runtime.mode=desktop", который определяет наличие ярлыка в строке состояния windows и хранение папок "nxt_db", "conf" и "log" в личной папке пользователя: c:/users/<имя_ пользователя>/appdata/roaming/nxt/
(также возможен параметр "Dnxt.runtime.mode=service" для запуска в качестве службы Windows)Это сделано в первую очередь для простоты обновления клиента
рядовыми пользователями. Они работают в windows без прав администратора, поэтому на запись им открыта только папка c:/users/<имя пользователя>/
Продвинутые же пользователи даже при сохранении параметра "Dnxt.runtime.mode=desktop" могут изменить местоположение базы блокчейна при помощи параметра в файле nxt.properties:
nxt.dbUrl=jdbc:h2:file:C:/nxt_db/nxt;DB_CLOSE_ON_EXIT=FALSE;MVCC=TRUE
- в данном случае блокчейн будет располагаться в папке nxt_db в корне диска C.
Пошаговая инструкция
(на всякий случай):
0]
никогда не трогаем файл
nxt-default.properties (он обязан перезатираться новой своей версией при накатывании очередной версии Nxt);
1] если рядом с файлом
nxt-default.properties ещё нет файла
nxt.properties - то создаём такой (пока пустой) файл;
2] в этот файл (
nxt.properties) вставляем одну строчку:
nxt.dbUrl=jdbc:h2:c:/nxt_db/nxt;DB_CLOSE_ON_EXIT=FALSE;MVCC=TRUE
3] запускаем run.bat, и видим, что в корне диска C: создалась папка "nxt_db", и в неё начал скачиваться блокчейн.
---
Как запустить Nxt с помощью скрипта на OS X:
https://bitcointalksearch.org/topic/m.7072192---
Для предотвращения атак на Nxt-сеть
заинтересованным Stake-холдерам рекомендуется удостоверить свой сервер "пробой" (
Hallmark-ом).
----
в новых версиях параметр
nxt.apiResourceBase=html/tools
был заменён на
nxt.apiResourceBase=html/ui
так что если у вас при переходе на свежую версию не запускается новый web-интерфейс по http://localhost:7876 - проверьте значение этого параметра.-----
При использовании даже своего, но удалённого сервера лучше установить к нему ssh туннель со своей локальной машины:
ssh -L localhost:17876:127.0.0.1:7876 my-server.example.com
Это позволит в браузере на локальной машине вместо https://my-server.example.com:7876 открывать https://localhost:17876------
Что делать, если ваша нода свалилась в форк (и не может сама выбраться) ?
... возможно, что ваша нода видит только те ноды, которые тоже свалились в форк предыдущей версии. Как починить:
- временно в
nxt.properties добавьте строку
nxt.usePeersDb=false с тем, чтобы ваша нода была вынуждена обновить свой список нод. Затем со страницы
http://localhost:7876/test выполните команду
popOff с параметром
445000-й блок (или другой ближайший checksum к вашему форку - эта команда выбрасывает из вашей копии блокчейна все блоки после 445000), после чего перезапустите вашу ноду.
-----
скачать свежий архив блокчейна можно с
http://www.peerexplorer.com/index.php#myDownload :
Hébergé par Imagesia.com-----
Для работы в сети
Hyperboria укажите следующие параметры:
nxt.allowedBotHosts=*
nxt.apiServerHost=0.0.0.0
nxt.peerServerHost=::
nxt.apiServerCORS=true
-----
причины возможного (но далеко не обязательного) перерасхода ресурсов вашего VPS:
there are 4 types of potential resource problems:
(1) Total memory used by the Java process - should not change significantly between 1.4.x and 1.5.x, if you changed Java from 32 bit to 64 bit you should expect to see total memory consumption increased by up to 50% for the same configuration. This is normal. If it's a problem use Java 32 bit.
(2) Heap memory used by Java - there shouldn't be a significant increase between 1.4.x and 1.5.x, there are many ways to diagnose heap consumption if someone is interested I can explain more.
(3) Number of threads used by Java - due to the introduction of websocket support, the number of threads increased from few dozens in 1.4.x to few hundreds in 1.5.x, this caused the "unable to create native threads" problem to some users. As of 1.5.12 this has been fixed. A typical node should now allocate no more than 100 threads.
(4) Number of open file descriptors - I think this is an issue we haven't looked at before, in order to diagnose it we need to know what are these file descriptors. If you see 300K files open when using 1.5.12 then we need to research this. On my peer I see around 9000 files using lsof. I suspect this is also related to the websocket issue we fixed.