Программное воплощение идеи "каждому свою криптовалюту"

Один из главных элементов этого воплощения будет своя "социальная сеть - портал" людей, обладающих своей криптовалютой. Это будет портал заключения договоров (смартконтрактов) с "фондами". Основная функция фондов - гарантированная конвертация в другие криптовалюты, и ведение комплекса работ по поддержке человеческой валюты через поддержку развития человека, своего клиента. Эти фонды будут обладать целыми портфелями из "человеческих" валют (оплата их услуг также должна быть максимально исключительно только человеческими валютами, добиваться этого придется декларативно, такие фонды должны будут придерживаться общепринятых стандартов работы, которые должны будут быть выработаны.  Цель таких стандартов - обеспечение невозможности как картельных соглашений между фондами, с одной стороны, а с другой стороны прозрачный и работающий механизм перехода людей со своими валютами между фондами.

В соц.сети также возможно будет формировать независимые пулы взаимной поддержки личных криптовалют "френдами".  Такая поддержка может быть выражена в поддержке работоспособности блокчейна личных криптовалют. 


И, переходим наконец то к программированию. Сначала надо будет его освоить :).  

Далее повествование будет с учетом того, что я по-прежнему хочу увлечь и привлечь к теме тех, кто про программирование знает-понимает очень смутно, но хотел бы освоить и уметь и принять участие в нашем грандиозном проекте.  Не факт, что мой метод и подход - самый эффективный. Очень будет похоже вначале на "слепой ведет слепого". Но, все таки, я когда-то давно работал программистом, поэтому для совсем незнающих мои объяснения могут быть полезными, а если буду нести откровенную чушь, надеюсь на то, что появятся волонтеры-менторы (а может и даже не такие уж и волонтеры) которые помогут.

Итак, ранее я уже говорил про стек, который выбираем для создания программного обеспечения в нашем проекте.

Что такое стек?  Это набор других программ, главным образом языков программирования и чего то программного вокруг них. Языки программирования - это кроме синтаксиса также много программ, которые текст, который набирает (или генерирует другими программами) программист - также превращает в работающие программы.

Языков программирования очень много и можно запутаться в их выборе.

Я выбираю Elixir + Rust и это далеко не мейнстримовский выбор (то есть гораздо больше программистов работают с другими языками), все таки никуда будет не деться от какого то понимания и Javascript.  Теперь кратко - почему это.  Elixir - язык, на котором пишутся программы которые могут обеспечивать одновременную работу с каким либо сервисом через интернет очень большого числа клиентов одновременно. Причем обещается что и с масштабированием будет все просто.  То есть один раз написали - а как будет у нас увеличиваться количество желающих иметь свою валюту, то ничего переписывать не надо будет, нужно будет только добавлять сервера (это такие мощные компьютеры) в кластер (кластер - это такое хитрое изобретение, когда много компьютеров связанных между собой проводами чаще всего, работают как один компьютер.  Очень удобно, когда начинаем только работать - достаточно одного сервера или лучше трёх для начального кластера, потом как клиентов становится больше, просто добавляем новые сервера в существующий кластер, это просто.... :) :) :)  )  

