1. Ryler Sturden

    Ryler Sturden Member Staff Member MC Developer

    Running It
    Double click the mc64.exe file to launch MicroCash. Currently it listens for peer to peer connections on a UDP port. It also has an in built web browser which you can access by typing http://127.0.0.1 into your web browser.

    Linux Version Notes:
    Currently, the Linux build doesn't open up a terminal when it runs, so it's pretty silent. If you run it from a terminal, you'll see the same text debug output messages as the Windows build, in case you're interested in that stuff. You can also shut it down with a Ctrl-C, whereas just double-clicking it to run it will require ending the task less gracefully.

    Download
    Please see below the post for the attachment. You may need to be logged in to download it.

    SYSTEM REQUIREMENTS
    -Windows Vista, 7, 8, 10 or Linux (any distro with 64bit support)
    -64bit CPU
    -4GB RAM
    -IPv4 or IPv6 Network card

    NOTES
    MicroCash is a single binary solution requiring no DLLs/libraries or anything else besides noted above, written exclusively in C++ using the C++11 standard (and eventually C++17) and compiled with all optimizations to native x64 code. Is is portable, in that you can put it in any directory and it only interacts with the contents in that directory, it does not use any system registration functions unless wanted, for example installing as a windows service.

    MicroCash will not officially support 32bit or provide 32bit builds due to limits in RAM. Though it will be possible to run a 32bit node with minor source changes it is highly discouraged. There have also been numerous efforts to optimize for a 64bit CPU with memory alignments, memory copying, and in the encryption and hashing functions. All advanced instructions sets will be targeted for use though nothing beyond SSE3 is currently.

    While the alpha uses barely any RAM the way MicroCash is designed may require bursts of high RAM usage during a financial type denial of service attack. This could easily force 32bit apps to crash due to running out of RAM due to their ability to only address 2-3GB of RAM in the best of cases.

    settings.txt values and meanings

    P2P_PORT=777
    This is the the UDP port used by MicroCash node to communicate to other nodes. Depending upon whether you have IPv4 or IPv6 you may need to open the port to let it communicate to the internet.

    HTTP_SERVER_ENABLED=1
    Set to 0 to disable. This determines whether the inbuilt wallet server and node configuration web server is enabled. Without it your ability to interact with the node is limited but it may be useful in some instances. It is currently only bound to localhost so will be unable to be accessed over the internet.

    HTTP_SERVER_PORT=80
    The TCP port used by the http server. Currently there is no SSL/tls so all communications between node and web browser are unencrypted like normal web traffic.

    HTTP_SERVER_THREADS=1
    Accept value from 1 to 32. The number of threads to be used in the web server. For nearly all use cases it only needs to be 1. If serving a huge number of users for some reason increasing this number would help as it would increase the total number of connections able to be processed.

    HTTP_SERVER_IPV6=0
    If set to 1 then the web server will listen and accept requests on both IPv4 and IPv6

    DIR_NETWORK=./network
    The directory for the P2P node to dump any relevant data into, eg the transaction chain, log files, etc

    Command Line options
    -benchmark
    If this is set when the binary is run it will run a series of tests and output the results to console. No node or web server is run and when the benchmark is finished it closes.

    -installservice
    On windows it installs MicroCash as a service so that you can use to control the execution of MicroCash within the usual Windows framework. Currently does nothing on Linux/MacOS

    -removeservice
    Removes the service.

    Directory structure
    • mc64.exe (binary, currently less than 1MB)
    • settings.txt (list of program settings)
    • network\ (directory for MicroCash network data)
    • network\log.txt (P2P node log)
    • wallets\ (directory for wallet files)
    • wallets\username.mcx (example wallet created after logging into node)
    • web\ (directory that serves HTML content
    • web\index.html (default file that is used to serve content)
    • web\jquery.js (latest jquery)
    • web\style.css (style sheet for wallet)
    • web\*.png (image files used for various things in the wallet

    HTTP SERVER
    Anything placed in the web directory itself will be available to be served to whoever connects to 127.0.0.1 on IPv4 or ::[1] on IPv6 . You cannot go deeper than that directory, any attempt to will result in a 404 error. Only API requests can go deeper than the root web directory, but it is only a virtual directory space, not actual directory space (ie /user/password/api_command). The web server only accepts GET requests and currently there is a maximum request size of 4KB. GET responses can be as large as the file/data returned, no maximum set.
     

    Attached Files:

    Last edited by a moderator: Feb 10, 2016
  2. Ryler Sturden

    Ryler Sturden Member Staff Member MC Developer

    You can find the downloads for the release in the above post as attachments.

    Windows checksums for the binary
    SHA-256: DF51790E9DF0270E4680C98A1AD3F3DF4C58FD3BE10FE1F750E634EBC8CBE3BD
    MD-5: 3A25985FA990A6AEA20C7FDACBA50764

    Going to try and get the Linux and MacOS builds done ASAP, so keep checking back.
     
  3. MrSonic

    MrSonic New Member

    Looking good sir...

    microcash account.jpeg
     
  4. Ryler Sturden

    Ryler Sturden Member Staff Member MC Developer

    Cool thanks sonic. It seems that Michael has put in a fair amount of Windows specific code into MicroCash. So I am just in the process of porting and recoding some sections to get it out on Linux.
     
  5. Ryler Sturden

    Ryler Sturden Member Staff Member MC Developer

    I've nearly finished recoding everything in MicroCash that wasn't platform agnostic. There are a couple file system functions I need to upgrade to C++17 and a potential rewrite of the UDP code to ASIO instead of native socket functions like Michael put it together. As it is now I #ifdef the socket code and it is compiling fine on both Linux and Windows but it probably needs a move to ASIO to make it neater.

    I've got the Linux binary compiling but because a couple file system functions are missing it is not quite as functioning as the Windows client just yet. I think I'l just release alpha 2 with some feature upgrades and the linux build together.
     
  6. fellow

    fellow Member

    I just tested the win64 version on a really slow old netbook (amd e2) with wine-staging on ubuntu wily and it seems to work.
    Adding accounts and the first time login works.
    Shall I already see any network activity in the browser ui?

    In my benchmark results the "EDDSA verify" is much slower than the signing result.
    Does the test first sign something to then verify the result?
    If so the required signing time in the test may be counted to be substracted from the test time to display the real verifies per second (not that I care about but other people may).

    here is my the benchmark output.
    [email protected]:/home/fellow/crypto/microcash/alpha1/win64# wine-development "mc64.exe" benchmark
    MicroCash Startup Tests Passed
    ************************************************************
    ** MicroCash Server Benchmark **
    ************************************************************
    ** **
    ** Memory Tests [2 threads x 8192MB] **
    ** set [2236 MB/s] **
    ** copy [2195 MB/s] **
    ** **
    ** CPU Tests [2 threads] **
    ** Random Numbers [9 MB/s] **
    ** Pubkey 4xHash [1053 per sec] **
    ** Keccak Hash512 64b [594353 per sec] **
    ** Keccak Hash512 1K [82101 per sec] **
    ** JH Hash512 64b [168491 per sec] **
    ** JH Hash512 1K [19529 per sec] **
    ** Blake Hash512 64b [936768 per sec] **
    ** Blake Hash512 1K [121654 per sec] **
    ** SHA2 Hash512 64b [1166180 per sec] **
    ** SHA2 Hash512 1K [151057 per sec] **
    ** Node Encryption 64b [657030 per sec] **
    ** Node Encryption 1K [52018 per sec] **
    ** EDDSA Signing [650 per sec] **
    ** EDDSA Verify [174 per sec] **
    ** **
    ************************************************************
     
  7. Ryler Sturden

    Ryler Sturden Member Staff Member MC Developer

    I'm adding network activity for alpha 2. Right now its very difficult to get the node to connect to another.
     
  8. Ryler Sturden

    Ryler Sturden Member Staff Member MC Developer

    The linux build is up for alpha 1. It has some fixes that will be in ALPHA2 as well.

    SHA-256: 522BC4D2BCC775AA18EB5771C1B33309CA2413FA29F30F62CEA3BA7EED95C615
    MD-5: CB5C2D8CAF71B74738BDE60539E3B427
     
    Last edited: Feb 9, 2016
  9. Ryler Sturden

    Ryler Sturden Member Staff Member MC Developer

    I uploaded a new Linux alpha 1 with static linkage, which means some needed files are bundled with the binary, making it bigger. This should help it run on more machines with less effort by users.

    SHA-256: 8B882057DF901F5DFDE4E476A8B9208A8718D27E11E659A5DC921BA2EA68EA23
    MD-5: 44DB55145649A4714617A3DDB89BD4B7
     
  10. necom

    necom Administrator Staff Member MC Developer

    Working great for me on both a Windows 10 VM, as well as the Linux build in Ubuntu 14.04. Sweet, sweet, sahweeeet!

    I initially had some trouble understanding what's up with the Linux build, but realized it's just running in the background. I added some notes to the OP noting you can run the app from terminal to get more info & feedback about the node. (Also can more gracefully kill it with good ol' ctrl-c)

    This is really fun, thanks for the first builds to play with!
     
  11. burger

    burger New Member

    Worked in Linux Kubuntu 15.10 using Opera browser and localhost:8080 instead http://127.0....... nice!!!!!!
     
  12. Ryler Sturden

    Ryler Sturden Member Staff Member MC Developer

    Yes some of the ports I used will not work without admin access on Linux. I'll change the defaults for ALPHA2 ! Thanks for testing.
     
  13. mishak

    mishak New Member

    I did some progress on wallet it is early stuff see attachment http://imgur.com/3L3hXSQ backup web contents and unpack zip. Only login flow is complete - you must do setup/registration before using this and after login just blank page with garbage is visible. It is for RS to debug server! It will ping internet for google fonts consider yourself warned (will make them local in next version).
    • credentials are in path of login action /<user>/<pass>/login it should be POST with them in form fields or at least as basic auth
    • server has issues with serving binary files ie.: fonts woff2 woff ttf
    • favicon.ico returns 500 (browsers ask for it better fix it)
    • if file is empty it will return 404 instead of nothing
     

    Attached Files:

  14. mishak

    mishak New Member

    Also please add setting to specify bind address nobody got time for nating localhost ports in iptables in containers.
    address = eth0, 0.0.0.0, 127.0.0.1 (default)
     
  15. mishak

    mishak New Member

    Matched everything that was in first alpha enjoy :)
     

    Attached Files:

  16. notyep

    notyep New Member

    Working like a charm on Ubuntu 12.04.3 LTS !! ;) [​IMG]
     
  17. Ryler Sturden

    Ryler Sturden Member Staff Member MC Developer

    I just gave it a whirl mishak, looking good. Alpha2 will be out very soon with the features you requested. I will not add your build just yet because until we get an equal build out there I have had to extend my current code to do what is required. But it will be easy to convert I think.

    Another thing you can do is time one of the regular API calls to the server and show a "ping" to the node somewhere. There will also be other graph based graphical things you could add with some of the ALPHA2 api calls. Looking good though, is the semantic license compatible with a MIT type license? ie we can bundle it with our app?

    Quick suggestions
    *Maybe some MicroCash branding somewhere on the left panel if we remove the top panel.
    *Put the current version it is (alpha2 for instance) somewhere.
    *When clicking logout, have a confirmation "are you sure".
    *The user name should be noticeable too, maybe up the top of left panel under "MicroCash" if you put it there. This way the user knows what account it is, if they have multiple.
     

Share This Page