Author

Topic: NovaCoin (scrypt PoW + PoS hybrid) [self-mod] - page 338. (Read 744451 times)

newbie
Activity: 3
Merit: 0
>electrum-server
Сабж будет дружить с уже установленной нодой? Если да, то готов поднять у себя.
указать ему в качестве прослушиваемого другой сетевой интерфейс
вот с этим беда Sad нет его. Если только ноду погасить.
legendary
Activity: 1848
Merit: 1014
Ключевое слово почти. Просто наши умы всегда ценились и будут всегда, спасибо за Вашу Работу Balthazar.
legendary
Activity: 3108
Merit: 1359
Ну, не стоит нам приписывать изобретение алгоритма ECDSA, в Bitcoin он работает почти точно так же. Smiley
legendary
Activity: 1848
Merit: 1014
Ему незачем знать о точках на неособой кривой, упакованные представления которых лежат в wallet.dat, об областях определения этих кривых, о полях Галуа́ и всем, на чем построена система. Но это не означает, что об этом не нужно писать, потому что кому-то это может оказаться интересным и полезным.

Многие эти труды сейчас хотят превратить в милиионы $, за топиком Новы следят очень много глаз, многие полумертвые форки глядят в сторону Новы и её нововведений, мое ИМХО им незачем знать подробности, только преимущества и только копирайт.
legendary
Activity: 3108
Merit: 1359
Что мне и остальным говорит "для кривой secp256k1"?
То же, что говорит в случае Bitcoin, то есть ничего. Smiley
SECP256K1 - это кривая, описываемая уравнением y^2 = x^3 + 7. Она используется в Bitcoin и его потомках, говоря упрощенно, соответствия закрытый ключ-публичный ключ являются точками на ней.

http://bitcoin.stackexchange.com/questions/21907/what-does-the-curve-used-in-bitcoin-secp256k1-look-like

ECDSA подпись состоит из двух значений, R и S. Оба являются огромными целыми числами из диапазона [1, n-1] и позволяют восстановить положение точки на кривой.

http://en.wikipedia.org/wiki/Elliptic_Curve_DSA#Signature_verification_algorithm

Но не стоит углубляться в это, если фамилии Вейерштрасс, Риман и Ферма нагоняют священный ужас Smiley

Это сугубо внутренние вещи, которые мало кто вообще читает в случае того же Bitcoin. Для большинства людей достаточно отдаленного представления в стиле "если я не потеряю wallet.dat, то монеты в безопасности". Ему незачем знать о точках на неособой кривой, упакованные представления которых лежат в wallet.dat, об областях определения этих кривых, о полях Галуа́ и всем, на чем построена система. Но это не означает, что об этом не нужно писать, потому что кому-то это может оказаться интересным и полезным. Но опять же, даже это должно осуществляться в меру, нет никакой пользы в репостинге содержимого учебников по ТФКП и теории чисел.
legendary
Activity: 1848
Merit: 1014
Так на то и топик, чтобы уточнять непонятное Smiley

Добавил подробности о недоступных инпутах.

Спасибо Balthazar теперь все понял  Grin Просто "Если S больше n/2"
не прочитал, а так то все норм. А потом посмотрел "для кривой secp256k1" тем более все еще понятней стало.

Balthazar извени я нисколько не троллю, просто мне не понятно все это, дай понятные объяснения изменений, мы подтянемся, поможем продвинуть более лучшую криптовалюту. Преимущества, безопасность, анонимность в конце концов. Что мне и остальным говорит "для кривой secp256k1"?
legendary
Activity: 3108
Merit: 1359
Добавил подробности о недоступных инпутах.

Кто-то что-то понял из этого? Если я дурак объясните мне по-нормальному что написано выше? Или хотя-бы польза от этого без объяснений техники?
Так на то и топик, чтобы уточнять непонятное Smiley

Большая часть этого интересна лишь тем, кто хочет знать как все работает изнутри. Пожалуй, в качестве общего, понятного конечному юзеру толкования следует выделить следующее:

Quote
Core: Многопоточная проверка скриптов, использование разделяемой блокировки для кэша подписей;
Для проверки транзакций многоядерные процессоры теперь более эффективны.

Quote
Core: Поддержка слежения за "недоступными" инпутами: возможен импорт адреса без добавления соответствующих ему ключей;
QT: Недоступный для траты баланс отображается на главной странице рядом с общим балансом;
QT: На странице отправки текущий баланс заменен суммой инпутов, доступных для траты;

