All Projects → lukepark327 → educhain

lukepark327 / educhain

Licence: Apache-2.0 License
an instructional purpose blockchain.

Programming Languages

javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to educhain

mbt-bundle
A core library for Sicope Model, a Model-Based Testing tool for web application.
Stars: ✭ 19 (-9.52%)
Mutual labels:  test-automation, testing-tools
extensiveautomation-server
Extensive Automation server
Stars: ✭ 19 (-9.52%)
Mutual labels:  test-automation, testing-tools
toradocu
Toradocu - automated generation of test oracles from Javadoc documentation
Stars: ✭ 39 (+85.71%)
Mutual labels:  test-automation, testing-tools
main
Mocks Server monorepo
Stars: ✭ 109 (+419.05%)
Mutual labels:  test-automation, testing-tools
vm-automation
VirtualBox automation using Python
Stars: ✭ 1 (-95.24%)
Mutual labels:  test-automation, testing-tools
karate
Test Automation Made Simple
Stars: ✭ 6,384 (+30300%)
Mutual labels:  test-automation, testing-tools
Telegraf-Test
Telegraf Test - Simple Test ToolKit of Telegram Bots
Stars: ✭ 22 (+4.76%)
Mutual labels:  test-automation, testing-tools
carina
Carina automation framework: Web, Mobile, API, DB etc testing...
Stars: ✭ 652 (+3004.76%)
Mutual labels:  test-automation, testing-tools
rfswarm
Robot Framework Swarm
Stars: ✭ 68 (+223.81%)
Mutual labels:  test-automation, testing-tools
software-testing-resource-pack
Various files useful for manual testing and test automation etc.
Stars: ✭ 38 (+80.95%)
Mutual labels:  test-automation, testing-tools
fast-test
fast-test是基于Java的自动化测试工具集合,包含自动测试平台(后端Vue),自动测试框架,可以帮助测试人员快速构建各类测试工具和自动化测试框架。请点星支持!
Stars: ✭ 112 (+433.33%)
Mutual labels:  test-automation, testing-tools
Wasmite
Now WebAssembly has proper testing, unit-testing and debugging 🤗
Stars: ✭ 20 (-4.76%)
Mutual labels:  test-automation, testing-tools
door-controller-test-tool
Door controller test tool for physical access control devices. (THIS PROJECT IS NO LONGER MAINTAINED)
Stars: ✭ 13 (-38.1%)
Mutual labels:  simulator, test-automation
jest-gql
✅🚀GraphQL based tests for Jest and Apollo
Stars: ✭ 33 (+57.14%)
Mutual labels:  test-automation, testing-tools
qt monkey
Tool for testing Qt based applications
Stars: ✭ 39 (+85.71%)
Mutual labels:  test-automation, testing-tools
AutoMeter-API
AutoMeter-API是一款针对分布式服务,微服务API功能和性能一体的自动化测试平台,一站式解决应用,服务,API,环境管理,用例,条件,测试场景,计划,测试报告,功能/性能测试兼容支持的一体化工作平台
Stars: ✭ 105 (+400%)
Mutual labels:  test-automation, testing-tools
sandboni-core
Sandboni - Java test optimization library which reduces test execution time without compromising quality
Stars: ✭ 27 (+28.57%)
Mutual labels:  test-automation, testing-tools
test junkie
Highly configurable testing framework for Python
Stars: ✭ 72 (+242.86%)
Mutual labels:  test-automation, testing-tools
IO-TESTER
A functional test framework
Stars: ✭ 32 (+52.38%)
Mutual labels:  test-automation, testing-tools
karate-runner
VSCode Extension for Karate
Stars: ✭ 23 (+9.52%)
Mutual labels:  test-automation, testing-tools

license version node python

edu-chain :: Instructional Blockchain

educhain_logo

educhain is an instructional purpose blockchain.
#blockchain #simulator #testing-tools #test-automation

The 6th D2 CAMPUS FEST Finalists
The main project of Sogang Univ. Blockchain Lab.
Based on one-chain
Based on blockchain-simulator

Overview

Fill in the blanks, simulate your own code, check the score, and improve it.
Make your own blockchain core.

It was created at Sogang University's Blockchain Lab. by Luke Park (Sanghyeon Park).

approach

educhain is a simple blockchain implementation for instructional and educational purpose. Like Pintos, simple operating system framework for the 80x86 architecture, educhain project is intended to introduce undergraduates to concepts in blockchain core design and implementation.

The simulator written in python automatically tests your code(s) and provides you some important information.
There are some examples of important information...

  • Reorganization ratio.
  • Effective throughput and nodes behind ratio.
  • TPS(Transactions Per Seconds).

educhain2

educhain version 2.0.0 targets a more general blockchain implementation. Now students can implement the blockchain core in various ways. For example, you can implement a consensus algorithm in PoW(Proof-of-Work), PoS(Proof-of-Stake), and PoA(Proof-of-authority); whatever you want. Not only consensus parts, but also block or blockchain structure, validation processes, communication parts, and identification.

Get educhain version 1.0.0 at v1.0.0 branch.

Problem Solving

How to Use

video

Click on the image above to play the video.

Environments

Blockchain core and its accompanying parts are written in Node.js. Testing or simulating parts are written in Python.

  • Node.js v8.11.3 (>=4.3.2)
  • Python 3.6.7

Start a Simulation

Preconditions

$ sh preconditions.sh

Run

$ sh run.sh

or

$ python3 main.py --nodes=24 --neighbors=3

There are several arguments that control simulation settings.

$ python3 main.py --help
  --steps STEPS         The number of simulation steps.
  --nodes NODES         The number of full nodes constructing blockchain.
  --neighbors NEIGHBORS
                        Each node initiates links to the amount of 'neighbors'
                        selected neighbors.
  --timeout TIMEOUT     Maximum waiting time. (seconds)
  --prop_delay_avg PROP_DELAY_AVG
                        The average value of propagation delay. (milliseconds)
  --prop_delay_std PROP_DELAY_STD
                        The standard deviation of propagation delay.
                        (milliseconds)
  --freq_avg FREQ_AVG   The average value of frequency. (milliseconds)
  --freq_std FREQ_STD   The standard deviation of frequency. (milliseconds)
  --master_http MASTER_HTTP
                        The HTTP port of a master node.
  --master_p2p MASTER_P2P
                        The P2P port of a master node.
  --https HTTPS         The base number of HTTP ports.
  --p2ps P2PS           The base number of P2P ports.

Cleanup

$ sh cleanup.sh

APIs

Get blockchain

curl http://127.0.0.1:3001/blocks

You can pretty-print JSON with:

curl http://127.0.0.1:3001/blocks | python -m json.tool

Python >= 2.6 required.

Get connected peers

curl http://127.0.0.1:3001/peers

Get Address

curl http://127.0.0.1:3001/address

Trouble Shootings

  • if ImportError: No module named requests occurs:
$ pip install requests
  • if Error: listen EADDRINUSE :::3001 occurs:
$ killall npm
  • if 'Time out' occurs:
$ sh preconditions.sh

References

License

The educhain project is licensed under the Apache License, Version 2.0, also included in our repository in the LICENSE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].