Какой замечательный язык!!!  Зачем же нам ещё Rust?  Тут вот какое дело. Программы написанные на Elixir "легко держат" одновременно много активно что то делающих клиентов, но если на нем написать программку которая в реальном режиме (то есть здесь и сейчас буквально) нам должна будет конвертировать миллиарды личных валют в другие миллиарды  (честно говоря, чего уж миллиарды, даже миллионы) - то делать она будет не то чтобы уж сильно медленно, тоже быстро... Но на Rust - это будет раз в 10 или даже в 100 быстрее!!!  Ого! А чего тогда вообще все на Rust не запрограммировать?  Ну вот, можно было бы все на Rust - теоретически. Но в пересчете на трудозатраты программистов и затраты на дальнейшую поддержку, модернизацию - на Elixir-е (предположительно) будет быстрее и дешевле.  Кроме того, Rust - пока сам ещё далеко не мейнстримовский язык, и кстати, не абсолютный рекордсмен по скорости вычислений (C и C++ быстрее), но он (те кто его создал и продвигают в мире) обещает правильно работать с "памятью" компьютера что теоретически должно значительно уменьшить вероятность плохих последствий от ошибок программистов.  Есть поговорка у программистов "отстрелить себе ногу".  Вот обещается, что на C++ это сделать гораздо легче, чем на Rust-е...  Поведусь и поверю.  Хотя вот на Rust-e написан последний FireFox - и я не скажу, что я в восторге от его работы.  Работает очень быстро, да... пока намертво не зависнет.  А почему то часто зависает именно намертво.

Вообще то в теме выбора языка программирования для того, кто только хочет стать программистом далеко не все определяется конкретной задачей программирования.  Правильно изучать то, что будет долго востребовано на рынке. Но!!!  Если изучите то, что востребовано и что знают миллионы, на этом рынке будете конкурировать с миллионами.  Самое правильное угадать - что будет потом использоваться миллионами, уже после того, как Вы УЖЕ будете в числе первых сто тысячах и уже с опытом работы на конкретных проектах.  Тут Elixir и Rust - мне кажутся подходящими языками.

Выбрали Elixir.  (Все ссылки будут ниже)

И тут надо сказать о такой сущности, как Фреймворк.  Это тоже некий набор инструментов, методик, способов и шаблонов (заранее заготовленных текстов на языке программирования, в нашем случае Elixir)  - применяя которые можно значительно ускорить написание нужного приложения, гораздо быстрее - если бы писали с нуля. У Elixir есть такой - называется Phoenix.

Сейчас дам ссылку на английскую книжку по нему, от создателей самого фреймворка. Она мне очень понравилась, так как по ней оказалось (мне) очень интересно и удобно изучать английский, а как начал что то понимать, то началась раскрываться програмерская красота и мощь и фреймворка Phoenix и Elixir.  Я за свободный доступ к такой информации. Пиратов (которые дают скачивать бесплатно информацию, за которую хотят брать деньги правообладатели) вообще не осуждаю.  Почему - тема отдельных долгих дискуссий долгими зимними вечерами.  Но вот данная книга - она в свободном доступе на ресурсе hex ( https://hex.pm/ ) - это специальный ресурс, где собрано много чего нужного для тех кто программирует на Elixir и Erlang (Ирланг это предшественник Эликсира, с другим синтаксисом... хотя под капотом и на выходе, что у него что у Эликсира - код, понимаемый другой крутой программой, которая называется BEAM.... собственно эта крутая программа и позволяет "держать одновременно на связи" миллионы активных клиентов и что то даже им давать по их постоянным запросам, а может она это потому, что вот так сделана умно спецами из шведской компании Erricson ... но это можно очень в исторические дебри уйти)

Ссылка на книгу про Phoenix - https://hexdocs.pm/phoenix/Phoenix.epub

В этой книге шаг за шагом описывается процесс создания портала для работы с видеофайлами (как я понял).  Портал - это то что нам нужно. Собственно и начнем все делать по книжке, периодически вспоминая - что делаем вообще то портал не для работы с видеофайлами, а для работы с личными персональными криптовалютами пользователей.


....  А как же записаться в этот наш замечательный кружок по освоению программирования и участию в создании такого замечательного проекта?  Пока можете оставлять комменатрии в статьях здесь на голосе, скоро дам ссылку на телеграм.



программированиеchange
7
0.281 GOLOS
0
В избранное
Игорь
На Golos с 2017 M10
7
0

Зарегистрируйтесь, чтобы проголосовать за пост или написать комментарий

Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.

Зарегистрироваться
Комментарии (0)
Сортировать по:
Сначала старые