Coder Social home page Coder Social logo

hgecode / duino-coin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from revoxhere/duino-coin

0.0 0.0 0.0 23.86 MB

ᕲ Duino-Coin is a cryptocurrency that can be mined with Arduino boards.

Home Page: https://duinocoin.com

License: MIT License

Python 76.43% C++ 14.81% C 7.54% Ruby 0.48% JavaScript 0.68% Batchfile 0.04% Shell 0.03%

duino-coin's Introduction




Duino-Coin is a coin that can be mined with Computers, Raspberry Pis, Arduino and ESP boards and many more.


Key features:

  • Supported by a large number of platforms 💻
  • A friendly & growing community 👥
  • Easy to use & exchange 💱
  • Available everywhere 🌎
  • Beginner-friendly 😊
  • Cost-effective 💰
  • Easy to mine ⛏️
  • Open-source 📚

Technical specifications:

  • Coin supply: Infinite ♾️ (before December 2020: 350k coins)
  • Premine: <5k blocks (<500coins) 😎
  • Block time: Instant ⚡
  • Decimals: 20 🔢
  • Ticker: DUCO (ᕲ)
  • Algorithms: DUCO-S1, DUCO-S1A (+more planned) supported by Kolka system helping reward miners fairly ♐

Get started


Official Wallet Official Miners

Official getting started guides for creating an account and setting up miners on variety of devices are available on the official website (or .onion version).

Community-made software


Other miners:

Other tools:

This list will be actively updated.

Contributing


Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  • Fork the Project
  • Create your feature branch
  • Commit your changes
  • Make sure everything works as intended
  • Open a pull request

Master server API


To build your own Duino-Coin apps, here's a list of of commands the master server accepts. To start communication however, firstly you need to connect to the server. For now you have two options:

  • TCP connection (recommended) - server IP and port are static: tcp://51.15.127.80:2811
  • Websocket connection (through proxy - may not be available 100% of the time) - server IP and port are static: ws://51.15.127.80:15808

Make sure you don't create more than 24 connections per IP address and don't make more than 24 connections in time shorter than 30 seconds. If you do that, server may ban your IP for creating too much traffic and being a potential DDoS attacker. If you happen to get banned, wait about 315 seconds to get unbanned automatically.

After connecting, the server will send version number it's currently on (2.1). At this point you can send LOGI or REGI request to login or register an account or JOB,username to receive job for mining. To login, send LOGI,username,password - replace username and password with credentials. After sucessfull login server will send OK. If login fails, server will send NO,Reason of failed login.

To register, send REGI,username,password,email - again, by replacing words with respective data. After sucessfull registration server will send OK. If registration fails, server will send NO,Reason of failed registration.

After loging-in you have access to the following commands:

  • BALA - Server will return balance of current user
  • JOB - Server will return job for mining
    • You can also use JOB,username to mine without loging-in

    • You can ask for a specific difficulty for mining: JOB,username,DIFF (if you don't ask for specific difficulty, you'll get the network diff) where diff is one of the below:

      • AVR - diff 3 - used for official AVR boards mining
      • ESP - diff 75 - used for official ESP boards mining
      • MEDIUM - diff 30k - used as lower-diff PC mining
      • EXTREME - diff 950k - for custom high performance miners
    • When sending result, you can pass hashrate count and miner name along with rig name to display in the API, e.g.6801,250000,My Cool Miner v4.20,House Miner indicates that result 6801 was found, hashrate was 250000H/s (250kH/s) and software name was My Cool Miner v4.20 with rig named House Miner

      • If hashrate is not received, server estimates it from time it took to receive share and sets "Is estimated": "True" in the API
      • If software name is not received, server uses "Software": "Unknown" in the API
      • If rig name is not received, server uses "Identifier": "None" in the API
  • SEND,-,recipientUsername,amount - Send funds to someone, server will return a message about state of the transaction
  • GTXL,username,num - Get last num of transactions involving username (both deposits and withdrawals)
  • CHGP,oldPassword,newPassword - Change password of current user
  • WRAP,amount,tronAddress - Wrap DUCO on Tron network (wDUCO)
  • wDUCO unwrapping protocol:
    1. Send a Tron transaction with method initiateWithdraw(ducoUsername,amount)
    2. Send a server call UNWRAP,amount,tronAddress

C DUCO library


If you want to easily access Duino-Coin API with your C apps, there is libduco made by @Sarah. @ygboucherk is also working on one wich you can access here duino-coin-C-lib

Python3 DUCO API module


If you want to easily access Duino-Coin API with your Python3 apps, @connorhess made an official module for that here: duco_api.py and you can find the documentation for it here: README.md

Duino-coin for the AUR!


You can get the whole duino-coin bundle now on the AUR.

Just install it with your favourite AUR Helper (for example: yay):

  1. Install git

sudo pacman -S git

  1. You have to clone the yay repo.

sudo git clone https://aur.archlinux.org/yay-git.git

  1. Get into the Folder

cd yay-git

  1. Next, build the package using the makepkg command below.

makepkg -si

  1. Now you can use yay to install AUR packages

yay -S duino-coin

  1. Have fun mining!

License


Duino-Coin is mostly distributed under the MIT License. See LICENSE file for more information.

Major frameworks used by Duino-Coin:

Officially tested devices


  • Arduino Uno Rev3 (ATmega328p @ 16MHz 5V) - ~170 H/s - Arduino Code & Miner
  • Arduino Pro Mini (ATmega328p @ 16MHz 5V) - ~170 H/s - Arduino Code & Miner
  • NodeMCU (ESP8266 @ 80 MHz) - ~1,15 kH/s - ESP8266 Code
  • NodeMCU (ESP8266 @ 160 MHz) - ~2,15 kH/s - ESP8266 Code
  • ESP32 dual-threaded - ~13 kH/s (6 kH/s (core1) + 7 kH/s (core2)) - Multithreaded ESP32 code

Hashrate Calculators for AVR/ESP8266 platforms are available in the Useful tools branch.

Terms of usage


1. Duino-Coins are earned by miners with a process called mining.
2. Mining is described as using DUCO-S1 algorithm (explained in Duino-Coin Whitepaper), in which finding a correct result to a mathematical problem gives miner a reward.
3. Mining can be officially done using CPUs, AVR boards (e.g. Arduino boards), Single-board computers (e.g. Raspberry Pi boards), ESP32/8266 boards with the preffered usage of official miners (other officially allowed miners are described in the upper part of README).
4. Even though Duino-Coin aims to fairly reward all the miners, mining with GPUs, ASICs, FPGAs is not allowed due to obvious reasons.
5. Any users spotted using inappropriate/overpowered hardware can be banned from the network.
6. Banning involves blocking user from accessing his account and removing his coins.
7. Only coins earned legally are elgible for the exchange.
8. These terms of usage can change at any time without prior notice and will be expanded in the future.
9. User using Duino-Coin agrees to comply with the above rules.

Developers


Special thanks



Project Link: https://github.com/revoxhere/duino-coin/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.