(BlockchainTH) Blockchain Simulation by 9Maxxis
Project description
PyPI: https://pypi.org/project/blockchain_simulationTH/
โปรแกรมนี้เป็นโปรแกรมภาษาไพทอนที่ใช้สำหรับจำลองการทำงานของเครือข่ายบล็อกเชนอย่างง่ายเพื่อเป็นแหล่งเรียนรู้สำหรับบุคคลทั่วไปที่มีความสนใจในเทคโนโลยีบล็อกเชนให้สามารถศึกษาการจำลองการทำงานของเครือข่ายบล็อกเชนที่ผู้จัดทำได้สร้างขึ้น เพื่อประกอบความรู้และความเข้าใจในเทคโนโลยีบล็อกเชน
ปล1. ต้องดาวโหลด Python ก่อนจาก https://www.python.org/ ปล2. ผู้จัดทำยังมือใหม่ หากผิดพลาดประการใด ทำขออภัยมา ณ ที่นี้ด้วยนะจ๊ะ ปล3. ขอบคุณวิธีสร้าง Python packet เป็นของตัวเองและวิธีอัพโหลด Packet ไปยัง PyPI.org จาก https://www.youtube.com/watch?v=1egtTXUJ3-4
วิธีติดตั้ง
เปิด CMD / Terminal
pip install blockchain_simulationTH
วิธีใช้
[STEP 1]เปิด IDLE ขึ้นมาแล้วพิมพ์…
import blockchain_simulationTH
[STEP 2] สร้างผู้ใช้
ชื่อตัวแปร(เป็นอะไรก็ได้) = Client('ชื่อของผู้ใช้')
-เช่น
#Client A
A = Client('A')
#Client B
B = Client('B')
#Client C
C = Client('C')
[STEP 3] สร้าง Coinbase Transaction สำหรับเป็นเงินตั้งต้นให้แก่ผู้ใช้แต่ละคน
ชื่อตัวแปร(เป็นอะไรก็ได้) = Coinbase(ชื่อธุรกรรม(เป็นอไรก็ได้) ,ชื่อตัวแปรผู้ใช้ในขั้นตอนที่ 1 ,ปริมาณเงินที่ต้องการ)
-เช่น
coinbasetx1 = Coinbase('coin1',A,1000)
coinbasetx2 = Coinbase('coin2',B,1000)
coinbasetx3 = Coinbase('coin3',C,1000)
[STEP 4] สร้าง Block แรกของระบบ
ชื่อตัวแปร(เป็นอะไรก็ได้) = Genesisblock(ชื่อ Coinbase Transaction ในขั้นตอนที่แล้ว)
-เช่น
block = Genesisblock('coin1','coin2','coin3')
[STEP 5} กระบวนการ Proof of work
ชื่อตัวแปร(เป็นอะไรก็ได้) = mine(ชื่อบล็อกในขั้นตอนที่แล้ว,prefix zero)
-prefix zero คือ จำนวนบิตเลขศูนย์เริ่มต้นของ block hash ซึ่งเป็นผลลัพธ์ของกระบวนการ Proof of work -โดยเป็น prefix zero เป็นการกำหนดค่าเป้าหมาย (Target) ในกระบวนการ Proof of work ดังสมการ
Target = 2**(256-Prefix zero)
-เช่น
POW = mine(block,3)
[STEP 6] สร้างธุรกรรม
ชื่อตัวแปร(เป็นอะไรก็ได้) = Transaction(ชื่อธุรกรรม(เป็นอะไรก็ได้),ชื่อของผู้ใช้ที่ต้องการให้เป็นผู้ส่ง, ชื่อของผู้ใช้ที่ต้องการให้เป็นผู้รับ,ปริมาณเงินที่ผู้ส่งจะโอนไปยังผู้รับ, ชื่อของธุรกรรมที่อ้างอิงถึง,ลำดับของเอาต์พุตของธุรกรรมที่ผู้ส่งอ้างอิงถึงนั้น)
ปล. สำหรับ Coinbase Transaction มีลำดับเอาต์พุตของธุรกรรมแค่ลำดับเดียว คือ index = 0 แต่ Transaction ทั่วไปมีลำดับเอาต์พุตของธุรกรรม 2 ลำดับ ดังนี้ index = 0 คือ ส่งกลับให้ตัวเอง และ index = 1 คือ ส่งให้ผู้อื่น
-เช่น
tx1 = Transaction('tx1',A,B,50,'coin1',0)
tx2 = Transaction('tx2',B,C,100,'coin2',0)
tx3 = Transaction('tx3',C,A,70,'coin3',0)
[STEP 7] สร้างบล็อก
ชื่อตัวแปร(เป็นอะไรก็ได้) = Block(ชื่อธุรกรรมในขั้นตอนที่แล้ว)
-เช่น
block1 = Block('tx1','tx2','tx3')
[STEP 8] กระบวนการ Proof of work
ชื่อตัวแปร(เป็นอะไรก็ได้) = mine(ชื่อบล็อกในขั้นตอนที่แล้ว,prefix zero)
-เช่น
POW = mine(block1,5)
[STEP 9] ตรวจสอบเงินในบัญชีของผู้ใช้แต่ละคน
print(ชื่อตัวแปรของผู้ใช้ในขั้นตอนที่ 1.view_balance())
print(A.view_balance())
print(B.view_balance())
print(C.view_balance())
[STEP 10] ทำซ้ำขั้นตอนที่ 6-8 ไปเรื่อย ๆ จนกว่าท่านจะพอใจ
พัฒนาโดย: 9Maxxis
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for blockchain_simulationTH-0.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5bda76e6c2b18a5e2a5d46ca98ffa3dcaf0eed2be5c1203370a5bf317ad534c |
|
MD5 | 340f9568c49391e346519e5a7499c144 |
|
BLAKE2b-256 | 5aebb16d6a7e91cde19fe721e6943b16a44a5390d809e833439007c799c33e8e |