Я вот уже не знаю, какими словами писать, чтобы ты понял.
Общие правила - я написал. "Общесетевой бан" - нет такого понятия в этом алгоритме, он там нафиг не нужен. Хотя бы по той простой причине, что "спамить" ты можешь только одну конкретную ноду, ну или несколько нод - но никто в здравом уме и твёрдой памяти твой спам дальше транслировать не будет. Твой список - да ставь галочки там, где ты хочешь.
Я не понял, у тебя соседние ноды/сиды только должны знать о транзакции? допусти 1 нода дружит с 2,3,4 и они вместе образуют кластер? тоесть 10000 нода, должна просто связаться с этими 5ю и больше ни с кем?
Ну смотри. Между покупкой ежа и покупкой енота за углом проходит время. Скажем, пара минут даже на то, чтобы просто завернуть за угол, не считая сетевого обмена.
Собщения же по сети - распространяются практически мгновенно, считанные секунды. Ты даже отойти от продавца не успеешь, не то, что за угол завернуть.
Это раз. И два - это то, что три "копии" своей транзакции ты должен отправлять по ближайшим к своему адресам. Если отправишь по другим - ну, их получатели перенаправят, куда надо, это очень быстро делается. И кроме того, второй продавец (как, впрочем, и первый) - ждёт подтверждения от них же. Это пара секунд, буквально, даже с gprs модемом - там не гигантские объёмы данных. Т.е., в пределах считанных секунд второй продавец получит на твою транзакцию сообщение: "попытка дабл-спенда". Ну, а дальше-то уж конечно ему решать, как на это реагировать. Может и принять у себя, конечно - только после этого его счёт так же невалидным станет.
1. А вот и нет. Если у тебя до 1млн кошельков/сидов/нод (это те которые онлайн, про офлайн позже),тогда физически посчитай, сколько займет время, чтобы в двух разных концах узнали, что у тебя на кошельке уже нет потраченных денег. (если у тебя дружат, только 5 соседних нод и образуют кластер, другая история. жду ответ на предыдущий вопрос.)
Правильно я тебя понял, что каждая транзакция у тебя будет 2 минуты?
2. те которые офлайн вообще не понятно, как будут синхронизироваться, спустя допустим год отключки. сколько им надо будет выкачать инфы?)
Собщения же по сети - распространяются практически мгновенно, считанные секунды. Ты даже отойти от продавца не успеешь, не то, что за угол завернуть.
А ты так говоришь или кодил отправку сообщений по сети? Я кодил. когда уже 100 компов, которые могут отвалится, надо проверить обратно связь, записать данные в журнал, записать данные в вектор от кого получил, когда итд. это смерть. это не просто выкачивать файл по списку ip адресов и проверять его хеш. это совсем другая история. если рассмтаривать классические консенсусы и их скорость, так они в системе, где все сервера заведомо доверенные.
И два - это то, что три "копии" своей транзакции ты должен отправлять по ближайшим к своему адресам. Если отправишь по другим - ну, их получатели перенаправят, куда надо, это очень быстро делается. И кроме того, второй продавец (как, впрочем, и первый) - ждёт подтверждения от них же.
ну смотри, ты отправляешь адресатам, а каждый следующий адресат должен знать кому уже отправляли, чтобы повторно не спамить обратно. тоесть должен быть вектор уже тех, кто знает о том, кто получил данные по трназакции. я не поленился и посчитал самую сырую транзакцию без доп информации:
Это пример примитивной транзакции без доп инфы в байтах (отпарвитель, получатель, сколько отправляем, комиссия, хешб timestamp)
[i]Ђ}q (X timestampqGAЦЖv„‰ lX numqKX fromqX 4SzkNXVjE9tFhBJWYKLPFfKcqxSYqX toqX U12cyWUQMYBtFnuMCjrr2FmCfnSqX count payqX 0.0003qX comissionq X 0.000003q
X hashqX@ 8ecec0f992e7ea2c4ced01ed0d64dc09ba508ff4673dec8747cd864483010a02qu.
[/i]
берем ее и умножаем на 1000. Получается что 1000 нода в тсвоей системе, для получения транзакции должна выкачать 300кб. каждая предыдушая 299, 298 итд.
Это адова медленная скорость будет в твой системе. просто нереал.
И кроме того, второй продавец (как, впрочем, и первый) - ждёт подтверждения от них же.
От кого от них? Как они заранее будут договариваться? опять же, если кто-то один отваливается в моменте, опять куча тестов должно быть. это ад. опять же, это не просто иметь у себя файл, таблицу dht где твой ip и port и хеш файла на мастер ноде.
Это пара секунд, буквально, даже с gprs модемом - там не гигантские объёмы данных. Т.е., в пределах считанных секунд второй продавец получит на твою транзакцию сообщение: "попытка дабл-спенда". Ну, а дальше-то уж конечно ему решать, как на это реагировать. Может и принять у себя, конечно - только после этого его счёт так же невалидным станет.
как второй продавец получит инфу о попытке даблспенда в считаные секунды, если нод/сидов 10000. технически через цикл ты пробовал это делать? я не говорю про сервера на оптоволокнке в дата центре гугла. я говорю про tcp и компы в разных концах страны. чушь не неси. напиши простой скрипт, хотяб на zeromq, и посмотри на скорость отправки и приема 1000 сообщений между 100 компьютерами децентарлизованно. pow не синхронизирует ноды, он просто всем нодам говорить, что одновременно выкаичвать. в твоем случае выкачивать надо одновременно все и от всех. это ад.
ПыСы. Вообще, есть спам, есть флуд, есть фрод и есть ддос. Ты зачем-то валишь всё это в одну кучу - но при этом почему-то требуешь от меня конкретных ответов на свой ответ.
Я тебе конкретный вопрос задал, что их этого будет использоваться
- от нее часто прилетает даблспенд транзакция
- нода отправляет неверные данные
- нода не проводит транзакции дальше и засыпает случайным образом
- нода переподисывает транзакцию и делает вид, что она не валидна
- нода сообщает другим нодам, что нода Х плохая и ее надо банить
Не хочешь, не отвечай
Естественно, не решил.
Иначе, никто бы не орал: "ждать джва года шесть блоков сверху". Кривой костыль, не более.
То о чем ты говоришь, это проблема двух веток, а не византийских генералов. поэтому не зачет тебе.