Q: Недоступные входы? Что это такое?
A: Это входы с адресами, за которыми можно наблюдать, но нельзя ничего с них тратить.

Q: Как это работает?
A: Вы можете импортировать адрес в клиент, не добавляя никаких соответствующих ему ключей.

Q: Как этим пользоватся?
A: Откройте RPC консоль и наберите: importaddress . Здесь должно быть заменено на адрес, за которым вы хотите наблюдать.

Q: Есть ли какие-нибудь ограничения на адреса, которые можно добавлять в клиент таким образом?
A: Нет, вы можете добавлять любые адреса, необязательно даже свои собственные.

Выполнив в консоли importaddress адрес, можно будет следить в своем клиенте за состоянием любого адреса. При этом, потратить с него пользователь что-либо не сможет, только посмотреть.

Сумма недоступных входов отображается на главной странице



и в выводе функции getinfo




Quote
Core: Функции создания подписи теперь генерируют подписи, защищенные от манипуляции значением S;
Core: Правила проверки формата скриптов приведены к боле строгому виду: DER формат для подписи теперь является обязательным, а последний аргумент CHECKMULTISIG теперь обязан быть пустым значением (это значение никак не используется и удаляется при подписывании/проверке подписи, а потому является источником возможных манипуляций содержимым);
Ваши транзакции нельзя будет модифицировать, тем самым создав проблемы при пополнении баланса на сервисах, администраторы которых проверяют баланс адреса некорректно.

Речь идет об этой атаке:

http://habrahabr.ru/post/212455/

Quote
RPC: Добавлено поле redeemScript в вывод listunspent, добавлена обработка этого поля в signrawtransaction.
Это пока экзотика, но стало возможным подписывание транзакций своими ключами, не импортируя их в кошелек. Простой пользователь этим интересоваться не будет, т.к. у multisig транзакций пока нет дружелюбной реализации.
legendary
Activity: 1848
Merit: 1014
legendary
Activity: 3108
Merit: 1359
Новые апдейты включены в основную ветку.

v0.4.4.6-nvc-update5

https://github.com/novacoin-project/novacoin

Core: Функции создания подписи теперь генерируют подписи, защищенные от манипуляции значением S;
Core: Правила проверки формата скриптов приведены к боле строгому виду: DER формат для подписи теперь является обязательным, а последний аргумент CHECKMULTISIG теперь обязан быть пустым значением (это значение никак не используется и удаляется при подписывании/проверке подписи, а потому является источником возможных манипуляций содержимым);
Core: Многопоточная проверка скриптов, использование разделяемой блокировки для кэша подписей;
Core: Поддержка слежения за "недоступными" инпутами: возможен импорт адреса без добавления соответствующих ему ключей;
QT: Недоступный для траты баланс отображается на главной странице рядом с общим балансом;
QT: На странице отправки текущий баланс заменен суммой инпутов, доступных для траты;
RPC: getcheckpoint теперь возвращает информацию о чекпоинт-сообщении (версию, хэш блока, raw представление и подпись);
RPC: getblock (hash, true) и getblockbynumber (height, true) теперь возвращают массивы raw транзакций вместо их декодированного представления;
RPC: Добавлен вызов importaddress, позволяющий импортировать в клиент любые адреса, в том числе "чужие";
RPC: Добавлено поле redeemScript в вывод listunspent, добавлена обработка этого поля в signrawtransaction.

---

Подробнее о генерации подписей новой версией клиента:

При подписывании транзакций сравниваем S в получившейся подписи с n/2. Если больше - вычитаем из него n, в противном случае ничего не делаем. Это позволяет избежать генерации подписей с неоправданно большим значением S, которое в дальнейшем может быть заменено на "нормальное" в новом варианте транзакции. Это позволяет закрыть данную возможность манипуляции содержимым транзакции. Аналогичная проверка с 20 сентября будет производиться перед добавлением транзакции в локальный пул. Если S больше n/2, то транзакция с такой подписью будет отклонена. Возможно, в дальнейшем реализуем рассылку "исправленного" варианта транзакции при получении, но пока в этом большого смысла нет.

Значение n здесь является одной из базовых констант для кривой secp256k1, подробнее в этом документе.

Подробнее о недоступных инпутах:

Недоступными в данном случае называются инпуты, которые пользователь хоть и может отличить от прочих, подобно своим собственным, но не может потратить т.к. в кошельке не имеется соответствующих ключей.

Возможные применения данной функции:

  • Создание на незащищенной машине кошелька-двойника для слежения за proof-of-stake майнингом, идущим на защищенной машине. Новые транзакции будут появляться в таком кошельке по мере появления их в оригинале;
  • Слежение за транзакциями на онлайн-сервисах (скрипты пополнения баланса на биржах и т.п., скрипты для слежения за статусами намайненных блоков на пулах);
  • Наблюдение за статусом интересующего адреса без регулярных визитов в эксплорер.

Сборки будут опубликованы в течение завтрашнего дня.
legendary
Activity: 1848
Merit: 1014
Как говорил Великий Карлсон- "Спокойствие, только спокойствие". Перед очередным падением стакан на покупку увеличился в 3,5 раза. Сейчас еще увеличение спроса на покупку. Ждем Великого Пампа- аминь. Grin А пока слабонервным к окнам не подходить. Как увидите желтую листву- настроения прибавится. Если осенью настроения не прибавится всем по кубику Сибазона- ежедневно. Сейчас пампить нет смысла, продавать по такой цене тоже. Это я Вам как PoW майнер говорю.
Отдохните лучше, смотреть до конца (всего 9 минут).
http://www.youtube.com/watch?v=SbN26Pqx2Y0
Он читает наши мысли.... Grin
legendary
Activity: 3108
Merit: 1359
Как правильно запустить версию кошелька Novacoin для командной строки чтобы добывать монеты на VPS ?
Делать этого на VPS крайне не рекомендуется, потому что все содержимое оперативной памяти VPS доступно администрации хостинга на чтение и запись. А если в гипервизоре найдется уязвимость, то также и администраторам остальных VPS на этой ноде.

Приватные данные, такие как SSL ключи, кошельки и пароли можно хранить только на выделенной железке. Что-то типа Atom подойдет, если дорого то можно арендовать cubieboard или raspberry pi за несколько долларов в месяц. Цена сравнимая, а железо свое и ни с кем не делится.

Немного ссылок:

http://www.mininodes.com/
http://www.nx-box.net/
http://www.armasaservice.com/
http://www.unixy.net/arm-server/

Запускать же на линуксе лучше всего init скриптом

Code:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          novacoind
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: novacoind daemon startup script
# Description:       novacoind daemon startup script
### END INIT INFO

# Author: Pavel A. Karoukin
#

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="NovaCoin Daemon"
NAME=novacoind
DAEMON=/opt/novacoin/$NAME
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
CHUID=novacoin:novacoin
DAEMON_ARGS="-daemon -pid=$PIDFILE"

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
   # Return
   #   0 if daemon has been started
   #   1 if daemon was already running
   #   2 if daemon could not be started
   start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
      || return 1
   start-stop-daemon --start --quiet --chuid $CHUID --pidfile $PIDFILE --exec $DAEMON -- \
      $DAEMON_ARGS \
      || return 2
}

#
# Function that stops the daemon/service
#
do_stop()
{
   # Return
   #   0 if daemon has been stopped
   #   1 if daemon was already stopped
   #   2 if daemon could not be stopped
   #   other if a failure occurred
   start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
   RETVAL="$?"
   [ "$RETVAL" = 2 ] && return 2
   # Wait for children to finish too if this is a daemon that forks
   # and if the daemon is only ever run from this initscript.
   # If the above conditions are not satisfied then add some other code
   # that waits for the process to drop all resources that could be
   # needed by services started subsequently.  A last resort is to
   # sleep for some time.
   start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
   [ "$?" = 2 ] && return 2
   # Many daemons don't delete their pidfiles when they exit.
   rm -f $PIDFILE
   return "$RETVAL"
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
   #
   # If the daemon can reload its configuration without
   # restarting (for example, when it is sent a SIGHUP),
   # then implement that here.
   #
   start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
   return 0
}

