Bitcoin Forum
August 21, 2019, 08:27:45 AM *
News: Latest Bitcoin Core release: 0.18.0 [Torrent] (New!)
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: cruzbit: A simple decentralized peer-to-peer ledger implementation  (Read 385 times)
asdvxgxasjab
Newbie
*
Offline Offline

Activity: 12
Merit: 0


View Profile
July 05, 2019, 04:36:05 PM
 #1

Hello everyone,

I'm a long time bitcoin fan/user. For years I thought about rewriting bitcoin to be as simple as possible. There is a fair amount of complexity to the canonical bitcoin implementation that didn't strike me as strictly necessary. It makes understanding and working with the protocol difficult. I had some time recently, so I finally decided to implement what I thought was the simplest version of bitcoin that could exist. cruzbit is what I ended up with.

Project: https://github.com/cruzbit/cruzbit

More details: https://medium.com/@asdvxgxasjab/cruzbit-a-simple-decentralized-peer-to-peer-ledger-2944495b6129

In addition to simplicity, I wanted everything I used to be standard. I wanted an average developer to be able to run cruzbit and immediately start working with the protocol and talking to their client.

Highlights:

  • Newer crypto: Ed25519 and SHA3
  • Simplified transaction format: No inputs/outputs. No scripts.
  • No UTXO: Account-model, but as far as I can tell, a novel simpler approach to it. No serial per-account nonce.
  • No fixed block size limit: A variation of BIP 101 is implemented.
  • Reference implementation is in Go. Completely new code base.
  • Web/dev-friendly peer protocol: secure WebSockets and JSON for all protocol messages and primitives.

It was born almost 2 weeks ago. No premining or any of that funny business. The memo field of the coinbase transaction of the genesis block is timestamped with the bitcoin blockchain's tip block hash at the time of its creation. It's being CPU mined at the moment.

Any/all feedback is much appreciated. Would love to have some new miners join us. Take it easy!
1566376065
Hero Member
*
Offline Offline

Posts: 1566376065

View Profile Personal Message (Offline)

Ignore
1566376065
Reply with quote  #2

1566376065
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1566376065
Hero Member
*
Offline Offline

Posts: 1566376065

View Profile Personal Message (Offline)

Ignore
1566376065
Reply with quote  #2

1566376065
Report to moderator
1566376065
Hero Member
*
Offline Offline

Posts: 1566376065

View Profile Personal Message (Offline)

Ignore
1566376065
Reply with quote  #2

1566376065
Report to moderator
1566376065
Hero Member
*
Offline Offline

Posts: 1566376065

View Profile Personal Message (Offline)

Ignore
1566376065
Reply with quote  #2

1566376065
Report to moderator
jstnryan
Jr. Member
*
Offline Offline

Activity: 52
Merit: 1


View Profile WWW
July 05, 2019, 11:25:51 PM
 #2

Your installation instructions are ambiguous, or assume a prior knowledge of Go. For example:

https://github.com/cruzbit/cruzbit/tree/master/wallet
Quote
1. Make sure you have the new Go modules support enabled: export GO111MODULE=on
2. go install github.com/cruzbit/cruzbit/wallet

Immediately after installing go, I set the environment variable, and ran the Go command (#2) verbatum, and got an error message:
Quote
can't load package: package github.com/cruzbit/cruzbit/wallet: cannot find package "github.com/cruzbit/cruzbit/wallet" in any of:
   /usr/lib/go-1.10/src/github.com/cruzbit/cruzbit/wallet (from $GOROOT)
   /home/cruzbit/go/src/github.com/cruzbit/cruzbit/wallet (from $GOPATH)

I attempted to create this directory structure, and then `git clone`-ed the repository into it in various variations of the hierarchy, but always received a similar error. Finally I tried using relative paths to the various folders ("go install ./wallet", "go install cruzbit/wallet"), and then gave up.

I have no intention of learning Go at this time, and if you want people like me testing your project, I'd suggest making the procedure a bit more clear.

cruzbit (http://cruzb.it) - A simple decentralized peer-to-peer ledger implementation.
asdvxgxasjab
Newbie
*
Offline Offline

Activity: 12
Merit: 0


View Profile
July 06, 2019, 01:53:50 AM
 #3

I'm sorry about that!

If you're still up for giving it one last shot, this might work:

Quote
GO111MODULE=on go install github.com/cruzbit/cruzbit/wallet
Quote
GO111MODULE=on go install github.com/cruzbit/cruzbit/client

It also requires Go version 1.11+
jstnryan
Jr. Member
*
Offline Offline

Activity: 52
Merit: 1


View Profile WWW
July 06, 2019, 03:03:31 AM
Last edit: July 06, 2019, 03:16:35 AM by jstnryan
 #4

It also requires Go version 1.11+

That could be the key bit of information, there. Apt-get installed 1.10.4. Will report back after upgrading.

Edit: No luck.

Code:
go version
go version go1.11.5 linux/arm

Code:
GO111MODULE=on go install github.com/cruzbit/cruzbit/wallet
go: cannot find main module; see 'go help modules'

cruzbit (http://cruzb.it) - A simple decentralized peer-to-peer ledger implementation.
asdvxgxasjab
Newbie
*
Offline Offline

Activity: 12
Merit: 0


View Profile
July 06, 2019, 04:14:41 AM
 #5

Hmm strange and sorry again. I'll have to give it a try with that version on ARM. So far I've tested Windows, Linux (amd64), and MacOS only.

If you omit/unset GO111MODULE it should install, it just won't respect the module versions but at the moment that should be fine.

Thanks so much though!
jstnryan
Jr. Member
*
Offline Offline

Activity: 52
Merit: 1


View Profile WWW
July 06, 2019, 05:35:30 AM
Last edit: July 06, 2019, 06:04:29 AM by jstnryan
 #6

The problem was with Go. Apparently it doesn't like being run from symlink, or something.

I have successfully installed the wallet; now following the remainder of the directions.

Client installed, and is now running off with all remaining CPU cycles. Could use a daemon mode.

1 miner thread on ODROID-HC1/MC1 hashing at 0.07MH/s.

cruzbit (http://cruzb.it) - A simple decentralized peer-to-peer ledger implementation.
asdvxgxasjab
Newbie
*
Offline Offline

Activity: 12
Merit: 0


View Profile
July 06, 2019, 06:32:53 PM
 #7

Haha awesome! Smiley Thanks so much for your patience. And welcome to the cruzbit network!
Bonkingbob
Newbie
*
Offline Offline

Activity: 8
Merit: 0


View Profile
July 12, 2019, 10:29:57 PM
Last edit: July 12, 2019, 11:18:03 PM by Bonkingbob
 #8

I’m having the same issues as above. How was it resolved in the end? I’ve tried go 11 and 12 and keep getting ‘cannot find main module’

Edit: scratch that, I had an old install of go that was getting in the way. Now syncing the chain!
jstnryan
Jr. Member
*
Offline Offline

Activity: 52
Merit: 1


View Profile WWW
July 12, 2019, 11:18:14 PM
 #9

I’m having the same issues as above. How was it resolved in the end? I’ve tried go 11 and 12 and keep getting ‘cannot find main module’

My problem was that I manually symlinked the Go binaries into one of the bin folders in my path (I'm not sure which it was). When I ran Go directly from the directory it was compiled to, everything ran as expected. I suspect Go has some configuration that uses relative paths which break because it doesn't know the active directory is different than the installation directory.

This was the only thing I've ever used Go for, and have not used it since, so unfortunately I can't give you any more specifics.

I'll add that once you compile successfully, you can move the "client" and "wallet" binaries to wherever you want, and they run fine. So, if the Go installation path bothers you, you're not restricted to the default. I've even copied my binaries to additional machines (same hardware) without problems, so I only ever had to install Go on one machine.

cruzbit (http://cruzb.it) - A simple decentralized peer-to-peer ledger implementation.
asdvxgxasjab
Newbie
*
Offline Offline

Activity: 12
Merit: 0


View Profile
July 21, 2019, 06:32:35 PM
 #10

Bumping the thread to announce that the cruzbit client now has built-in mining support for Nvidia GPUs!

Link to instructions: https://github.com/cruzbit/cruzbit/blob/master/cuda/BUILDING.md

Thanks for your interest!
itismoney4me
Member
**
Offline Offline

Activity: 102
Merit: 10


View Profile
July 23, 2019, 10:10:12 AM
 #11

30 hrs mining without any block!  Undecided
CPU mining 1.3 Mh/s
cobonadu
Member
**
Offline Offline

Activity: 210
Merit: 10


View Profile WWW
July 25, 2019, 09:14:13 PM
 #12

30 hrs mining without any block!  Undecided
CPU mining 1.3 Mh/s

The new version supported GPU, but there is no detail tutorials for this!

A coin for geek....not easy to use !

I got 0 coin for 24 hours with my I7 CPU Smiley and now testing with my 1070, hope can hit 1 block tonight!

jstnryan
Jr. Member
*
Offline Offline

Activity: 52
Merit: 1


View Profile WWW
July 26, 2019, 07:21:49 PM
Last edit: July 27, 2019, 01:47:32 AM by jstnryan
 #13

The new version supported GPU, but there is no detail tutorials for this!

A coin for geek....not easy to use !

We're working on that. Cruzbit is still new, but there are a few of us assembling documentation and working through the user experience to make it more friendly. Keep in mind that the GPU code was just released less than a week ago, so it's still technically in "beta" phase. In time things will become a lot more simple to use.

I have begun assembling resources at http://cruzb.it, and added instructions for compiling the GPU miner yesterday. More documentation and tutorials will be available in the next few days.

cruzbit (http://cruzb.it) - A simple decentralized peer-to-peer ledger implementation.
asdvxgxasjab
Newbie
*
Offline Offline

Activity: 12
Merit: 0


View Profile
July 28, 2019, 12:15:50 AM
 #14

Just wanted to update this thread to let everyone know that cruzbit is currently being traded on the qTrade exchange: https://qtrade.io/market/CRUZ_BTC

Also the estimated current network-wide hashrate is ~100 GH/s. Still solo mineable!
asdvxgxasjab
Newbie
*
Offline Offline

Activity: 12
Merit: 0


View Profile
July 31, 2019, 10:55:17 PM
 #15

This update is to announce that OpenCL mining support is now available!

Please see the project README for instructions to enable it in your build.

Project repository: https://github.com/cruzbit/cruzbit

We're still solo mineable for the time being. Thanks!
freedom777
Newbie
*
Offline Offline

Activity: 40
Merit: 0


View Profile
August 09, 2019, 02:40:39 PM
 #16

Hello! How can i start mining with NVIDIA and AMD on Windows?
Is there an understandable and accessible instruction, or live support?
deskless
Jr. Member
*
Offline Offline

Activity: 177
Merit: 1


View Profile
August 09, 2019, 04:16:00 PM
 #17

What is the point of this new coin?
What problem are you trying to solve?
jstnryan
Jr. Member
*
Offline Offline

Activity: 52
Merit: 1


View Profile WWW
August 10, 2019, 03:54:22 AM
 #18

What is the point of this new coin?
What problem are you trying to solve?

I don't want to put words in the developer's mouth, but I've read them answer this question quite a few times, and I think I can provide a halfway decent answer.

Cruzbit is an attempt to simplify blockchain development. It can sometimes be the case that in order to develop new software for the Bitcoin ecosystem (for example) that a developer needs to practically be an expert on many ideas and technologies even to create the simplest of applications which will interface with the network. Having a discussion about "Bitcoin" involves many layers interoperating technologies to make transactions happen. Cruzbit attempts to reduce all of that noise to an easily understandable protocol, that can be consumed by simple and readily available tools.

A great example of this is the protocol itself. All messages in the network are simply JSON encoded strings, which are human-readable, and can be used natively in virtually every programming language. Another example is the use of WebSockets for communication. Your web browser, for example, already has everything you need to communicate with a peer on the network built in.

If you'd like to see a demonstration of the above points, have a look here: https://cruzb.it/#chat
With the above web form you can send any message you want to a real peer on the network, and will receive a real response, using a small bit of code that took me less than 30 minutes to build from start to finish, including incorporating it into the website.

Cruzbit does away with a lot of things that other blockchains seem to rely on, thus reducing complexity, while maintaining the same level of security and service. The creator can expand on this far better than I can, but in the end, the idea is to open up accessibility to programmers of all levels, increasing comprehension, reducing development time and, by effect, allowing more cognitive space to be spent on end-users.

If you're interested in more detail on the creator's thoughts about the project, you can read their post here:
https://medium.com/@asdvxgxasjab/cruzbit-a-simple-decentralized-peer-to-peer-ledger-2944495b6129
or as PDF: https://cruzb.it/resources/cruzbit.pdf

cruzbit (http://cruzb.it) - A simple decentralized peer-to-peer ledger implementation.
jstnryan
Jr. Member
*
Offline Offline

Activity: 52
Merit: 1


View Profile WWW
August 10, 2019, 03:57:28 AM
 #19

Hello! How can i start mining with NVIDIA and AMD on Windows?
Is there an understandable and accessible instruction, or live support?

Start here to understand how to build and use the reference client: https://cruzbit.github.io/cruzbit/#/quickstart
Then you can move on to the documents, or start using the precompiled binaries here: https://cruzb.it

If you'd like to ask questions, or chat with others, join us on Discord: https://discordapp.com/invite/MRrEHYw

cruzbit (http://cruzb.it) - A simple decentralized peer-to-peer ledger implementation.
asdvxgxasjab
Newbie
*
Offline Offline

Activity: 12
Merit: 0


View Profile
August 10, 2019, 04:30:14 PM
 #20

The answer @jstnryan gives is fairly complete. I'd only add that cruzbit exists because for a long time I thought about what an even more simple and easy to use (and more modern!) bitcoin would look like. For example, I don't think the UTXO design is necessary and it adds more complexity than value. Similarly, given the vast majority of transactions are simple standard scripts which effectively transfer value from one public key to another, the scripting system seemed a bit silly. So I got rid of both of those things. And like has been said, I made all protocol messages and primitives JSON for ease of use. I'm not trying to innovate with flashy new bells and whistles. It's an attempt to refine an already amazing idea. I don't know if I succeeded in the eyes of others but I'm happy with the result. Thanks for even taking the time to read about cruzbit!
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!