https://github.com/blackhole-consulting/blockchain-micropython
A blockchain micropython libraries for ECC, ECDSA and network with BITCOIN BTC, Ethereum, EOS
https://github.com/blackhole-consulting/blockchain-micropython
blockchain btc ecdsa ecdsa-cryptography ecdsa-signatures encryption eos esp32 ethereum micropython rsa
Last synced: 6 months ago
JSON representation
A blockchain micropython libraries for ECC, ECDSA and network with BITCOIN BTC, Ethereum, EOS
- Host: GitHub
- URL: https://github.com/blackhole-consulting/blockchain-micropython
- Owner: BlackHole-Consulting
- Created: 2022-12-31T17:12:42.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-15T05:34:10.000Z (almost 3 years ago)
- Last Synced: 2025-04-22T20:50:57.749Z (8 months ago)
- Topics: blockchain, btc, ecdsa, ecdsa-cryptography, ecdsa-signatures, encryption, eos, esp32, ethereum, micropython, rsa
- Language: C
- Homepage:
- Size: 205 KB
- Stars: 9
- Watchers: 1
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Blockchain Micropython Library
A IOT microcontroller blockchain micropython library for EOS, ETH, BITCOIN. Esp32 controllers, St32 and others . For RTOS operating systems . ESP32, ESP8266, ST32 micro controllers .
* Require at least 1 MB SRAM or PSRAM
## Features
- Call to nodes to send request and receive data , get info get balance , get tx, get accounts ....
- Generate ECC keys
- ECDSA signature
- Push transactoin (Pending)
### Requeriments
### Installation
Copy file modules to your MicroPython ports
### Compile
```python
cd micropython/ports/esp32
make USER_C_MODULES=/YOURPATH/ports/esp32/boards/GENERIC/ucrypto/micropython.cmake BOARD=CHANGE_YOUR_BOARD
```
### Flash
```python
cd build-YOURBOARD
esptool.py --chip esp32 -p /dev/ttyACM0 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 4MB 0x1000 bootloader/bootloader.bin 0x10000 micropython.bin 0x8000 partition_table/partition-table.bin
```
### Usage
* Install mpremote to connect by serial to your device
#### Generate ECC KEYS
```python
>>> import block
>>> block.genkeys()
(100993021156667751991690912130958668616676362468173674328997328032060127345282, 62203629151545849038293504441196077946057605346371203245067596528369427053776, 68608029864182071235580165887815523170041665266793571008314538354569768684678, 'P256')
```
#### Blockchain query ( EOS private block)
```python
mpremote cp block.py requests.py :
mp remote
>>> import block
block.get_info()
HTTP/1.1 200 OK
access-control-allow-origin: *
content-length: 839
content-type: application/json
server: WebSocket++/0.7.0
connection: close
{"server_version":"26a4d285","chain_id":"8b6404a00556c4a1ed0257869dbd41c9ba23349590f39eb90fec0eb9382469dd","head_block_num":2016452,"last_irreversible_block_num":2016451,"last_irreversible_block_id":"001ec4c37801042fdfa0e9cb9273a581b2d166348eb33e3413c5aa7bbef27f64","head_block_id":"001ec4c41773e88922737d74b2438ca542d4bb78aa89a19092dac619589e1472","head_block_time":"2022-12-31T16:42:35.000","head_block_producer":"eosio","virtual_block_cpu_limit":100000000,"virtual_block_net_limit":1048576000,"block_cpu_limit":99900,"block_net_limit":1048576,"server_version_string":"v2.1.0","fork_db_head_block_num":2016452,"fork_db_head_block_id":"001ec4c41773e88922737d74b2438ca542d4bb78aa89a19092dac619589e1472","server_full_version_string":"v2.1.0-26a4d285d0be1052d962149e431eb81500782991","last_irreversible_block_time":"2022-12-31T16:42:34.500"}
```
#### Sign ECDSA
```python
>>> block.sign("this is a test",100993021156667751991690912130958668616676362468173674328997328032060127345282,)
(107541375824991968821595279068801704738865834089565096653364975660063223096427, 87231512473538947533684998172244028284436404688771902937498298656736416974198)
```
## Push Transaction
```python
cooming soon
>>> block.push(from, to, amount, token, meta, private_key)
executed transaction: f1cdf230e847a8fe582ec615364b7fdbe52f5b462efaad052c107bad90f14d3b 152 bytes 1411 us
# eosio.token <= eosio.token::transfer {"from":"eosio","to":"black","quantity":"12.5000 BLACK","memo":"This is the money I owe you"}
# eosio <= eosio.token::transfer {"from":"eosio","to":"black","quantity":"12.5000 BLACK","memo":"This is the money I owe you"}
# black <= eosio.token::transfer {"from":"eosio","to":"black","quantity":"12.5000 BLACK","memo":"This is the money I owe you"}
```
### Todo List
Please feel free to add issues .
Push transaction BTC
Push Transacion ETH
Network peers
BTC, ETHEREUM explorer requests
Console interface
## Contributors
Feel free to pull request your forks !!
### Authors
Hecathomb
Citrix
### Libraries from projects
* ucrypto library https://github.com/dmazzella/ucrypto
### License
This is a MIT Free library .