Установка Solc Compiler в Windows 8

Мне нужен компилятор командной строки, чтобы создать экспертную систему, которая автоматически создает, тестирует и развертывает системы интеллектуальных контрактов, основанные только на метаданных. Я пробовал несколько дней, чтобы установить solc без успеха. Я признаю, что у меня есть только средний интеллект, но я думал, что точка Эфириума должна дать возможность обычным людям. Это не должно быть сложно, если только сложность не ограничивает количество людей, которые могут решить загадку за определенный промежуток времени. Мне кажется, что я делаю доказательство работы.

Все, что я пробовал до сих пор (NPM), задокументировано, но прежде чем публиковать все здесь, я хочу знать, есть ли альтернативные компиляторы, которые можно использовать в автоматическом процессе или если есть другой способ установить solc или, возможно, построить его из источника. Если создание из источника является вариантом, мне понадобится учебник, потому что у меня нет опыта работы с C ++. У меня есть Visual Studio, установленный на моей машине, если это поможет.

Вкратце я попытался установить с NPM как локально, так и глобально, и я попробовал geth --solc path и admin.setSolc('path'). В любом случае, я не думаю, что определение пути - это моя проблема, потому что после установки NPM отсутствует файл solc.exe, установленный где-нибудь на моем компьютере, который я могу найти - только каталог solc, заполненный файлами solcjs.

Любые идеи будут высоко оценены Спасибо, Джон

В качестве побочной заметки у меня было много трудностей с локальным блочным ключом, и мне было трудно найти учебные ресурсы. С этой целью я сделал учебник, найденный здесь, на GitHub , который должен получить еще один нуб вроде меня и работает в коротком порядке. Можно вырезать и вставлять код из учебника, чтобы начать локальную цепочку блоков, и наиболее полезные ресурсы индексируются. Я продолжу работу над индексом, чтобы сделать его более понятным и добавить новые ресурсы по мере их обнаружения. Если я смогу узнать, как установить solc, я напишу что-то подобное, чтобы следующий человек, возможно, ускорил процесс.

Еще раз спасибо, John

Привет всем, сегодня настал день, и я решил решить эту проблему.

Ни команда npm install solc, ни npm install -g solc фактически устанавливает solc. Эти команды устанавливают привязки JavaScript для solc.

Просмотрите страницу NPM для сока . Это очень вводит в заблуждение - он говорит, что наверху большие буквы. Но прямо внизу находятся две ссылки, где я думаю, что solc и будет найден.

Ссылки воспроизводятся здесь и здесь .

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

Не волнуйтесь, после поиска в течение нескольких часов я нашел эту страницу с большой картина «Идиот деревни» . Надеюсь, это какая-то внутренняя шутка, а не и оскорбление, чтобы такие люди, как я, искали помощи. Во всяком случае, на этой странице находится выпуск исполняемого файла, который устанавливает solc вместе с Mix IDE, AlethZero, geth и eth.

Теперь, если я запустил Geth со следующей опцией --solc "C:\Program Files\cpp-ethereum\solc", тогда я могу ввести eth.getCompilers() в консоли, и я увижу [твердость] в качестве результата.

В качестве альтернативы я могу запустить geth без опции solc и позже ввести следующую команду в консоль JavaScript, когда я хочу использовать компилятор.
admin.setSolc('C:\\\Program Files\\\cpp-ethereum\\\solc')
Обратите внимание, что для консоли JavaScript требуется, чтобы использовались три слэша, где обычно должно быть только одно. Я прочитал в Stack Exchange, что это потому, что косая черта - это escape-символ в JavaScript. Также обратите внимание, что в этом случае требуется одиночная или двойная кавычка по пути, потому что в пути между словами «Программа» и «Файлы» есть пробел.

Я еще нигде не пытался скомпилировать. Я сообщу, если есть проблемы.

В то же время я был бы признателен, если бы кто-нибудь сказал мне, как установить solc со следующих страниц здесь и здесь . Мне нужно знать, потому что версия на странице Village Idiot - с июня, и я не знаю Не думаю, что страница больше поддерживается.

Еще раз спасибо, John

5 голосов | спросил John Shearing 3 Jpm1000000pmTue, 03 Jan 2017 13:08:46 +030017 2017, 13:08:46

2 ответа


3

Одним из относительно простых решений является установка node.js и использование пакета solc npm. Я использовал его сам, когда я начал играть с контрактами с ethereum, и это было удобно для настройки.

Вот шаги -

  • установите последнюю версию node.js
  • создать папку для проекта
  • добавить пакет solc в файл package.json или использовать следующий пакетный файл -

    {     «name»: «eth_compiler»,     «версия»: «0.0.1»,     «двигатели»: {         «node»: «> = 7.0.0»,         "npm": "^ 3.0.0"     },     «зависимости»: {         "solc": "^ 0.4.7"     } }

  • Запустите npm install в папке

  • добавьте небольшой файл js в папку (compile.js) - он получит имя файла контракта и выведет нужные вам файлы abi /code.

Вот пример -

var solc = require('solc');
var fs = require('fs');

var inputFilePath = process.argv[2];
var outputPath = process.argv[3];

// note - using the synchronous version of the file system functions for simplicity and because the async version isn't really needed in this case
var contractSolidity = fs.readFileSync(inputFilePath , 'utf-8');
if (!contractSolidity)
    return console.error('unable to read file: ' + inputFilePath );

var output = solc.compile(contractSolidity, 1);
for (var contractName in output.contracts) {
    var abi = output.contracts[contractName].interface;
    var code = output.contracts[contractName].bytecode;
    fs.writeFileSync(outputPath + '/' + contractName + '.abi', abi, 'utf-8');
    fs.writeFileSync(outputPath + '/' + contractName + '.code', code, 'utf-8');
}
  • После того, как у вас есть этот файл, вы можете просто выполнить следующую команду в новой папке - узел компилировать [inputFilePath] [outputPath]

, и он должен сгенерировать скомпилированные файлы.

Примечание. Я проверил его локально и смог скомпилировать контракт, поэтому я считаю, что он должен работать, но стоит упомянуть, что у меня есть и party & cpp-ethereum, установленный на моей машине (четность не выполнялась во время выполнения этого скрипта).

ответил nergall 3 Jpm1000000pmTue, 03 Jan 2017 16:33:32 +030017 2017, 16:33:32
1

Вопрос уже отмечен, но я добавлю несколько деталей для полноты.

1.Вы можете загрузить исполняемый файл солидности со своей страницы github https://github.com/ethereum/solidity/releases

  1. Добавьте исполняемый файл в свой путь к классам.

  2. Убедитесь, что у вас установлена ​​Visual Studio (я предлагаю 2015).

  3. После того, как вы добавили исполняемый файл в путь к классам, откройте CLI и введите solc -version. Это должно дать вам установленную версию компилятора.

  4. Теперь запустите geth. Вам не нужно включать модуль администратора. Поскольку admin.setSolc ('') не требуется.
  5. Вам даже не нужно добавлять --solc paramater в команду «geth start». Geth выберет его из вашего системного пути.
  6. После запуска запуска проверьте свой компилятор. eth.getCompilers () [ "Монолитность"]

В качестве альтернативы вы можете использовать пакет solc Npm (второе место по ИМХО). ИЛИ, вы можете построить Solidity from Source, если хотите стать вкладчиком. Для этого требуются Cmake, git и Visual Studio.

ответил Hitesh Joshi 22 FebruaryEurope/MoscowbWed, 22 Feb 2017 07:17:52 +0300000000amWed, 22 Feb 2017 07:17:52 +030017 2017, 07:17:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132