Я пытаюсь разработать чейнкод в гиперледжере. Я знаю, что кабина с цепным кодом будет разработана либо на java, либо на узле js. Мой вопрос: имеет ли значение, на каком языке я разрабатываю чейнкод?
Имеет ли значение язык, на котором написан чейнкод гиперледжера?
Ответы (2)
При рассмотрении вопроса о том, на каком языке писать чейнкод, я обычно видел, как организации задают себе следующие вопросы:
- Какой язык имеет наиболее зрелый SDK/поддержку?
- Какой язык вызывает у разработчиков наибольший интерес/легкость найма?
- Какой язык обеспечивает наибольшую безопасность?
Последнее часто упускают из виду, но, на мой взгляд, оно является одним из самых важных, учитывая, что ошибки в чейнкоде зачастую гораздо важнее, чем ошибки в обычном коде! Помните, что выходные данные чейнкода записываются в реестр на все время, и исправление выходных данных плохого чейнкода может быть дорогостоящим процессом.
Учитывая эти вопросы, вы можете оценить три языка (go, nodejs, java), которые поддерживает чейнкод, следующим образом:
- Golang имеет наиболее зрелый SDK/поддержку. Fabric написан на Go и считает Go первоклассным гражданином во всех тангенциальных проектах; поэтому он часто считается первым и наиболее обновленным языком, когда речь идет о поддержке Fabric.
- Для NodeJS, вероятно, легче всего найти таланты, и он уже является широко популярным языком, а это означает, что чейнкод обычно будет наиболее доступным, если он написан на NodeJS. Первый разработанный и самый популярный SDK Fabric (без чейнкода) — это nodejs, поэтому они очень хорошо сочетаются друг с другом. Конечно, у Java, вероятно, столько же, если не больше, доступных разработчиков, но я считаю его вторым здесь, поскольку он гораздо меньше поддерживается.
- Golang и Java являются строго типизированными языками и обеспечивают гарантии, которые дают такие языки. Java также приносит с собой многолетний производственный опыт и безопасность. Оба они выигрывают, когда дело доходит до языковой безопасности, по сравнению с языками с динамической типизацией и компиляцией JIT, такими как nodejs.
TL;DR: Golang имеет надежные гарантии безопасности и наиболее широко поддерживается, NodeJS проще написать и найти разработчиков, для Java сложно продать
Я бы предложил использовать GoLang, так как это очень эффективный и мощный язык с точки зрения производительности и масштабируемости.