]> Git Repo - cpuminer-multi.git/log
cpuminer-multi.git
4 months agoupdate build.sh linux
Jesse Taube [Tue, 27 Aug 2024 20:11:51 +0000 (16:11 -0400)]
update build.sh

4 months agointegrate
Jesse Taube [Sat, 17 Aug 2024 02:04:25 +0000 (22:04 -0400)]
integrate

5 months agoadd verus directory files
Jesse Taube [Sat, 17 Aug 2024 01:16:51 +0000 (21:16 -0400)]
add verus directory files

3 years agoupdate Readme
Tanguy Pruvot [Sun, 20 Jun 2021 20:05:42 +0000 (22:05 +0200)]
update Readme

3 years agoCheck for cpu temperature in thermal class
Divakar V Prabhu [Sat, 23 May 2020 15:53:08 +0000 (21:23 +0530)]
Check for cpu temperature in thermal class

3 years agoyescrypt variants cputest
Tanguy Pruvot [Sun, 20 Jun 2021 19:40:10 +0000 (21:40 +0200)]
yescrypt variants cputest

3 years agoyescrypt: add support for yescryptr8, yescryptr16 and yescryptr32.
Olivier Houchard [Thu, 31 May 2018 19:19:19 +0000 (21:19 +0200)]
yescrypt: add support for yescryptr8, yescryptr16 and yescryptr32.

Those are slight variations of the yescrypt algorithm, used notably by
bitzeny (yescryptr8), yenten (yescryptr16), and wavi (yescryptr32).

3 years agoFix compile error with GCC 11
0x9fff00 [Wed, 26 May 2021 12:14:30 +0000 (14:14 +0200)]
Fix compile error with GCC 11

Based on https://github.com/JayDDee/cpuminer-opt/commit/3c5e8921b764e03ef09c57b2207b9960d45123b0

