Skip to main content

(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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blockchain_simulationTH-0.0.3.tar.gz (21.3 kB view details)

Uploaded Source

File details

Details for the file blockchain_simulationTH-0.0.3.tar.gz.

File metadata

  • Download URL: blockchain_simulationTH-0.0.3.tar.gz
  • Upload date:
  • Size: 21.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.25.1 requests-toolbelt/0.9.1 urllib3/1.26.6 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.6

File hashes

Hashes for blockchain_simulationTH-0.0.3.tar.gz
Algorithm Hash digest
SHA256 a5bda76e6c2b18a5e2a5d46ca98ffa3dcaf0eed2be5c1203370a5bf317ad534c
MD5 340f9568c49391e346519e5a7499c144
BLAKE2b-256 5aebb16d6a7e91cde19fe721e6943b16a44a5390d809e833439007c799c33e8e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page