Code Monkey home page Code Monkey logo

aurum_client's Introduction

Aurum Client

drawing

Setup

  • Navigate to the releases page
  • Download the archive file compatible with your operating system.
  • Extract the archive in a secure folder.
  • Run client --setup to setup your wallet.
  • Your wallet address, balance, and state nonce will be displayed.
  • A new file will be generated called aurum_wallet.json
  • It is strongly recommended you make a copy of your aurum_wallet.json and store it in a secure location.
  • This file contains your private key. If you lose your key you will be unable to access your account.

Usage

  • To display your wallet contents at any time, run client --info
  • To sync your wallet with the blockchain, run client --update
  • To send Aurum, run client --send <AmountToBeSent> --to <RecipientWalletAddress>

Project

Aurum is a proprietary UIC ACM blockchain project. The current planned use case is a token to be exchanged among students. The aurum client is for accessing the Aurum network. If you wish to be a producer, please visit Project Aurum for the producer application.

Contribute

If you would like to contribute, please comment on an issue you'd like to take on. Then, make a branch based on dev. Once you've completed the issue make a pull request from your branch to dev. If you have any questions simply ask in a comment on the issue.

Credits

  • First and foremost a big thank you to everyone who has worked on the SIG Blockchain team, both past and present.
  • Thank you to the Association of Computing Machinery UIC Chapter, for providing the support that SIG Blockchain has needed to thrive.
  • Shoutout to calvinmorett for providing us with the awesome Aurum logo.

License

MIT License

  • See the LICENSE file for details.

aurum_client's People

Contributors

kastolars avatar ramirez915 avatar vineet77 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

aurum_client's Issues

MAC release

  • make a branch based off dev called mac_release
  • at project root, run go build -o client
  • remove main.go
  • remove internal/ (yes the whole directory)
  • test to make sure that client -h works

No pull request is needed, all this code remains on this branch.

Settings command

Currently config.json has the following structure:

{
    "Version": 1,
    "ProducerAddress": "localhost:12000"
}

context: main.go

  • Add a flag that takes an argument and sets the Version to that.
  • Add a flag that takes an argument in the form of x.x.x.x:x and changes the ProducerAddress in config.json to that.
  • Make sure there's error checking on both arguments before changing anything

Resource: https://golang.org/pkg/flag/

New GetProducers Request

New Request called GetProducers

  • Add endpoint PeerList = http://blockchain.acmapp.tech/peers
  • Function should return a GET request to PeerList and returns a slice of strings
  • AAA test

Add contract history slice to wallet

We will introduce contract histories in our wallet so that people can view the history of all their transactions made.

  • Create a struct called ContractSummary, should have a field that designates "to" or "from", a recipient wallet address, and an amount
  • Add a field to the wallet that is a slice of these structs
  • Confirm that it's added to the json wallet.

Add Instructions to README

What branch to download, how to setup, describe the different commands, how to maintain integrity of private key, etc.

  • Download links for each OS
  • How to set up
  • List all commands that can be used with binary
  • Suggestion to copy aurum_wallet.json and store in a secure location. Include warning about sensitivty of the private key.

Addressbook feature

Suppose wallet address 123456789abcdef123456789abcdefis a made up wallet address for Richie.

I want to be able to run

./client -save 123456789abcdef123456789abcdef -as Richie

So I can run

./client -send 1000 -to Richie

or

./client -send 1000 -to 123456789abcdef123456789abcdef

And they will both do the same thing.

Suggestion is to create a JSON file called addressbook that stores key:value pairs of name:wallet address. Running a contract command should first check to see if the string is a key in the addressbook, and if it is, use the value.

New encrypt/decrypt functions

Simply use the functions found here:
https://www.thepolyglotdeveloper.com/2018/02/encrypt-decrypt-data-golang-application-crypto-packages/

  • new package encrypt with library and test files
  • use hashing.New function in our own hashing package instead of createHash
  • Instead of calling panic, return the error where applicable
  • encrypt function
  • decrypt function
  • one test that encrypts a string, then decrypts it and asserts it is equal to the test string
  • test follows AAA unit test format (arrange, act, assert)

ValidRecip containing only hex characters

I'd like the ValidRecip function to check to make sure that the wallet address entered only contains hex characters. Valid hex characters are: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f

merge dev with master

Currently Master branch does not have the README.md we would like to display (dev does).

Input check for recipient in contract request flag

When using the -to flag in main, proofread the input and make sure it is 64 characters long. If it isn't, report the problem and exit.

  • Input check for -to argument rejects strings who's length is not equal to 64.
  • Test that supports both accepted and rejected cases.

Recover wallet with private key

package context wallet

Given a hex-string-encoded, PEM-encoded private key, generate an aurum_wallet.json with that private key and all other fields set to zero.

Windows release

  • make a branch based off dev called windows_release
  • at project root, run go build -o client
  • remove main.go
  • remove internal/ (yes the whole directory)
  • test to make sure that client -h works

No pull request is needed, all this code remains on this branch.

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.