Строго говоря, «одновременными» транзакции не будут. Будет принята, естественно, самая молодая.
Важно понимать, что в блоке всегда есть ссылка на предыдущую транзакцию. Давайте представим, что три участника А, Б, В имеют общий банк денег, которыми договорились совместно распоряжаться.
Транзакция 1. А перевел Б 100 рублей. Все три участника проверили и приняли транзакцию, первый блок записан.
Затем, Б хочет забрать 100 рублей и В хочет забрать 100 рублей. Начинается процесс обмена транзакциями для окончательного утверждения. Номер будущей транзакции — 2.
Согласно общему правилу, участник, совершивший транзакцию, рассылает блок ближайшим соседям и ожидает от них проверки и подтверждения принятия.
Вариант 1. Б передает А свою транзакцию. В ней указана ссылку на транзакцию 1, А соглашается с тем, что это верно. Проведя дополнительные проверки (содержащие некую бизнес логику, например), А принимает транзакцию и записывает ее к себе. Блок 2 создан. Теперь, когда, В попытается сделать тоже самое, ни А, ни Б не примут транзакцию, потому что ее место уже «занято».
Вариант 2. Б передает свою транзакцию В. В уже тоже «создал» блок номер 2, поэтому не примет ее, как верную. В данном случае возникнет коллизия, которую необходимо разрешить по согласованию сторон. Либо Б, либо В должны принять (уступить), либо настаивать.
Пример очень поверхностный, не учитывающий множество дополнительных факторов. Прошу не принимать за абсолютно правильный и верный.
Зачем Вы указываете кодировку utf8 в заголовке файла? Проект же под третий питон? Не смог прочесть ни одного обзаца целиком: ощущение, что читаю слегка очеловеченный машинный перевод. То, что успел понять, не раскрыло для меня премуществ асинхронности против синхронности.
Десять пользователей не смогут работать на одной видеокарте. Об этом даже русским по белому сказано в мануале. В этом и разница.
Гипервизоры не пробрасывают «3Д», они пробрасывают целое устройство внутрь отдельно взятой виртуальной машины. Устройство. Одно. Вставили Вы в гипервизор ОДНУ видеокарту, сможете запустить ОДНУ виртуальную машину. А хочется, чтобы видеокарта могла дать возможность использовать виртуальные устройство, также, как это делается с ядрами процессора.
К сожалению, это далеко не то, о чем мы говорили выше. Здесь используется возможность драйвера выводить на два разных устройства. И не больше. А мы же говорим о делении мощностей, полной виртуализации. Производительности современных видеокарт (например GT1080 или 290X) хватит, чтобы обеспечить работу десятка пользователей, которые даже смогут играть в 3D. Астер же и все прочие решения, как и указанное мной в предыдущем комментарии, завязаны на аппаратные особенности видео, а также на реализацию драйвера.
К сожалению, Вы ошибаетесь. никаких возможностей Астер не открывает. Потому что их нет физически. Под линукс давно был патч ядра от Alex Deucher (в написании имени могу ошибаться) ныне разработчика открытых дров ATI, позволяющий превратить одну видеокарту в три устройства, и каждое использовать как отдельную карту. Однако работало это только на одной серии карт, потом же дело забросили.
Далее читать не смог. Простите, но, по-моему, пишущий человек не имеет права допускать грамматические ошибки.
Важно понимать, что в блоке всегда есть ссылка на предыдущую транзакцию. Давайте представим, что три участника А, Б, В имеют общий банк денег, которыми договорились совместно распоряжаться.
Транзакция 1. А перевел Б 100 рублей. Все три участника проверили и приняли транзакцию, первый блок записан.
Затем, Б хочет забрать 100 рублей и В хочет забрать 100 рублей. Начинается процесс обмена транзакциями для окончательного утверждения. Номер будущей транзакции — 2.
Согласно общему правилу, участник, совершивший транзакцию, рассылает блок ближайшим соседям и ожидает от них проверки и подтверждения принятия.
Вариант 1. Б передает А свою транзакцию. В ней указана ссылку на транзакцию 1, А соглашается с тем, что это верно. Проведя дополнительные проверки (содержащие некую бизнес логику, например), А принимает транзакцию и записывает ее к себе. Блок 2 создан. Теперь, когда, В попытается сделать тоже самое, ни А, ни Б не примут транзакцию, потому что ее место уже «занято».
Вариант 2. Б передает свою транзакцию В. В уже тоже «создал» блок номер 2, поэтому не примет ее, как верную. В данном случае возникнет коллизия, которую необходимо разрешить по согласованию сторон. Либо Б, либо В должны принять (уступить), либо настаивать.
Пример очень поверхностный, не учитывающий множество дополнительных факторов. Прошу не принимать за абсолютно правильный и верный.
Гипервизоры не пробрасывают «3Д», они пробрасывают целое устройство внутрь отдельно взятой виртуальной машины. Устройство. Одно. Вставили Вы в гипервизор ОДНУ видеокарту, сможете запустить ОДНУ виртуальную машину. А хочется, чтобы видеокарта могла дать возможность использовать виртуальные устройство, также, как это делается с ядрами процессора.