Pages:
Author

Topic: Выбор сервера под ноду (Read 492 times)

newbie
Activity: 12
Merit: 1
December 04, 2019, 01:49:15 AM
#53
Почитаю, буду пробовать, спасибо за помощь.
legendary
Activity: 3108
Merit: 1358
December 04, 2019, 01:47:38 AM
#52
Спасибо, попробую, видимо нужно искать сервер, ставил для тестов на пк, но видимо 16гб РАМ мало
Не нужно тратиться, geth это вечная альфа, которая никогда не будет доработана и всегда будет потреблять кучу ресурсов непонятно для чего. Поставьте parity, ему вашего десктопа хватит более чем. По API обратная совместимость с geth, почти все написанное для geth работает и на parity.
newbie
Activity: 12
Merit: 1
December 04, 2019, 01:39:16 AM
#51
Спасибо, попробую, видимо нужно искать сервер, ставил для тестов на пк, но видимо 16гб РАМ мало
legendary
Activity: 3108
Merit: 1358
December 04, 2019, 01:36:31 AM
#50
Мда. Похоже, что вы правы, уже сто лет не пользовался geth. Roll Eyes

Насчет отправки транзакции, проще будет так:

const data = contract.methods.transfer(toAddress, amount).encodeABI();
web3.eth.sendTransaction({to:tokenAddress, from:fromAddress, data: data});

Но это если на сервере есть нужные ключи.
newbie
Activity: 12
Merit: 1
legendary
Activity: 3108
Merit: 1358
December 04, 2019, 01:28:53 AM
#48
А как объяснить то, что при на ноде infura все работает при таких же параметрах?
Понятия не имею. Версии демона одинаковые?

Вообще же не совсем понял, зачем вы себе создаете проблемы с RAW транзакциями там, где они не слишком-то нужны. Используйте простой sendTransaction и тогда не нужно будет ни nonce указывать, ни цену газа, клиент подставит всё сам. Или вы не доверяете серверу и на нем нет ключей?
newbie
Activity: 12
Merit: 1
December 04, 2019, 12:52:14 AM
#47
А как объяснить то, что при на ноде infura все работает при таких же параметрах?
Или подскажите какие параметры нужно выставить?
legendary
Activity: 3108
Merit: 1358
December 04, 2019, 12:50:22 AM
#46
Синхронизация ни при чем. У вас в транзакции потребляется слишком много газа, больше чем разрешено в блоке.

Таки при чем. См. ниже.
newbie
Activity: 12
Merit: 1
December 04, 2019, 12:01:24 AM
#45
Синхронизировал ноду с параметрами geth --rpc --rpcaddr localhost --rpcport 8545.
Get attach выдает следующую информацию:
currentBlock: 9047250,
highestBlock: 9047318,
knownStates: 74141394,
pulledStates: 74137457,
startingBlock: 9047228
Но при попытке совершить трансфер токена erc20, получаю ошибку: (node:10856) UnhandledPromiseRejectionWarning: Error: Returned error: exceeds bl
ock gas limit
Синхронизировал на пк, в коде указывал:
const Web3js = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
Web3js.eth.getTransactionCount(fromAddress)
  .then((count) => {
    let rawTransaction = {
      'from': fromAddress,
      'gasPrice': Web3js.utils.toHex(20 * 1e9),
      'gasLimit': Web3js.utils.toHex(210000),
      'to': tokenAddress,
      'value': 0x0,
      'data': contract.methods.transfer(toAddress, amount).encodeABI(),
      'nonce': Web3js.utils.toHex(count)
    }
В чем проблема? Может все же нужно использовать полную ноду? Или же вот это отставание в <100 блоков так влияет?
При использовании ноды от infura транзакция выполняется.
legendary
Activity: 3108
Merit: 1358
December 03, 2019, 01:11:30 PM
#44
Ну это как сказать...
Если у меня приложение работает с файлами до 100 мегабайт и получает скорость работы с диском на компе с ХДД в разы лучше чем на компе с ССД, то мне в принципе уже не столь важно - с памятью реально идет работа или с диском.
Плюс один, сам довольно долго развлекался с 15к RPM HDD и непонимающе смотрел на "адептов" SSD, некоторое время. Для реального применения неважно, почему конкретная конфигурация работает быстрее другой конфигурации, или сравнимо с ней.
Но если хочется понять причины, то уже придется копать глубже. Smiley Потому что эти причины могут привести к совсем иному результату в чуть-чуть другом сценарии, не менее реальном.



Вообще-то не факт, что это идет бенчмарк только памяти.
Конечно. Тратится время процессора, тратятся циклы I/O на обновление метаданных ФС. Да и, в любом случае, данные оказываются на диске, по крайней мере большая их часть. А если и не оказываются на пластинах, то передаются диску по IDE/SATA или что там. Вот только контроллер, стоящий в диске - это не тупая железка, записывающая всё что ей скажут. Это целый компьютер с собственной ОС, снабженной довольно сложным набором программ, вся цель которых в предсказании действий хоста и планировании работы с головками, а также с локальным кэшем. Даже в ноутбучных сигейтах ставят чип DDR2 объемом 128мб, на энтерпрайзных дисках объем локального кэша ещё больше. Поэтому, запись 80мб данных - это нерепрезентативно.

kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
December 03, 2019, 12:55:19 PM
#43
Получается, что рейд из двух HDD дисков не уделывает SSD на тестах с большими файлами. На тестах с маленькими файлами - уделывает.
Не получается. Потому что на маленьких файлах происходит тестирование оперативной памяти, а не дисков.

Ну это как сказать...
Если у меня приложение работает с файлами до 100 мегабайт и получает скорость работы с диском на компе с ХДД в разы лучше чем на компе с ССД, то мне в принципе уже не столь важно - с памятью реально идет работа или с диском.

Провайдер не может заниматься оверселлингом, потому что у меня выделенный сервер, а не виртуалка.
Значит, что-то не так с параметрами ядра, быть такого не может чтобы оперативная память на современном железе была медленнее SSD.

Вообще-то не факт, что это идет бенчмарк только памяти.
legendary
Activity: 3108
Merit: 1358
December 03, 2019, 12:50:40 PM
#42
Получается, что рейд из двух HDD дисков не уделывает SSD на тестах с большими файлами. На тестах с маленькими файлами - уделывает.
Не получается. Потому что на маленьких файлах происходит тестирование оперативной памяти и встроенного кэша, а не самих дисков.

Провайдер не может заниматься оверселлингом, потому что у меня выделенный сервер, а не виртуалка.
Значит, что-то не так с параметрами ядра. Надо разбираться.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
December 03, 2019, 12:48:38 PM
#41
Ну как-то так )

Code:
dd if=/dev/zero of=/tmp/output bs=8k count=1000k; rm -f /tmp/output conv=fdatasync
Quote
1024000+0 records in
1024000+0 records out
8388608000 bytes (8.4 GB, 7.8 GiB) copied, 53.2715 s, 157 MB/s
То есть, получается что внешний SSD примерно так же производителен, как и дисковый кэш в решении, использованном ранее для тестов. Я бы задумался, потому что это может значить только одно - хостинг провайдер занимается жестким оверселлингом и у него нет столько физической памяти для виртуалок, сколько он продал своим клиентам.

Получается, что рейд из двух HDD дисков не уделывает SSD на тестах с большими файлами. На тестах с маленькими файлами - уделывает.
Провайдер не может заниматься оверселлингом, потому что у меня выделенный сервер, а не виртуалка.
legendary
Activity: 2314
Merit: 2300
December 03, 2019, 12:43:03 PM
#40
Под эксплорером вы понимаете ctrl shift i в браузере?

Под эксплорером имеется в виду блокчейн-эксплорер, где можно видеть перемещение токенов с одного адреса на другой.
legendary
Activity: 3108
Merit: 1358
December 03, 2019, 12:42:48 PM
#39
Ну как-то так )