Co-authored-by: Jay D Dee <[email protected]>
3 years agoifdef fix for armv7 (PR #50)
Tanguy Pruvot [Mon, 12 Apr 2021 10:20:01 +0000 (12:20 +0200)]
ifdef fix for armv7 (PR #50)

5 years agoincrease version to 1.3.7
Tanguy Pruvot [Tue, 24 Sep 2019 09:19:49 +0000 (11:19 +0200)]
increase version to 1.3.7

5 years agoREADME markdown quotes (#40)
Paraplegic Racehorse [Tue, 24 Sep 2019 09:16:22 +0000 (01:16 -0800)]
README markdown quotes (#40)

5 years agoreadme: add zlib1g-dev dep on deb-based Linux (#41)
Luca Lesinigo [Tue, 24 Sep 2019 09:13:23 +0000 (11:13 +0200)]
readme: add zlib1g-dev dep on deb-based Linux (#41)

5 years agoX16Rv2: pad zeros with 32-bits integers at once
Tanguy Pruvot [Tue, 24 Sep 2019 04:52:05 +0000 (06:52 +0200)]
X16Rv2: pad zeros with 32-bits integers at once

5 years agoX16Rv2 Algorithm (for RVN and clones)
Ji Sheng [Sun, 22 Sep 2019 11:52:12 +0000 (19:52 +0800)]
X16Rv2 Algorithm (for RVN and clones)

5 years agoForce __arm__ define on aarch64
Tanguy Pruvot [Thu, 8 Aug 2019 06:59:10 +0000 (08:59 +0200)]
Force __arm__ define on aarch64

5 years agophi2: avoid possible memory overflow
Tanguy Pruvot [Fri, 17 May 2019 19:27:11 +0000 (21:27 +0200)]
phi2: avoid possible memory overflow

5 years agorestore build.sh code
Tanguy Pruvot [Sat, 16 Mar 2019 16:16:41 +0000 (17:16 +0100)]
restore build.sh code

5 years agofix os x build with asm (#14)
orangejuicy [Sat, 16 Mar 2019 12:17:09 +0000 (15:17 +0300)]
fix os x build with asm (#14)

5 years agoAdd geek algo (#35)
Tanguy Pruvot [Sat, 16 Mar 2019 10:25:49 +0000 (11:25 +0100)]
Add geek algo (#35)

properly...

5 years agorainforest: add missing entry in cputest
Tanguy Pruvot [Sat, 16 Mar 2019 08:28:07 +0000 (08:28 +0000)]
rainforest: add missing entry in cputest

and fix modifier for arm64

5 years agorainforest: fix compilation for windows (#37)
yuzi-co [Sat, 16 Mar 2019 08:11:56 +0000 (10:11 +0200)]
rainforest: fix compilation for windows (#37)

5 years agorainforest: avoid the slow memcpy() operation to reset the state
Willy Tarreau [Sun, 10 Mar 2019 17:20:07 +0000 (17:20 +0000)]
rainforest: avoid the slow memcpy() operation to reset the state

It's really expensive to use memcpy() to copy 16 kB of data on some
small processors like ARM Cortex A53 which only have 64-bit data paths
from the L1 cache. This roughly consumes 2k cycles just for the copy.
"Perf top" shows that half of the time is spent in memcpy(), and given
that this exhausts the L1 cache, the rest of the operations must cause
a lot of thrashing.

Since there are few modifications applied to the rambox between two
consecutive calls, better keep a history of recent changes inside
the context itself. This doesn't cost much because the write bus
between the CPU and the L1 cache is 128 bit on A53 so we can afford
a few writes. Also, the typical amount of updates apparently is
between 16 and 32 so it makes sense to put an upper bound on 32 and
remain the memory footprint low..

The performance is roughly multiplied by 5 on A53 just by doing this,
the hash rate reaches about 14.4k/s on NanoPI-Neo4, or almost 10 times
the performance of the original code.

5 years agorainforest: avoid closing the hash when it doesn't match
Willy Tarreau [Sat, 9 Mar 2019 22:02:35 +0000 (23:02 +0100)]
rainforest: avoid closing the hash when it doesn't match

Drop all hashes which will have one of their highest 16 bits set since
they will not match. This saves 4 calls to rf256_one_round() via
rf256_final() and almost doubles the performance.

5 years agorainforest: optimize rf_ctx organization for better cache locality
Willy Tarreau [Sat, 9 Mar 2019 14:45:50 +0000 (14:45 +0000)]
rainforest: optimize rf_ctx organization for better cache locality

By moving some fields in the structure, we can increase the performance
by an extra 6% on Cortex-A53 at least.

5 years agorainforest: optimize rf_rambox()
Willy Tarreau [Sat, 9 Mar 2019 14:23:46 +0000 (14:23 +0000)]
rainforest: optimize rf_rambox()

it is counter productive to avoid writing 50% of the times, it
adds conditional jumps which are mispredicted half of the times.
Better use conditional moves and always write. This increase
performance by 6% on ARMv8.

5 years agorainforest: do not emit rf_crc32_table if not needed
Willy Tarreau [Sat, 9 Mar 2019 14:21:54 +0000 (14:21 +0000)]
rainforest: do not emit rf_crc32_table if not needed

it's only needed on platforms who don't have a CRC32 instruction.

5 years agobuild: add a build file for linux on ARM boards
Willy Tarreau [Mon, 11 Mar 2019 18:45:02 +0000 (18:45 +0000)]
build: add a build file for linux on ARM boards

ARM boards don't build when enabling ASM, and some of them benefit from
using -march=native. Let's have a dedicated build file for this. Also it
takes care of cleaning old autoconf/automake remains that can make the
build fail after pulling updates.

5 years agovstudio: fix typo
Tanguy Pruvot [Wed, 30 Jan 2019 17:43:50 +0000 (18:43 +0100)]
vstudio: fix typo

5 years agolyra2v3 algo for incoming VTC fork
Tanguy Pruvot [Wed, 30 Jan 2019 12:05:33 +0000 (13:05 +0100)]
lyra2v3 algo for incoming VTC fork

Signed-off-by: Tanguy Pruvot <[email protected]>
5 years agoblake2b algo
Tanguy Pruvot [Sun, 25 Nov 2018 03:02:19 +0000 (04:02 +0100)]
blake2b algo

6 years agox20r: secure the algo, dont hash random data
Tanguy Pruvot [Mon, 3 Dec 2018 00:43:15 +0000 (01:43 +0100)]
x20r: secure the algo, dont hash random data

6 years agox20r algo with saphir panama and radiogatun (#33)
ZC [Sun, 2 Dec 2018 23:49:35 +0000 (18:49 -0500)]
x20r algo with saphir panama and radiogatun (#33)

X20r algo - this is x16r extended with the addition of haval, gost, radioatun and panama

+ space/tabs cleanup, algo order and missing vstudio files...

6 years agocpuid: fix for intel compiler (#31)
Daniel Thamdrup [Fri, 2 Nov 2018 13:02:28 +0000 (14:02 +0100)]
cpuid: fix for intel compiler (#31)

made an error when using intel compiler. compiles fine now.

6 years agorainforest: vstudio fixes
Tanguy Pruvot [Thu, 11 Oct 2018 09:38:55 +0000 (11:38 +0200)]
rainforest: vstudio fixes

6 years agoadd rainforest algo (#29)
MikeMurdo [Wed, 10 Oct 2018 14:32:26 +0000 (16:32 +0200)]
add rainforest algo (#29)

A quick benchmark shows 1795 kH/s on a core i7/4790K at 4000 MHz and 795 kH/s on a Odroid-C2 ARM board at 1752 MHz lacking crypto extensions. Pretty nice for such a small device. (MikeMurdo)

It is very impressive on a Raspberry-Pi 3B+, it gives 668 kH/s, or roughly 1/3 of my skylake 4 GHz for 1/30 of the power usage and 1/18 of the price! Test report here : https://www.linkedin.com/pulse/more-efficient-mining-raspberry-pi-julien-delorme . The skylake also outperforms the GPU! (jdelorme3)

FWIW I just tested on NanoPI-Fire3 at 8*1.6 GHz and it's way faster (1825 kH/s). Apparently the algo makes use of crypto extensions which are enabled on this board but are not on raspi. It's fun to see a $35 device beat a $500 PC (wtarreau)

From https://github.com/bschn2/rainforest

6 years agosmall cleanup, reduce warnings with gcc 7.3
Tanguy Pruvot [Fri, 13 Jul 2018 22:02:14 +0000 (00:02 +0200)]
small cleanup, reduce warnings with gcc 7.3

6 years agocputest: add missing entries
Tanguy Pruvot [Sun, 24 Jun 2018 11:05:35 +0000 (13:05 +0200)]
cputest: add missing entries

6 years agohandle new monero algo, hardcoded
Tanguy Pruvot [Sun, 24 Jun 2018 09:00:21 +0000 (11:00 +0200)]
handle new monero algo, hardcoded

Signed-off-by: Tanguy Pruvot <[email protected]>
6 years agohandle new cryptolight variant
Tanguy Pruvot [Sun, 24 Jun 2018 08:33:29 +0000 (10:33 +0200)]
handle new cryptolight variant

Signed-off-by: Tanguy Pruvot <[email protected]>
6 years agoadd also sonoa algo
Tanguy Pruvot [Sun, 24 Jun 2018 08:13:46 +0000 (10:13 +0200)]
add also sonoa algo

6 years agophi2: handle new 144-bytes header, if needed
Tanguy Pruvot [Mon, 18 Jun 2018 07:07:02 +0000 (09:07 +0200)]
phi2: handle new 144-bytes header, if needed

6 years agophi and phi2 algos
Tanguy Pruvot [Thu, 10 May 2018 11:19:49 +0000 (13:19 +0200)]
phi and phi2 algos

phi2 is a new test algo for LUX, may change again if required...

cpu hashrate remains almost identical, 230 vs 250 kH/s
but gpu speed is slower by a bigger factor.

It should be harder to implement on fpgas,
and fixes the original algo power issue due to over-optimised heavy gpu code

Adding lyra and some other memory ops allow the gpu to breath between heavy algos (gost/echo)

6 years agoallium algo, with proper pool diff ratio 256
Tanguy Pruvot [Sun, 6 May 2018 15:20:48 +0000 (17:20 +0200)]
allium algo, with proper pool diff ratio 256

cleaned up...

6 years agov1.3.4
Tanguy Pruvot [Thu, 29 Mar 2018 02:17:30 +0000 (04:17 +0200)]
v1.3.4

6 years agox12 algo
Tanguy Pruvot [Thu, 29 Mar 2018 01:54:08 +0000 (03:54 +0200)]
x12 algo

6 years agox16s warning fix + readme + vcxproj
Tanguy Pruvot [Thu, 29 Mar 2018 01:15:37 +0000 (03:15 +0200)]
x16s warning fix + readme + vcxproj

6 years agoadd x16s algo (PigeonCoin) (#26)
rst00 [Thu, 29 Mar 2018 01:10:41 +0000 (04:10 +0300)]
add x16s algo (PigeonCoin) (#26)

6 years agofix for ARM support (#24)
Caio Vinicius de Toledo [Tue, 27 Feb 2018 01:16:57 +0000 (02:16 +0100)]
fix for ARM support (#24)

6 years agoFix construction of BIP34 coinbase.
Daniel Kraft [Wed, 21 Feb 2018 18:15:57 +0000 (19:15 +0100)]
Fix construction of BIP34 coinbase.

The expected coinbase for BIP34 blocks is constructed by serialising a
script with the block height as integer.  In the end, this leads to the
code in CScriptNum::serialize in the Bitcoin Core codebase.

Specifically, for positive numbers (as in the case of a block height),
the rule [1] is that another zero byte has to be pushed in case the last
byte had the highest bit set (since that bit is used to indicate the sign).

[1] https://github.com/bitcoin/bitcoin/blob/e117cfe45eee9169409e74a44ef4a866be25bc35/src/script/script.h#L351

6 years agohandle keccakc variant (refreshed keccak stratum) #21
Tanguy Pruvot [Sun, 28 Jan 2018 23:56:01 +0000 (00:56 +0100)]
handle keccakc variant (refreshed keccak stratum) #21

keccakc is the same as the original keccak,
but the previous was using a different (early) stratum protocol and factor.

This new implementation use a stratum factor of 256 and a sha256d merkle tree

7 years agox16r algo: beware, this algo hashrate is not constant
Tanguy Pruvot [Fri, 12 Jan 2018 16:27:59 +0000 (17:27 +0100)]
x16r algo: beware, this algo hashrate is not constant

unlike timetravel, a fast algo can be used 16 times in theory

Signed-off-by: Tanguy Pruvot <[email protected]>
7 years agoautoconf: restore ssl lib checks
Tanguy Pruvot [Mon, 20 Nov 2017 07:29:12 +0000 (08:29 +0100)]
autoconf: restore ssl lib checks

7 years agoarm64: fix wrong ifdef
Tanguy Pruvot [Thu, 12 Oct 2017 13:57:09 +0000 (15:57 +0200)]
arm64: fix wrong ifdef

7 years agoUpdate README.md
AXKuhta [Thu, 12 Oct 2017 13:33:08 +0000 (21:33 +0800)]
Update README.md

7 years agoFixed compilation on Pi64
AXKuhta [Thu, 12 Oct 2017 11:39:14 +0000 (11:39 +0000)]
Fixed compilation on Pi64

7 years agohandle a new tribus algo
Tanguy Pruvot [Thu, 15 Jun 2017 05:12:32 +0000 (07:12 +0200)]
handle a new tribus algo

Signed-off-by: Tanguy Pruvot <[email protected]>
7 years agoadd the JHA algo
Tanguy Pruvot [Mon, 8 May 2017 04:37:14 +0000 (06:37 +0200)]
add the JHA algo

Signed-off-by: Tanguy Pruvot <[email protected]>
7 years agobitcore timetravel-10 algo
Tanguy Pruvot [Sun, 30 Apr 2017 20:45:40 +0000 (22:45 +0200)]
bitcore timetravel-10 algo

Signed-off-by: Tanguy Pruvot <[email protected]>
7 years agotimetravel: fix for g++ buggy linker
Tanguy Pruvot [Wed, 29 Mar 2017 17:46:50 +0000 (19:46 +0200)]
timetravel: fix for g++ buggy linker

7 years agocputest: fix memset typo
Tanguy Pruvot [Sat, 25 Mar 2017 20:19:04 +0000 (21:19 +0100)]
cputest: fix memset typo

7 years agoUse unsigned long format string for unsigned long value
Guido Günther [Sat, 25 Mar 2017 11:02:42 +0000 (12:02 +0100)]
Use unsigned long format string for unsigned long value

This makes sure one doesn't see negative numbers and makes job numbers
match the job_ids in the debug output.

7 years agoREADME update
Frank Cash [Thu, 9 Mar 2017 02:46:31 +0000 (21:46 -0500)]
README update

7 years agorelease
Tanguy Pruvot [Thu, 26 Jan 2017 19:27:43 +0000 (20:27 +0100)]
release

7 years agotimetravel: huge optimisation (up to 250x :p)
Tanguy Pruvot [Thu, 26 Jan 2017 18:19:02 +0000 (19:19 +0100)]
timetravel: huge optimisation (up to 250x :p)

300kH on an i5 4440 (with bmw512 as first algo)

7 years agolimit per-core hashrate logs to 5 sec intervals
Tanguy Pruvot [Thu, 26 Jan 2017 17:59:00 +0000 (18:59 +0100)]
limit per-core hashrate logs to 5 sec intervals

tunable with --max-log-rate (when not using --quiet)

7 years agoprepare next version
Tanguy Pruvot [Mon, 23 Jan 2017 08:07:07 +0000 (09:07 +0100)]
prepare next version

7 years agoTimetravel hash function from Machinecoin project
madzera [Wed, 4 Jan 2017 14:30:58 +0000 (14:30 +0000)]
Timetravel hash function from Machinecoin project

note tpruvot: nice commit, proper...  Waaaaahhhh ^^

8 years agosmall change for cputest
Tanguy Pruvot [Fri, 6 Jan 2017 14:33:44 +0000 (15:33 +0100)]
small change for cputest

8 years agoUpdate docker file
Tanguy Pruvot [Sat, 19 Nov 2016 21:59:01 +0000 (22:59 +0100)]
Update docker file

8 years agorelease v1.3
Tanguy Pruvot [Thu, 3 Nov 2016 07:42:50 +0000 (08:42 +0100)]
release v1.3

8 years agoshow diff by default, like ccminer
Tanguy Pruvot [Thu, 3 Nov 2016 07:22:51 +0000 (08:22 +0100)]
show diff by default, like ccminer

8 years agovstudio: add missing project files
Tanguy Pruvot [Tue, 1 Nov 2016 11:45:05 +0000 (12:45 +0100)]
vstudio: add missing project files

8 years agoprepare xevan algo (default stratum factor 256)
Tanguy Pruvot [Sun, 16 Oct 2016 18:14:09 +0000 (20:14 +0200)]
prepare xevan algo (default stratum factor 256)

8 years agoAdd missing x17 algo
Tanguy Pruvot [Sun, 16 Oct 2016 17:40:23 +0000 (19:40 +0200)]
Add missing x17 algo

8 years agoUpdate readme
Tanguy Pruvot [Sun, 2 Oct 2016 08:49:41 +0000 (10:49 +0200)]
Update readme

8 years agoveltor algo
Tanguy Pruvot [Tue, 23 Aug 2016 22:10:08 +0000 (00:10 +0200)]
veltor algo

8 years agoAdded needed packages for Ubuntu
Neo [Mon, 1 Aug 2016 13:00:11 +0000 (15:00 +0200)]
Added needed packages for Ubuntu

The list of packages to install was missing "g++" and "make".

8 years agosia stratum (suprnova version)
Tanguy Pruvot [Fri, 29 Jul 2016 06:56:13 +0000 (08:56 +0200)]
sia stratum (suprnova version)

Signed-off-by: Tanguy Pruvot <[email protected]>
8 years agoblake2b component algo for later use, not enough for sia
Tanguy Pruvot [Fri, 29 Jul 2016 01:10:07 +0000 (03:10 +0200)]
blake2b component algo for later use, not enough for sia

8 years agolbry sha/ripemd algo
Tanguy Pruvot [Sun, 10 Jul 2016 11:55:26 +0000 (13:55 +0200)]
lbry sha/ripemd algo

beware, different data size and different stratum protocol (notify)

8 years agoadd x11evo algo
Tanguy Pruvot [Tue, 31 May 2016 05:59:35 +0000 (07:59 +0200)]
add x11evo algo

Signed-off-by: Tanguy Pruvot <[email protected]>
8 years agosmall changes in --version output
Tanguy Pruvot [Sun, 22 May 2016 04:37:53 +0000 (06:37 +0200)]
small changes in --version output

+ add sph haval which was half there in the vstudio project

8 years agowindows: get the proper cpu name like linux
Tanguy Pruvot [Sat, 21 May 2016 22:33:07 +0000 (00:33 +0200)]
windows: get the proper cpu name like linux

tested ok on mingw64 and vstudio x64 + x86

8 years agofix a few vstudio warnings
Tanguy Pruvot [Sat, 21 May 2016 21:36:09 +0000 (23:36 +0200)]
fix a few vstudio warnings

8 years agostats: add cores count to the cpu vid
Tanguy Pruvot [Sat, 21 May 2016 03:51:22 +0000 (05:51 +0200)]
stats: add cores count to the cpu vid

8 years agoupdate sample config, default to decred on yiimp
Tanguy Pruvot [Sat, 21 May 2016 04:11:20 +0000 (04:11 +0000)]
update sample config, default to decred on yiimp

8 years agostratum: pool benchmark + new methods
Tanguy Pruvot [Fri, 20 May 2016 21:34:37 +0000 (23:34 +0200)]
stratum: pool benchmark + new methods

+ model/stepping cpu id to get the same vid on linux and windows

8 years agoblake2s midstate, +10%
Tanguy Pruvot [Thu, 10 Mar 2016 00:19:57 +0000 (01:19 +0100)]
blake2s midstate, +10%

Happy this algo was working well without even a test ^^

Signed-off-by: Tanguy Pruvot <[email protected]>
8 years agodecred simplified stratum (getwork over stratum)
Tanguy Pruvot [Sun, 21 Feb 2016 12:08:31 +0000 (13:08 +0100)]
decred simplified stratum (getwork over stratum)

Signed-off-by: Tanguy Pruvot <[email protected]>
8 years agodecred: randomize all scans
Tanguy Pruvot [Sat, 6 Feb 2016 23:42:32 +0000 (00:42 +0100)]
decred: randomize all scans

8 years agodecred: longpoll/getwork modes
Tanguy Pruvot [Fri, 5 Feb 2016 22:46:07 +0000 (23:46 +0100)]
decred: longpoll/getwork modes

tested ok on suprnova and multicoin

Signed-off-by: Tanguy Pruvot <[email protected]>
8 years agoblake: some cleanup
Tanguy Pruvot [Sat, 6 Feb 2016 02:54:50 +0000 (03:54 +0100)]
blake: some cleanup

8 years agoSome other hwmon paths may be present
Dmitri Bogomolov [Sat, 30 Jan 2016 15:32:04 +0000 (17:32 +0200)]
Some other hwmon paths may be present

8 years agovanilla algo (Blake256 8 rounds - double sha256)
xCoreDev [Wed, 27 Jan 2016 05:45:33 +0000 (06:45 +0100)]
vanilla algo (Blake256 8 rounds - double sha256)

8 years ago1.2 release
Tanguy Pruvot [Sun, 24 Jan 2016 16:51:38 +0000 (17:51 +0100)]
1.2 release

9 years agostratum: show real target diff for all algos
Tanguy Pruvot [Wed, 6 Jan 2016 08:31:52 +0000 (09:31 +0100)]
stratum: show real target diff for all algos

some algos use a diff factor, so show the real target value with --show-diff

[2016-01-06 09:35:44] Stratum difficulty set to 1 (0.00002)
[2016-01-06 09:35:44] m7m block 638158, diff 1.255

9 years agodiff: show share diff and solved blocs + api
Tanguy Pruvot [Mon, 28 Dec 2015 04:09:21 +0000 (05:09 +0100)]
diff: show share diff and solved blocs + api

(require the --show-diff parameter)

9 years agodiff: prepare all algos for diff report (part 2)
Tanguy Pruvot [Mon, 28 Dec 2015 03:45:57 +0000 (04:45 +0100)]
diff: prepare all algos for diff report (part 2)

we need to pass the work structure to store the solved diff

Signed-off-by: Tanguy Pruvot <[email protected]>
9 years agolinux: build with native arch if the cpu supports avx
Tanguy Pruvot [Tue, 8 Dec 2015 18:37:10 +0000 (19:37 +0100)]
linux: build with native arch if the cpu supports avx

workaround to handle the pentium G detected as the Core i5/7 but not compatible with avx

9 years agoupdate readme, list debian/ubuntu required packages
Tanguy Pruvot [Tue, 8 Dec 2015 16:54:31 +0000 (17:54 +0100)]
update readme, list debian/ubuntu required packages

tested ok on Ubuntu 10.04 to 15.10, and debian 7

This page took 0.062059 seconds and 4 git commands to generate.