Я запускаю частную сеть разработки Эфириума с 3 узлами, соединенными друг с другом. Прежде чем задать мой вопрос, кое-что о моей настройке. Вот как я запускаю эти узлы:
geth --networkid 2345 --datadir /some/dir/01 --rpc --rpccorsdomain "*" --rpcapi "db,net,web3,miner,eth,personal" --port "30301" --rpcport 8101 --maxpeers 2 --identity "MyChain01" console
Это просто инструкция для одного узла, остальные имеют разные номера портов.
Когда все узлы запущены, я подключаю их в консоли JavaScript через:
admin.addPeer("enode:1234567890.....")
и при запуске:
admin.peers
Я получаю других сверстников соответственно. Когда я начинаю майнинг на одном узле, добытые блоки синхронизируются с другими, так что все работает хорошо.
А теперь мой вопрос. Допустим, я создал 2 аккаунта на Node01, 2 аккаунта на Node02 и 2 аккаунта на Node03. Как я мог на самом деле выполнить какую-либо транзакцию между узлами? Итак, с account1.node01 на account1.node02?
Во время работы:
personal.listAccounts
на любом заданном узле я получаю только учетные записи, созданные на этом самом узле.
Кто-нибудь знает, есть ли решение для доступа ко всем учетным записям со всех подключенных узлов? Может быть, мне не хватает трюка, но я не мог найти ничего, что могло бы объяснить, как это сделать.
Спасибо, Бориньо.
для всех, кто, возможно, задает тот же вопрос, я хотел дать ответ на мой вопрос, насколько мне известно.
То, что я в основном описал выше, — это концепция «горячего кошелька». Как и в приведенном выше примере, учетная запись создается непосредственно на узле, все данные, ключи и т. д. хранятся на этом узле. Теперь, когда кошельки или контейнеры с ключами не должны (и я думаю, не могут) копироваться между узлами, первоначальный вопрос на самом деле бессмыслен или просто неверен. Другая проблема заключается в том, что я фактически задал два вопроса в одном.
Перенести что-то с account1.node1 на account1.node2 вообще не проблема (в пределах одной сети). Просто сделайте:
eth.sendTransaction({from:sender, to:receiver, value: amount})
Другой вопрос, который я задавал себе, был чем-то вроде проводника блокчейна. Листинг, через web3, что происходит в сети. С помощью web3.js можно запросить все данные учетной записи на любом указанном узле, но не все учетные записи в данной частной установке блокчейна (если кто-то не скажет мне иначе).
Я надеюсь, что это поможет кому-то когда-нибудь :)
Бориньо
На данный момент вы не можете получить доступ к своей учетной записи на другом компьютере, не добавив туда файлы ключей. это не сразу риск, так как они все еще защищены паролем, но... вы поняли.
Но есть мозговой кошелек ( https://github.com/ConsenSys/eth-lightwallet ). Что вы можете с ним делать: создавайте учетные записи на лету и используйте их, просто идентифицируя это семя (состоящее из 10 слов, сгенерированных по специальному шаблону) и пароль, который вы выбираете каждый раз, когда используете учетную запись в своем браузере ( не имеет ничего общего с паролем учетной записи, поскольку эти 10 слов — единственное, что имеет значение ;)) Чего вы пока не можете сделать, так это преобразовать свои существующие кошельки в мозговой кошелек.
Поэтому, если вы хотите иметь учетную запись, которую вы можете использовать везде без ключевого файла, создайте несколько мозговых кошельков и разместите необходимые скрипты в Интернете, чтобы вы могли получить к ним доступ откуда угодно. и, конечно же, запишите эти 10 слов, так как они генерируют ключи на лету каждый раз, когда вы хотите использовать этот кошелек.
jlstr