Code:
dd if=/dev/zero of=/tmp/output bs=8k count=1000k; rm -f /tmp/output conv=fdatasync
Quote
1024000+0 records in
1024000+0 records out
8388608000 bytes (8.4 GB, 7.8 GiB) copied, 53.2715 s, 157 MB/s
То есть, получается что внешний SSD примерно так же производителен, как и дисковый кэш в решении, использованном ранее для тестов. Я бы задумался, потому что это может значить только одно - хостинг провайдер занимается жестким оверселлингом и у него нет столько физической памяти для виртуалок, сколько он продал своим клиентам.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
December 03, 2019, 12:37:03 PM
#38
Ну как-то так )

Code:
dd if=/dev/zero of=/tmp/output bs=8k count=1000k; rm -f /tmp/output conv=fdatasync
Quote
1024000+0 records in
1024000+0 records out
8388608000 bytes (8.4 GB, 7.8 GiB) copied, 53.2715 s, 157 MB/s
newbie
Activity: 12
Merit: 1
December 03, 2019, 12:32:21 PM
#37
Под эксплорером вы понимаете ctrl shift i в браузере?
legendary
Activity: 3108
Merit: 1358
December 03, 2019, 11:41:53 AM
#36
С нодой я разобрался, я сейчас спрашиваю касательно моего решения по поводу транзакции токенов с адресов пользователей на адрес биржи, я чуть выше напитсал свои мысли.
Проще всего посмотреть, как делают биржи, и сделать так же. Благо в эксплорере все видно же.

Выглядит логично, но схему можно упростить, думаю. А именно, если контракт позволяет добавлять к транзакции дополнительные данные, можно все платежи принимать на один адрес. Просто просить юзеров добавлять в данные транзакции некий идентификатор, который потом позволит бирже понять, на чей аккаунт был этот платеж. И тогда не нужна будет куча адресов и пересылок с них. С обычными транзакциями эфира сделать такое можно, а вот можно ли с токенами - я, честно говоря, даже и не углублялся.
newbie
Activity: 12
Merit: 1
December 03, 2019, 11:34:19 AM
#35
С нодой я разобрался, я сейчас спрашиваю касательно моего решения по поводу транзакции токенов с адресов пользователей на адрес биржи, я чуть выше напитсал свои мысли.
legendary
Activity: 3108
Merit: 1358
December 03, 2019, 11:30:26 AM
#34
Может кто-нибудь ответить?
Infura использовать не следует ни для чего, кроме тестов и разработки. В реальной жизни не годится, там порой отставание доходит до нескольких тысяч блоков.
поставьте простую машинку с Core i5 и 256гб миддловым SSD, и будет счастье.
Pages:
Jump to: