Skip to content
This repository has been archived by the owner on Oct 4, 2019. It is now read-only.

Hello World in C++ #355

Open
wants to merge 69 commits into
base: Public-Branch
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
c1e0174
Create java_saidHello
hasithachamod Oct 24, 2017
70fa580
Merge pull request #6 from hasithachamod/patch-1
LordDraagonLive Oct 24, 2017
99a211a
Merge pull request #7 from LordDraagonLive/Public-Branch
LordDraagonLive Oct 24, 2017
8a6e766
Update README.md
LordDraagonLive Oct 24, 2017
302a3b0
Update README.md
LordDraagonLive Oct 24, 2017
9532814
Update README.md
LordDraagonLive Oct 24, 2017
90ed301
Update README.md
LordDraagonLive Oct 24, 2017
96fcd89
Create hello_world.py
auro2677 Oct 24, 2017
f987108
Create hello_world_sandro1211.pas
spirtskhalava Oct 24, 2017
bfc0685
Update CONTRIBUTING
LordDraagonLive Oct 24, 2017
8b0e1aa
Merge pull request #40 from sandro1211/master
LordDraagonLive Oct 24, 2017
8934751
Update CONTRIBUTING
Jeyveen7 Oct 24, 2017
658712c
add hello world c++
asce4s Oct 24, 2017
5a7be57
Merge pull request #45 from Jeyveen7/patch-1
LordDraagonLive Oct 24, 2017
764301c
Merge pull request #50 from asce4s/master
LordDraagonLive Oct 24, 2017
dc8d25c
Create Hello_world
LordDraagonLive Oct 24, 2017
012af4b
Merge pull request #51 from LordDraagonLive/LordDraagonLive-patch-1
LordDraagonLive Oct 24, 2017
97fdf84
Merge pull request #34 from auro2677/patch-1
LordDraagonLive Oct 24, 2017
13bc23c
Added Hello world for Angular js
AjaySingaraju Oct 28, 2017
a7e3305
Merge pull request #117 from AjaySingaraju/hello-world-angular
LordDraagonLive Oct 28, 2017
0943946
Update README.md
LordDraagonLive Oct 28, 2017
9142fa0
Updated the project for 2018
LordDraagonLive Oct 1, 2018
73866cb
Updated for 2018
LordDraagonLive Oct 1, 2018
ce988f7
added ml project
Oct 1, 2018
dc9611c
Update README.md
TG1999 Oct 1, 2018
c37ca65
Update README.md
TG1999 Oct 1, 2018
de18d50
Update README.md
TG1999 Oct 1, 2018
9b1c5e5
Update README.md
TG1999 Oct 1, 2018
cd9fb99
Create CODE_OF_CONDUCT.md
LordDraagonLive Oct 1, 2018
5a5e8d8
Merge pull request #271 from LordDraagonLive/add-code-of-conduct-1
LordDraagonLive Oct 1, 2018
dc84d40
Update issue templates
LordDraagonLive Oct 1, 2018
05cea22
Merge pull request #272 from LordDraagonLive/LordDraagonLive-patch-2
LordDraagonLive Oct 1, 2018
6d04247
Create PULL_REQUEST_TEMPLATE.md
LordDraagonLive Oct 1, 2018
72750f2
Merge pull request #273 from LordDraagonLive/LordDraagonLive-patch-2
LordDraagonLive Oct 1, 2018
2d3cda3
added a simple blockchain based program
aagarwal1012 Oct 1, 2018
513083f
dded myself to contributors and hell.cpp
sam-mittal Oct 1, 2018
7ed05a8
Merge pull request #281 from sam-mittal/master
LordDraagonLive Oct 2, 2018
e14bf62
Create HelloWorld.f95
ShahSheel Oct 2, 2018
c7e2e8c
Update CONTRIBUTING
ShahSheel Oct 2, 2018
2d8f60b
Hello World in C
dilekuzulmez Oct 2, 2018
dbe0edd
add hello word js and contributing link
Oct 3, 2018
b9f9e9a
Merge pull request #295 from gitKendra/kendrak
LordDraagonLive Oct 3, 2018
cf3e516
Merge pull request #288 from dilekuzulmez/hello_world
LordDraagonLive Oct 3, 2018
21ca9d0
Merge branch 'master' into master
LordDraagonLive Oct 3, 2018
e707efb
Merge pull request #286 from ShahSheel/master
LordDraagonLive Oct 3, 2018
12539ff
Merge pull request #270 from TG1999/master
LordDraagonLive Oct 3, 2018
a988dc2
Merge pull request #275 from aagarwal1012/blockchain
LordDraagonLive Oct 3, 2018
c8fbf26
added hello world in python3
guvi007 Oct 3, 2018
9faf87e
Added diabetes predictor project
srinivasmachiraju Oct 3, 2018
51171d9
Merge pull request #297 from srinivasmachiraju/master
LordDraagonLive Oct 3, 2018
e70924a
Python Hello World
HelenKing029 Oct 3, 2018
04c0429
Merge pull request #296 from guvi007/master
LordDraagonLive Oct 4, 2018
8d739c0
Merge pull request #299 from HelenKing029/master
LordDraagonLive Oct 4, 2018
3e300cc
Add Hello World in setlX
Oct 5, 2018
127982a
Merge pull request #313 from florian19982/change-hello
LordDraagonLive Oct 5, 2018
492f878
corrected formatting
sudoplox Oct 6, 2018
827fc20
Merge pull request #320 from Sudhanshu36/patch-2
LordDraagonLive Oct 9, 2018
6442443
Add files via upload
iamvibhorsingh Oct 12, 2018
b51acbc
Hello world in Julia
Aishh2k Oct 12, 2018
c205ece
Create simple_linear_regrssion
harsh2ai Oct 13, 2018
8df30c0
Merge pull request #1 from hr21/hr21-patch-1
harsh2ai Oct 13, 2018
a677125
Create boston_dataset.py
harsh2ai Oct 13, 2018
6674e3d
Merge pull request #2 from hr21/hr21-patch-2
harsh2ai Oct 13, 2018
5ab5d39
Add Evan to contributers
uterdijon Oct 13, 2018
be24b0d
add hello world
uterdijon Oct 13, 2018
4ffb116
Merge pull request #335 from uterdijon/add_evan
LordDraagonLive Oct 15, 2018
04965ce
Merge pull request #334 from hr21/master
LordDraagonLive Oct 15, 2018
cc9e6df
Merge pull request #333 from Aishh2k/master
LordDraagonLive Oct 15, 2018
f8a89a1
Merge pull request #331 from visin/master
LordDraagonLive Oct 17, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
35 changes: 35 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: Bug report
about: Create a report to help us improve

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: Feature request
about: Suggest an idea for this project

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
5 changes: 5 additions & 0 deletions Block_Chain_Projects/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# hacktoberfest
Participate in Hacktoberfest by contributing to any Open Source project on GitHub! Here is a Advance project for contributors. #hacktoberfest


# - To submit a pull request to Block_Chain_Project
300 changes: 300 additions & 0 deletions Block_Chain_Projects/blockchain.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,300 @@
import hashlib
import json
from time import time
from urllib.parse import urlparse
from uuid import uuid4

from flask import Flask, jsonify, request


class Blockchain:
def __init__(self):
self.current_transactions = []
self.chain = []
self.nodes = set()

# Create the genesis block
self.new_block(previous_hash='1', proof=100)

def register_node(self, address):
"""
Add a new node to the list of nodes

:param address: Address of node. Eg. 'http://192.168.0.5:5000'
"""

parsed_url = urlparse(address)
if parsed_url.netloc:
self.nodes.add(parsed_url.netloc)
elif parsed_url.path:
# Accepts an URL without scheme like '192.168.0.5:5000'.
self.nodes.add(parsed_url.path)
else:
raise ValueError('Invalid URL')


def valid_chain(self, chain):
"""
Determine if a given blockchain is valid

:param chain: A blockchain
:return: True if valid, False if not
"""

last_block = chain[0]
current_index = 1

while current_index < len(chain):
block = chain[current_index]
print(f'{last_block}')
print(f'{block}')
print("\n-----------\n")
# Check that the hash of the block is correct
last_block_hash = self.hash(last_block)
if block['previous_hash'] != last_block_hash:
return False

# Check that the Proof of Work is correct
if not self.valid_proof(last_block['proof'], block['proof'], last_block_hash):
return False

last_block = block
current_index += 1

return True

def resolve_conflicts(self):
"""
This is our consensus algorithm, it resolves conflicts
by replacing our chain with the longest one in the network.

:return: True if our chain was replaced, False if not
"""

neighbours = self.nodes
new_chain = None

# We're only looking for chains longer than ours
max_length = len(self.chain)

# Grab and verify the chains from all the nodes in our network
for node in neighbours:
response = requests.get(f'http://{node}/chain')

if response.status_code == 200:
length = response.json()['length']
chain = response.json()['chain']

# Check if the length is longer and the chain is valid
if length > max_length and self.valid_chain(chain):
max_length = length
new_chain = chain

# Replace our chain if we discovered a new, valid chain longer than ours
if new_chain:
self.chain = new_chain
return True

return False

def new_block(self, proof, previous_hash):
"""
Create a new Block in the Blockchain

:param proof: The proof given by the Proof of Work algorithm
:param previous_hash: Hash of previous Block
:return: New Block
"""

block = {
'index': len(self.chain) + 1,
'timestamp': time(),
'transactions': self.current_transactions,
'proof': proof,
'previous_hash': previous_hash or self.hash(self.chain[-1]),
}

# Reset the current list of transactions
self.current_transactions = []

self.chain.append(block)
return block

def new_transaction(self, sender, recipient, amount):
"""
Creates a new transaction to go into the next mined Block

:param sender: Address of the Sender
:param recipient: Address of the Recipient
:param amount: Amount
:return: The index of the Block that will hold this transaction
"""
self.current_transactions.append({
'sender': sender,
'recipient': recipient,
'amount': amount,
})

return self.last_block['index'] + 1

@property
def last_block(self):
return self.chain[-1]

@staticmethod
def hash(block):
"""
Creates a SHA-256 hash of a Block

:param block: Block
"""

# We must make sure that the Dictionary is Ordered, or we'll have inconsistent hashes
block_string = json.dumps(block, sort_keys=True).encode()
return hashlib.sha256(block_string).hexdigest()

def proof_of_work(self, last_block):
"""
Simple Proof of Work Algorithm:

- Find a number p' such that hash(pp') contains leading 4 zeroes
- Where p is the previous proof, and p' is the new proof

:param last_block: <dict> last Block
:return: <int>
"""

last_proof = last_block['proof']
last_hash = self.hash(last_block)

proof = 0
while self.valid_proof(last_proof, proof, last_hash) is False:
proof += 1

return proof

@staticmethod
def valid_proof(last_proof, proof, last_hash):
"""
Validates the Proof

:param last_proof: <int> Previous Proof
:param proof: <int> Current Proof
:param last_hash: <str> The hash of the Previous Block
:return: <bool> True if correct, False if not.

"""

guess = f'{last_proof}{proof}{last_hash}'.encode()
guess_hash = hashlib.sha256(guess).hexdigest()
return guess_hash[:4] == "0000"


# Instantiate the Node
app = Flask(__name__)

# Generate a globally unique address for this node
node_identifier = str(uuid4()).replace('-', '')

# Instantiate the Blockchain
blockchain = Blockchain()


@app.route('/mine', methods=['GET'])
def mine():
# We run the proof of work algorithm to get the next proof...
last_block = blockchain.last_block
proof = blockchain.proof_of_work(last_block)

# We must receive a reward for finding the proof.
# The sender is "0" to signify that this node has mined a new coin.
blockchain.new_transaction(
sender="0",
recipient=node_identifier,
amount=1,
)

# Forge the new Block by adding it to the chain
previous_hash = blockchain.hash(last_block)
block = blockchain.new_block(proof, previous_hash)

response = {
'message': "New Block Forged",
'index': block['index'],
'transactions': block['transactions'],
'proof': block['proof'],
'previous_hash': block['previous_hash'],
}
return jsonify(response), 200


@app.route('/transactions/new', methods=['POST'])
def new_transaction():
values = request.get_json()

# Check that the required fields are in the POST'ed data
required = ['sender', 'recipient', 'amount']
if not all(k in values for k in required):
return 'Missing values', 400

# Create a new Transaction
index = blockchain.new_transaction(values['sender'], values['recipient'], values['amount'])

response = {'message': f'Transaction will be added to Block {index}'}
return jsonify(response), 201


@app.route('/chain', methods=['GET'])
def full_chain():
response = {
'chain': blockchain.chain,
'length': len(blockchain.chain),
}
return jsonify(response), 200


@app.route('/nodes/register', methods=['POST'])
def register_nodes():
values = request.get_json()

nodes = values.get('nodes')
if nodes is None:
return "Error: Please supply a valid list of nodes", 400

for node in nodes:
blockchain.register_node(node)

response = {
'message': 'New nodes have been added',
'total_nodes': list(blockchain.nodes),
}
return jsonify(response), 201


@app.route('/nodes/resolve', methods=['GET'])
def consensus():
replaced = blockchain.resolve_conflicts()

if replaced:
response = {
'message': 'Our chain was replaced',
'new_chain': blockchain.chain
}
else:
response = {
'message': 'Our chain is authoritative',
'chain': blockchain.chain
}

return jsonify(response), 200


if __name__ == '__main__':
from argparse import ArgumentParser

parser = ArgumentParser()
parser.add_argument('-p', '--port', default=5000, type=int, help='port to listen on')
args = parser.parse_args()
port = args.port

app.run(host='0.0.0.0', port=port)
Loading