case "$1" in
  start)
   [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
   do_start
   case "$?" in
      0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
      2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
   esac
   ;;
  stop)
   [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
   do_stop
   case "$?" in
      0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
      2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
   esac
   ;;
  #reload|force-reload)
   #
   # If do_reload() is not implemented then leave this commented out
   # and leave 'force-reload' as an alias for 'restart'.
   #
   #log_daemon_msg "Reloading $DESC" "$NAME"
   #do_reload
   #log_end_msg $?
   #;;
  restart|force-reload)
   #
   # If the "reload" option is implemented then remove the
   # 'force-reload' alias
   #
   log_daemon_msg "Restarting $DESC" "$NAME"
   do_stop
   case "$?" in
     0|1)
      do_start
      case "$?" in
         0) log_end_msg 0 ;;
         1) log_end_msg 1 ;; # Old process is still running
         *) log_end_msg 1 ;; # Failed to start
      esac
      ;;
     *)
        # Failed to stop
      log_end_msg 1
      ;;
   esac
   ;;
  *)
   #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
   echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
   exit 3
   ;;
esac

:

Делается же это так.

1) Создаем учетную запись для демона:

Code:
# useradd -m -d /opt/novacoin novacoin
# mkdir /opt/novacoin/.novacoin
# chown novacoin:novacoin /opt/novacoin/.novacoin

2) Создаем конфигурационный файл:

Code:
# cat /dev/stdin > /opt/novacoin/.novacoin/novacoin.conf
rpcuser=user
rpcpassword=uberpass
server=1
^C

3) Копируем исполняемый файл novacoind (не скрипт выше, а сам клиент) в каталог /opt/novacoin.

4) Создаем в /etc/init.d файл с именем novacoind и сохраняем в него init скрипт.

5) Запускаем демон:

Code:
/etc/init.d/novacoind start

После этого можно обращаться к демону с RPC запросами:

Code:
# su - novacoin
$ /opt/novacoin/novacoind getinfo
{
"version" : "v0.4.4.6-nvc-update4-1-g1229ee3-beta",
"protocolversion" : 60015,
"walletversion" : 60000,
"balance" : 2006.59570600,
"newmint" : 0.00000000,
"stake" : 0.00000000,
"blocks" : 110867,
"timeoffset" : 0,
"moneysupply" : 869565.45705600,
"connections" : 8,
"proxy" : "",
"ip" : "0.0.0.0",
"difficulty" : {
"proof-of-work" : 515.32701096,
"proof-of-stake" : 0.90658201
},
"testnet" : false,
"keypoololdest" : 1390215233,
"keypoolsize" : 101,
"paytxfee" : 0.00000000,
"mininput" : 0.00100000,
"errors" : ""
}
hero member
Activity: 560
Merit: 500
подпишусь
подожду сложность POSa 1.0  Grin
да тут и до 1 $ близко Grin
legendary
Activity: 2296
Merit: 1057
подпишусь
подожду сложность POSa 1.0  Grin
member
Activity: 93
Merit: 15
Как правильно запустить версию кошелька Novacoin для командной строки чтобы добывать монеты на VPS ?
legendary
Activity: 3108
Merit: 1359
>electrum-server
Сабж будет дружить с уже установленной нодой? Если да, то готов поднять у себя.
Приветствую. Имя модуля не изменено, так что если выполнить инсталляцию модуля в питон, то существующий модуль будет перезаписан. Если же просто запустить в отдельном каталоге и указать ему в качестве прослушиваемого другой сетевой интерфейс, то дружить по идее должен.

Перед релизом модуль будет переименован и порты по умолчанию поменяем, чтобы не приходилось делать подобные танцы для двух инсталляций.
sr. member
Activity: 439
Merit: 253
newbie
Activity: 3
Merit: 0
>electrum-server
Сабж будет дружить с уже установленной нодой? Если да, то готов поднять у себя.
legendary
Activity: 1120
Merit: 1005
Специально храню свои чистые, намайненные монетки...

Твои целодевочки  Wink
donator
Activity: 968
Merit: 1002
Специально храню свои чистые, намайненные монетки...
legendary
Activity: 3108
Merit: 1359
Насчет биржи - если вывод делаете, то снимайте по 1-2к. Отправил заявку - получил перевод - отправил ещё заявку. Там в валлете много мелочи, говорят, поклеят позже.

Хм... Это значит можно перед склейкой, прогонять инпуты через биржу, тем самым подклеивая мелочь в стейке?

Там для ввода и вывода разные кошельки. Но прогонять через биржу в любом случае полезно, ибо это по сути огромный миксер с большим пулом адресов Smiley
Jump to: