All Projects → vkoskiv → VaporCoin

vkoskiv / VaporCoin

Licence: MIT license
A peer-to-peer blockchain ledger, built with Swift, using Vapor

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to VaporCoin

libjuice
JUICE is a UDP Interactive Connectivity Establishment library
Stars: ✭ 197 (+189.71%)
Mutual labels:  peer-to-peer
tordam
A library for peer discovery inside the Tor network
Stars: ✭ 13 (-80.88%)
Mutual labels:  peer-to-peer
tensorpeers
p2p peer-to-peer training of tensorflow models
Stars: ✭ 57 (-16.18%)
Mutual labels:  peer-to-peer
go-nimona
Peer to peer networking library
Stars: ✭ 42 (-38.24%)
Mutual labels:  peer-to-peer
solo
The simplest publication tool
Stars: ✭ 34 (-50%)
Mutual labels:  peer-to-peer
pop
Run a point-of-presence within Myel, the community powered content delivery network.
Stars: ✭ 28 (-58.82%)
Mutual labels:  peer-to-peer
meteor-video-chat
Simple id based video calling in meteor
Stars: ✭ 33 (-51.47%)
Mutual labels:  peer-to-peer
cypherpoker.js
An open source peer-to-peer poker platform with cryptocurrency integration written in JavaScript.
Stars: ✭ 72 (+5.88%)
Mutual labels:  peer-to-peer
pyrsia
Decentralized Package Network
Stars: ✭ 103 (+51.47%)
Mutual labels:  peer-to-peer
video-chat
Simple Web Application that offer you to create video meeting room using WebRTC and Socket.
Stars: ✭ 32 (-52.94%)
Mutual labels:  peer-to-peer
local-browser
Share your localhost in a new way (peer to peer browser)
Stars: ✭ 47 (-30.88%)
Mutual labels:  peer-to-peer
ascii-chat
A terminal-based peer-to-peer (P2P) end-to-end-encrypted (E2EE) video chat application with text messaging, written in OCaml. Supports up to 4 clients. Supports connections over internet and LAN.
Stars: ✭ 20 (-70.59%)
Mutual labels:  peer-to-peer
husarnet
Husarnet is a Peer-to-Peer VPN to connect your laptops, servers and microcontrollers over the Internet with zero configuration.
Stars: ✭ 128 (+88.24%)
Mutual labels:  peer-to-peer
The-Kademlia-Protocol-Succinctly
This is the companion repo for The Kademlia Protocol Succinctly by Marc Clifton. Published by Syncfusion.
Stars: ✭ 28 (-58.82%)
Mutual labels:  peer-to-peer
bifrost
Communications library & daemon for Go. Modular transports, links, pubsub (NATS), quic-over-websocket, libp2p, RPC, encryption, testing, and more.
Stars: ✭ 63 (-7.35%)
Mutual labels:  peer-to-peer
node-datachannel
Easy to use WebRTC data channels and media transport. libdatachannel node bindings.
Stars: ✭ 135 (+98.53%)
Mutual labels:  peer-to-peer
react-native-upi
A tiny module for Adding payments via UPI in your react native apps ❤️
Stars: ✭ 41 (-39.71%)
Mutual labels:  peer-to-peer
mytosis
🔀 A peer-to-peer data sync framework
Stars: ✭ 19 (-72.06%)
Mutual labels:  peer-to-peer
numerifides
A proposal for a system of decentralized trust, built on an open, public blockchain.
Stars: ✭ 14 (-79.41%)
Mutual labels:  peer-to-peer
SentryPeer
A distributed peer to peer list of bad actor IP addresses and phone numbers collected via a SIP Honeypot.
Stars: ✭ 108 (+58.82%)
Mutual labels:  peer-to-peer

VaporCoin

MIT License Build Status Swift 4.1

Synopsis

VaporCoin is a simple blockchain transaction ledger implementation, built in Swift using Vapor.

Goals

Functional, simple and easy to understand implementation that favors learning over robust security and usability. This is not intended to be an 'altcoin'

Specifications

Blocks:

  • Block time 60 seconds
  • 6000 transactions per block (Effective 100 txns/s rate)
  • Block difficulty updated every 60 blocks (hourly)
  • Block reward 50 full units/block (1 unit = 100 000 000 sub-units)
  • Block reward halved every 4 years (2 102 400 blocks at 525 600 blocks per year)
  • Total amount of full units will be roughly ~209 829 375

Transactions:

  • Simplified Bitcoin-style transactions, UTXO (No scripting capability)
  • ECDSA signatures

Proof of Work (PoW) algorithm:

  • Simplified Bitcoin-style. Single SHA256 hash of block header

Block header:

  • Previous hash
  • Merkle root of transactions in block
  • UNIX timestamp
  • Target difficulty
  • Nonce (32 bit)

TODO

  • JSON WebSocket p2p communication / Incomplete
  • Peer discovery
  • Locally hosted web interface to send and receive transactions, change settings and monitor blockchain status.
  • Fractional difficulty adjustment (Using BigInt)
  • Database logic
  • Proper node syncing
  • UTXO Transactions
  • Establish consensus

Getting started

brew install vapor/tap/vapor

In project root directory:
vapor update
vapor build 
vapor run

If you are using Xcode, make sure to select `My Mac` as target, and select the `Run` scheme.

Difficulty Factor

To mine a block, you can lower the diffBits amount in Droplet+Setup.swift line 17:

let miner = Miner(coinbase: "coinbaseAddressNotImplementedYet", diffBits: 20, threadCount: 4)

Tips

Get me some coffee:

ETH: 0x1e8e9c1a1b71ff88829b962cfa7190d074343b37
LTC: LZc2QcyZGuhHF18s96VAUPpByZq2S8yCsj
ZEC: t1UukAm25iRLTyTQfhX6WfRBzMjp8UCmy4a
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].