Часть 3. Построение простых блоков в блокчейн на Питон.
Часть 1. Что такое блокчейн - очень просто?
Часть 2. Начало изучения блокчейн + Питон(hashlib sha256)
Часть 4. Изучать далее.
Оф. сайт Json: https://www.json.org/json-ru.html
Wiki ethereum Json: https://github.com/ethereum/wiki/wiki/JSON-RPC
Python 3 Json: https://docs.python.org/3/library/json.html
Прочитать и посмотреть видео:
Как правильно изучать Django? Другие методики не работают. https://spb-tut.ru/guest/pages/294/
Хотите стать программистом? Читайте. https://spb-tut.ru/reviews/
Для тех у кого нет доступа и есть желание учится серьёзно:
Получить пожизненный доступ: питон джанго https://spb-tut.ru/info/action/
блокчейн + питон: http://blockchain.spb-tut.ru/info/buy/
набрать ключевую фразу python json (или нечто подобное)
проделать примеры из интернет, проделать примеры с оф. доков пайтон. Свои примеры сбросить в группу (для участников ссылка на группу блокчейн)
Перечислить основной синтаксис json и пояснить примером.
Перечислить типы объектов, передоваемые json.
Пояснить, проверив себя, цель создания json.
Познакомится просто познакомится с django-rest-framework
http://www.django-rest-framework.org/
django-rest-framework - это не просто библиотека создания json, его цель создавать полноценные api доступа для обмена json.
dumps sort_keys=True, indent=2
найти и пояснить, ещё любой из методов.
Цель, что бы знали где искать и умели применять азы.
Справка.
В Пайтон Json встроен, для его использования доостаточно просто импортировать.
import json
import hashlib, json # урок 3 block_genesis = { 'prev_hash': None, # транкзакции подразумевают криптовалюту 'transactions': [15, 23, 7, 78, 9,], 'messages':('валерий отправил 15 btn',), } block_genesis_serialized = json.dumps(block_genesis, sort_keys=True, indent=2).encode('utf-8') block_genesis_hash = hashlib.sha256(block_genesis_serialized).hexdigest() #print('block_genesis_serialized-', block_genesis_serialized) #print('block_genesis_hash-', block_genesis_hash) # End урок 3
# урок 4 block_2 = { 'prev_hash': None, # транкзакции подразумевают криптовалюту 'transactions': [155, 237, 7, 788, 9,], 'messages':('валерий отправил 788 btn',), } block_2_serialized = json.dumps(block_2, sort_keys=True, indent=2).encode('utf-8') block_2_hash = hashlib.sha256(block_2_serialized).hexdigest() # End урок 4
# урок 5 block_3 = { 'prev_hash': None, # транкзакции подразумевают криптовалюту 'transactions': [1555, 2387, 7, 7888, 9,], 'messages':('валерий отправил 7888 btn',), } block_3_serialized = json.dumps(block_3, sort_keys=True, indent=2).encode('utf-8') block_3_hash = hashlib.sha256(block_3_serialized).hexdigest() # End урок 5
# урок 6 def hash_blocks(blocks): prev_hash = None for block in blocks: block['prev_hash'] = prev_hash block_serialized = json.dumps(block, sort_keys=True, indent=4).encode('utf-8') block_hash = hashlib.sha256(block_serialized).hexdigest() prev_hash = block_hash return prev_hash # End урок 6
# урок 7 print('Оригинальный хеш') print(hash_blocks([block_genesis, block_2, block_3])) #print('введим методы') #print(hash_blocks.__dict__) #print(type(hash_blocks)) # End урок 7
# урок 8 print('Вмешательство извне') block_3['transactions'][1] = 23875 print(hash_blocks([block_genesis, block_2, block_3])) # End урок 8
Пришли к пониманию, что нам нужно следующее: """ смарт контракт Как вы решите, как следующий блок будет добавлен? В блокчейн это реализуется, при помощи согласия и подтверждения работы. (смотреть видео основы блокчейн) Тогда структура блоков в блокчейне гораздо сложнее. """
Сначала коротко подведём итог:
Закончена серия видео уроков для новичков по блокчейн. Где мы создаём простые блоки, при этом ранее мы учились работать с json и шифровать при помощи библиотеки hashlib python, поэтому готовим данные к передаче в формате json и шифруем. Потом пишем функцию проверки нашего блокчейн и выводим оригинальный хеш. Далее имитируем вмешательство хакера извне с попыткой изменить данные и видим результат Приходим к пониманию зачем нам нужен смарт контракт и какие ещё элементы нужны нам для нормальной стабильной работы сети. Далее получаем домашнее задание, кстати домашнее задание для просто гостей это дело ваше, а вот для участников школы выполнить рекомендуется в обязательном порядке. Ребята любую возможность используйте, что бы подтянуть код. Суть домашнего задания переписать наш код в видео функций и вторая часть в виде класса. Ну а для новичков, должно отложится, что всё делается людьми и во всем можно разобраться. Приглашаю вас заниматься в школу (ссылки ниже), все получится. Спасибо за доверие.
Для участников школы домашнее задание разместить в группе по ссылке.
Домашнее задание: 1. Переписать блоки block_genesis, block_2, block_3 в функции в функцию включить сериализацию и хеш.
2. Переписать в класс. block_genesis, block_2, block_3 должны быть методами, можете написать несколько классов, как вам легче так и делайте.
Дополнение к дз:
на выходе показать то же что и мы Оригинальный хеш 977c46bc20f5c5064e25a8e8e073f9e76a26003024864e5ca6c59724a6292359 Вмешательство извне c03c0408732a42a84ef68dbbc5a5b8efad2273b01e8d820396dbb1adf217f3e3
Домашнее задание сбросить сюда. вариант 1 запаковать проект в .zip и прикрепить. вариант 2 разместить на git вариант 3. Просто сбросить код в группу.
///////////////////////////////////////////
Для участников школы, ссылки на код в группе:
- функции дом. задание.
- классы дом. задание.
УНП 391609112Полоцк, Беларусь. (обратите внимание у нас онлайн обучение)
Email: Страница контактов
Акция Курсы Blockchain Новые курсы