Pages:
Author

Topic: [ANN][SIM] Simcoin - A Simple Coin (Read 157763 times)

hero member
Activity: 840
Merit: 1002
Simcoin Developer
hero member
Activity: 840
Merit: 1002
Simcoin Developer
August 04, 2017, 08:04:51 AM
Ed25519 port to Javascript is basically finished.

Doing some serious optimizations now: the next version is 100 Kb smaller (x4 reduction in size) and 20 times faster!
hero member
Activity: 840
Merit: 1002
Simcoin Developer
June 24, 2017, 03:37:37 AM
We have our own forum now: https://simtalk.org:444

Join us there!
hero member
Activity: 840
Merit: 1002
Simcoin Developer
June 24, 2017, 03:36:50 AM
Progress report
(Jun 24, 2017)



The last few weeks I switched my attention from the server to the client. I hoped some other developers would join Simcoin and build it, but this hasn't happen so far. So it seems I will have to do it myself.

The idea was to embed a browser into a native app and then use simcoin.dll from Javascript. The original client was written in pure JS/HTML and it proved quite difficult to make, because modern wallets are pretty complicated.

Recently I discovered Vue.js - a simple yet very powerful framework - it should make building the client much easier.

Vue allows splitting work into small, independent components, and there's already a ton of them. I also started building/outsourcing my own components, you can see some of them here: https://github.com/NxtChg/pieces

I also created Vuepack: a simple tool that allows you to select any components you need and then save them as a single, minified JS file.

Another breakthrough was realization that there is not much sense in embedding the browser into a native app: JS is very fast and flexible nowadays, so why don't just use the browser already installed in user's OS?

This has several major advantages:
  • the client instantly and automatically becomes cross-platform, there is no need to port it anymore
  • no need to write a separate web-wallet
  • no need for the user to download and install anything
  • automatic bug-fixes and auto-update
  • automatic cloud backup for user's private keys (encrypted)
  • coding in JS instead of C++ is easier

I need to think more about how to handle vaults now, but it's probably solvable. The app should allow the user to save the vault locally at any time as base64 string and prompt him to do so when new private keys are added.

As for the local data - browsers nowadays provide localStorage and IndexDB, which should be enough since our client is not supposed to download the whole transchain.

The key piece of the puzzle, though, is porting all the cryptographic functions to JS. Some were ported before as bounties, some I found on the Internet, and we're currently working to port the most important part - Ed25519 signatures - to JS, and it's about halfway done!

There are also other things going on behind the scenes, which will be announced later. If you don't see me hanging out on the forum or Slack too much, it doesn't mean the work has stopped Smiley

----

Another thing: you probably already know about Simex: a Google Chrome browser extension that makes it easier to follow our exchange and forum.

----

There is a lot of noise and frenzied activity in cryptoland these days: people rush barely working prototypes to the market, hype them, raise huge amounts of money, then either disappear or fail miserably.

If you are a developer who values simplicity and wants to do some real work, which will last and has the potential to change the world - you are welcome to join!

There's plenty of bounties available or you can start your own Simcoin-related project. There's also lots of opportunities to learn and grow as a programmer.

It sure as hell will take me too long if I have to do everything by myself...
hero member
Activity: 840
Merit: 1002
Simcoin Developer
June 08, 2017, 01:12:59 PM
This bounty is still open:

Port a piece of C++ code to JS: https://www.xbtfreelancer.com/prj/3762/port-a-short-piece-of-c-code-to-javascript
hero member
Activity: 840
Merit: 1002
Simcoin Developer
hero member
Activity: 840
Merit: 1002
Simcoin Developer
June 05, 2017, 01:34:36 AM
The Simex source code is now online:

https://github.com/NxtChg/simcoin/tree/master/tools/simex/chrome

Feel free to contribute if you want to improve something.
hero member
Activity: 840
Merit: 1002
Simcoin Developer
June 04, 2017, 02:49:33 AM
Simex (chrome browser extension) v1.0 released:



Download:

https://simcoin.info/simex.zip

About

This extension periodically fetches simxchg orders and displays the price either in satoshis or in USD per 1 million SIM.

In case of satoshis it displays top sell and buy orders.

In case of USD it displays the average price = (sell + buy) / 2.

It also fetches the latest posts from simtalk and displays red notification mark if there are new posts since you last clicked 'Visit forum'.

How to install

* Download zip file and unpack it somewhere on your computer.
* Open Extensions page in the Chrome browser.
* Click on "Developer mode" checkbox.
* Click "Load unpacked extension..." and select the "simex" folder.
* Enjoy Smiley

This is a beta version, so please report any bugs or issues.

Suggestions are also welcomed.
hero member
Activity: 840
Merit: 1002
Simcoin Developer
hero member
Activity: 840
Merit: 1002
Simcoin Developer
May 24, 2017, 03:25:48 AM
Today one of our servers was hit by SHNELL ransomware.

Looks like a fresh new one, which logs in as ASP.NET user and encrypts all files.

The server was scheduled for migration anyway, so this incident ranks as "mild inconvenience" Smiley

The simxchg and simtalk forum will be down for some time until we finish migrating to the new server.

hero member
Activity: 840
Merit: 1002
Simcoin Developer
hero member
Activity: 840
Merit: 1002
Simcoin Developer
May 08, 2017, 02:56:48 AM
Updated Simcoin distribution:



Blue is old, red is new.
hero member
Activity: 840
Merit: 1002
Simcoin Developer
December 25, 2015, 04:36:07 AM
Progress report

Happy birthday to you,
 Happy birthday to you,
  Happy birthday, our saviour,
   Happy birthday to you.



As they say, "It's not officially Xmas until Hans Gruber falls off the Nakamoto Nakatomi Tower".

Anyway, I wanted to describe briefly the current state of development Smiley

A few months ago I got stuck with the internal version "v2". The main reason for this is that I tried to develop the full client along with the main protocol and unify client and server as much as possible.

This proved to be too difficult, especially in the clouded state of mind that was caused by neglecting my health. The task became multi-dimensional and finding optimal solutions next to impossible: you change something on one dimension and everything else changes on the others. The current codebase became quite complicated to the point that I didn't feel confident in its security anymore.

After taking a break and relocating to a warmer climate, as well as improving my heath, I decided to focus on the server and use a test "SPV" client instead, which would require 100% trust in the node it connects to. Then reduce the trust by connecting to 3-4 nodes at the same time and comparing the results. And then make the final version, which doesn't require trusting any particular node.

So "v3" was born and I made some nice progress, revisiting various parts of the system and rewriting all the stupid things I've done in the clouded state of mind.

Then I got to tx fees and realized that they should be handled differently. This required some minor changes, but more importantly - a lot of problems to solve.

Research is the most annoying and time-consuming part of this project, particularly because you can't plan it.
You just wander around your apartment thinking and hoping that today you will be able to solve it.

In the end, of course, all of it is due to my own stupidity. Sorry for not being smarter Smiley

I think here is where I am currently:



I can see the light at the end of the tunnel, but it's still a long road to go.

There is nothing cool to show you at the moment. I wrote a network monitoring tool using the WebSockets server developed for CryptoPlay, but it doesn't look particularly exciting Smiley

It would be nice to give you some sort of timeline, but:




So I guess our faith that this project will ever be finished is gonna be tested some more Smiley


hero member
Activity: 840
Merit: 1002
Simcoin Developer
April 05, 2015, 10:15:26 AM
Progress report

I've decided to suspend progress reports, because at this stage they are too distracting – instead of focusing on what needs to be done I am trying to find tasks that would give weekly reports a sense of progress, and it only delays the project.

So the next update will be when there's actually something to report.
hero member
Activity: 840
Merit: 1002
Simcoin Developer
March 29, 2015, 01:13:01 PM
Progress report

This week I shifted focus to the client and refactored the JS API to form commands completely in JavaScript.

This makes the client relatively simple – it's basically just an embedded browser with a single function send() to pass commands between JavaScript and the core. It doesn't even have to be recompiled if the core interface changes – only the JS code needs to be updated. So the client will be easier to maintain and easier to port, because JavaScript code is already cross-platform.

hero member
Activity: 840
Merit: 1002
Simcoin Developer
March 22, 2015, 01:25:42 PM
Progress report

Many more bugs fixed. Besides integration bugs, some of the bugs were caused by the lack of unit testing, which I started to relax due to time pressure. Well, it bites back.

Spent some time helping Titulaer with CryptoPlay's project A, but he occasionally helps me with Simcoin too: for example he tested Simcode compiler and VM and caught quite a few bugs!

One notable thing: I finally completely fixed my initial blunder of separating everything by transaction type – there's no need for that. So earlier I've merged all the transaction-specific tasks and this week finally merged all the network packet types to be just one – TRANSACTION. The underlying code shouldn't bother with what kind of transaction it is. Sounds obvious, but it wasn't in the beginning.

----

Yesterday was exactly one year of me working on Simcoin. On March 21, 2014 I had the idea and started looking for suitable crypto libraries. So, happy birthday, Simcoin Smiley

To commemorate, I've started our future repository at Github:

https://github.com/NxtChg/simcoin

It's a small step for… uhm, never mind.

Even though I initially allocated only 1 year of my life to this project, it's obvious that I can't just throw it all away, so I will have to continue working on it for as long as it takes.

I am still here, still working and haven't given up on any of my promises.
hero member
Activity: 840
Merit: 1002
Simcoin Developer
March 15, 2015, 12:29:03 PM
We have our own forum now: https://simtalk.org:444
hero member
Activity: 840
Merit: 1002
Simcoin Developer
March 15, 2015, 12:28:46 PM
Progress report

This week I took three days to push CryptoPlay's project A, because it's getting ridiculous - it's a tiny project and we still can't finish it! Titulaer promised to take two days off his day job next week too, so hopefully we will start closed beta-testing for our top investors next week (by the way, it's still not too late to buy shares Wink )

The rest of the week I was mostly fixing bugs. About 90% of my closed to-do items were "bug fixed" records. It takes less mental effort to fix bugs now because individual modules are simpler, but it's more time-consuming, since now I have to track bugs across a multitude of modules and determine which one is malfunctioning or which ones have miscommunication.

This made it obvious that I need better debugging tools, so I worked a bit on improving my command logging task and other debug instruments.

One notable thing is that I finally figured out how to merge staged and non-staged consensus classes into a single one. It doesn't sound like much, but having two copies of such a critical code was bothering me from the start and I couldn't find a simple way to merge them until now.
hero member
Activity: 840
Merit: 1002
Simcoin Developer
March 08, 2015, 12:55:18 PM
Progress report

Lost two days this week when my new HDD died Sad

It survived for just 8 months. And what's most annoying is that it was a red WD drive, which is supposed to be more reliable and tolerate heat better. Damn marketing liars! Probably the only thing different about it is the red sticker.

Luckily, it died in the exact same way as my previous one – started malfunctioning after heating up. So I was able to cool it down and copy all the data within one hour. And then realigned partitions for 15 more! Thanks, Paragon Software, for being so lame...

Still, managed to get some work done: continued working on VM/compiler, plus figured out how to organize accounts in such a way that reorg could be done incrementally instead of the simplistic "flush/rebuild".

And also figured out how to efficiently locate fracture points, so now only a few transactions need to be re-downloaded in case of the reorg.

These two are significant advances, so I am happy with the overall progress this week.
hero member
Activity: 840
Merit: 1002
Simcoin Developer
March 01, 2015, 06:27:54 AM
Progress report

Good progress this week, although refactoring is not yet finished, mostly because about half of the week I spent thinking and documenting stuff instead (passed 1K edits in the wiki: actually 1,150 already).

One thing I was working on, and am excited about, is a virtual machine (yes, Simcoin will have one). But don't worry it will be very simple, not Turing-complete, more like Bitcoin script, but of course simpler and more elegant.

It took me about 1.5 days to write a spec and most of the code for it and the compiler. We will be able to use it anywhere, where we need simple scripting, for example to define the rules for transaction fee calculation. Then all the clients can download these rules and use them to calculate the minimum fee required for each transaction.

When it comes to scripts, even a simplest language can usually give you a lot of flexibility. That's why I am so excited about it – how simple and yet powerful it is Smiley
Pages:
Jump to: