forked from cheng/wallet
Merge remote-tracking branch 'origin/docs'
This commit is contained in:
commit
770b0bf715
83
docs/design/mixer.md
Normal file
83
docs/design/mixer.md
Normal file
@ -0,0 +1,83 @@
|
||||
---
|
||||
title: >-
|
||||
Bitcoin mixer.
|
||||
sidebar: false
|
||||
notmine: false
|
||||
abstract: >-
|
||||
I want to get early adopters to use my planned privacy
|
||||
social net, as a small step to replacing SWIFT.
|
||||
all existing bitcoin mixers have been shut down because
|
||||
they relied on a centralized social net,
|
||||
which depended on domain names, which resulted
|
||||
in the fbi arriving at address of the owner of the
|
||||
domain name
|
||||
---
|
||||
|
||||
Samourai wallet migrated to centralisation, which directly led to them getting
|
||||
busted. That codebase is poisoned with communications that the FBI
|
||||
has flagged as actionable. And integrating anything into current
|
||||
Bitmessage is impossible except for the original developer. No
|
||||
big Python program is truly open source.
|
||||
|
||||
The correct design for a mixer is as follows. One has a social net,
|
||||
on which anyone can offer to coordinate a single mixing transaction.
|
||||
for a mix that will produce mixed coins (utxos )of a particular
|
||||
round number, 10mBTC, 20mBTC, 50mBTC, or 100mBTC,
|
||||
plus unmixed changed coins.
|
||||
|
||||
All the mixed coins are of equal value, for example all 100mBTC.
|
||||
|
||||
Not some funny value highly identifiable value like 99.9872384mBTC
|
||||
|
||||
People offer to contribute utxos to this mix transaction - revealing
|
||||
to the coordinater the public keys, the address, of the utxos,and
|
||||
revealing to the coordinator that these utxos have a common owner.
|
||||
|
||||
They also give him the blinded addresses of coins they want to
|
||||
receive. He blindsigns those addresses. They then reveal the unblinded
|
||||
addresses, and his unblinded signature, which proves he signed those
|
||||
addresses, but does not reveal to him which of the addresses he blindsigned it
|
||||
is -- he does not learn the relation between the utxos that will be contributed
|
||||
to the mix transaction, and the mixed or the change utxos that it will replace
|
||||
them. (Though he and anyone doing blockchain analysis can trace the
|
||||
change coins by the sudoko attack. But the sudoko attack is irrelevant to
|
||||
coins that are all the same round number of bitcoin, such as 10mBTC)
|
||||
|
||||
He then creates the transaction, and everyone signs it. If not everyone
|
||||
signs, everyone can see what the missing utxos were, the ones that
|
||||
were promised, and not delivered, and blacklist them,
|
||||
then try again.
|
||||
|
||||
People contributing already mixed utxos do not have to pay transaction fees
|
||||
so get back exactly what they contributed.
|
||||
|
||||
People contributing as yet unmixed bitcoin have to pay a portion of the transaction
|
||||
fee proportional to the number of utxos contributed and received. This is good for
|
||||
them because the free of charge remixed utxos are enlarging their anonymity pool.
|
||||
making each mixing transaction part of one enormous anonymity pool instead of many
|
||||
tiny anonymity pools.
|
||||
|
||||
If mixing does not work like this, then someone has fucked it up in order to profit from
|
||||
it, their users will be traced, and *they* will be traced, then arrested.
|
||||
|
||||
> > The core of my plan has always been Web 3.0, a privacy social net,
|
||||
> > and everything else is just monetization, because software never
|
||||
> > gets done properly or properly maintained without someone making
|
||||
> > money off it.
|
||||
|
||||
> I got what you mean now. Once you reach a point that's indeed a good
|
||||
> strategy to reinforce value of the network. You offer those
|
||||
> integrate your service to beat metcalfe's law, your network becomes
|
||||
> much more stronger. Facebook and some other social networks all
|
||||
> followed this path via. 'applications' within them.
|
||||
|
||||
> > I have been trying to do that, but it is hard to get to the front of
|
||||
> > the line of all the people who want to tell blockstream why
|
||||
> > blockstream should fund them and their projects.
|
||||
|
||||
> Have you really tried? Adam must have had some fidelity to
|
||||
> cypherpunks.
|
||||
|
||||
I have not tried, but I have been looking for entry points, and
|
||||
have come up empty. One has to have an in, and one has
|
||||
to listen before one speaks.s
|
@ -3,16 +3,13 @@ title:
|
||||
proof of share
|
||||
sidebar: true
|
||||
notmine: false
|
||||
abstract: >-
|
||||
Map a blockdag algorithm to the corporate form.
|
||||
The proof of share crypto currency will work like
|
||||
shares. Crypto wallets, or the humans controlling the wallets,
|
||||
correspond to shareholders.
|
||||
...
|
||||
|
||||
::: myabstract
|
||||
[abstract:]{.bigbold}
|
||||
Map a blockdag algorithm to the corporate form.
|
||||
The proof of share crypto currency will work like
|
||||
shares. Crypto wallets, or the humans controlling the wallets,
|
||||
correspond to shareholders.
|
||||
:::
|
||||
|
||||
# the problem to be solved
|
||||
|
||||
We need proof of share because our state regulated system of notaries,
|
||||
|
27
docs/design/python_rant.md
Normal file
27
docs/design/python_rant.md
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
title:
|
||||
Python rant
|
||||
sidebar: false
|
||||
notmine: false
|
||||
abstract: >-
|
||||
Python is the best language in the world for code you intend will only be used by yourself,
|
||||
used only a few times, then thrown away. It also works great for small trivial programs.
|
||||
For large programs intended to be used many times by many people on
|
||||
many different machines, it is a disaster.
|
||||
...
|
||||
|
||||
The bigger it gets, the more it traps you into code that is only going to run
|
||||
correctly on your one particular development system and that no one else is
|
||||
going to be able to modify and add to, so investing in python
|
||||
in anything you intend to be widely used is a trap. Open source
|
||||
python is also a trap, because no one else is going to be able
|
||||
to modify and add to it.
|
||||
|
||||
If I try to start modifying Bitmessage, I will surely fail. It is a bigger python
|
||||
program than anyone except the original developer can maintain and modify.
|
||||
|
||||
In this sense, no large open source python program is truly open source. PHP
|
||||
has the same problem, though to lesser degree. Javascript likewise. Has
|
||||
improved considerably, but still sucks. But typescript which is compiled to javascript is OK.
|
||||
so all big projects with many developers use typescript rather than javascript.
|
||||
Or they die before they get big.
|
@ -138,6 +138,10 @@ the verdict is that they are useless and unusable,
|
||||
|
||||
And we should use fibres instead. Fibres?
|
||||
|
||||
On the other hand, lots of people report incomprehensible complexity in
|
||||
the borrow checker when it and the programmer are struggling with
|
||||
asynch.
|
||||
|
||||
Boost fibres provide multiple stacks on a single thread of execution. But
|
||||
the consensus is that [fibres just massively suck](https://devblogs.microsoft.com/oldnewthing/20191011-00/?p=102989).
|
||||
|
||||
@ -164,7 +168,7 @@ how to do it with Goroutines.
|
||||
|
||||
## Massive concurrency in Rust
|
||||
|
||||
Well supported, works, widely used.
|
||||
Well supported, works, widely used. Hard to use.
|
||||
|
||||
The way Rust does things is that the input that you are waiting for is itself a
|
||||
future, and that is what drives the cooperative multi tasking engine.
|
||||
|
@ -216,12 +216,8 @@ calling one constructor from another.
|
||||
|
||||
```C++
|
||||
example::example(... arguments ...):
|
||||
example(...different arguments ...)
|
||||
{
|
||||
...
|
||||
code
|
||||
...
|
||||
};
|
||||
example(...different arguments ...){
|
||||
};
|
||||
```
|
||||
|
||||
|
||||
@ -335,20 +331,24 @@ std::is_same< std::string, decltype(declval<T>().toString()) >
|
||||
|
||||
# Template specialization
|
||||
|
||||
```C++
|
||||
namespace N {
|
||||
template<class T> class Y { /*...*/ }; // primary template
|
||||
template<> class Y<double> ; // forward declare specialization for double
|
||||
}
|
||||
template<>
|
||||
class N::Y<double> { /*...*/ }; // OK: specialization in same namespace
|
||||
```
|
||||
|
||||
is used when you have sophisticated template code, because you have to
|
||||
use recursion for looping as the Mpir system uses it to evaluate an
|
||||
arbitrarily complex recursive expression – but I think my rather crude
|
||||
implementation will not be nearly so clever.
|
||||
|
||||
```C++
|
||||
extern template int fun(int);
|
||||
/*prevents redundant instantiation of fun in this compilation unit – and thus renders the code for fun unnecessary in this compilation unit.*/
|
||||
```
|
||||
|
||||
# Abstract and virtual
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
---
|
||||
# katex
|
||||
title: >-
|
||||
Lets eat SWIFT's lunch.
|
||||
Let’s eat SWIFT's lunch.
|
||||
sidebar: true
|
||||
notmine: false
|
||||
abstract: >-
|
||||
@ -15,7 +14,7 @@ abstract: >-
|
||||
Double spends are resolved by databases of the entities receiving the messages.
|
||||
The grotesque profits are made by the banks that use it.
|
||||
And the profits for its crypto currency replacement are going to be made
|
||||
by the cexs, dexes daos and wallets that use it.
|
||||
by the cexs, dexes, daos and wallets that use it.
|
||||
With a lions share of the profits made by first dao of the first dex,
|
||||
because of first mover advantage.
|
||||
|
||||
@ -138,9 +137,9 @@ Liquid, to take over from SWIFT. Liquid can handle a lot of transactions per sec
|
||||
but to really take over from Swift, we are going to be taking Visa’s role in international transaction,
|
||||
and that will need Liquid Lightning, a layer three.
|
||||
Which theoretically exists, but has no useful consumer wallet and has no useful Liquid lightning network,
|
||||
because its command line wallet is only barely usable by a linux guru
|
||||
who is running exactly the right version of linux.
|
||||
Which is OK, if you have half a dozen linux systems running on
|
||||
because its command line wallet is only barely usable by a Linux guru
|
||||
who is running exactly the right version of Linux.
|
||||
Which is OK, if you have half a dozen Linux systems running on
|
||||
your private network and several shelves full of computers
|
||||
with no keyboards or video screens running in your basement,
|
||||
which you interact with over ssh and xrdp.
|
||||
@ -194,276 +193,88 @@ and liquid lightning tether,
|
||||
for SWIFT is a nexus of third parties and third parties are not going to build on a cex.
|
||||
A major reason that Particl is not very satisfactory is that Bitmessage is not very satisfactory.
|
||||
|
||||
# misc unorganized fragments
|
||||
# Plan
|
||||
|
||||
## consensus
|
||||
For a dex, one needs a a social net that
|
||||
allows end to end encrypted conversations and allows
|
||||
pseudonymous identities to conceal their network address, since if
|
||||
one is doing trades of blockchain currencies on
|
||||
a dex, exchanging one crypto currency for another,
|
||||
one has make public offers without revealing the network
|
||||
address of a computer that could be stolen, or
|
||||
a person who could be subjected to rubber hose cryptography, and
|
||||
engage in securely private human to human conversations
|
||||
about the resulting transactions, also without revealing one's
|
||||
network address.
|
||||
|
||||
> why do you hate POW? Because of resource waste? I thought it was the
|
||||
> reason for success of BTC. With proof of share, or proof of stake,
|
||||
> there will be always discussions of pre-mine, centralization etc.
|
||||
> Would it be the case?
|
||||
For liquid lightning to work, needs an exchange between level one
|
||||
lightning, liquid lightning,
|
||||
tether lightning, bitcoin, liquid bitcoin, and tether.
|
||||
|
||||
Hate the resource waste. It offends me. Plus a system that does
|
||||
not directly handle money, that is a a messaging system between
|
||||
systems that do handle money, cannot incentivise the
|
||||
necessary resource waste.
|
||||
And the early adopters are not going to get aboard if the wallet is
|
||||
locked to a cex, locked to Boltz, fearing
|
||||
that once Boltz gets Metcalfe's law on its side, it is going to
|
||||
enshitify the network.
|
||||
|
||||
It could bill people for messaging, and the payments could go to the block winner, but then
|
||||
it would be a dao or yet another crypto currency, and not a neutral platform that other daos
|
||||
and crypto currencies could use.
|
||||
Early adopters will want a dex, on which Blockz happens to be the
|
||||
major, but entirely replaceable, supplier
|
||||
of liquidity, so that if it turns evil, as corporations that have a
|
||||
Metcalfe's law lockin tend to do, the
|
||||
dex will become dominated by less evil alternatives.
|
||||
|
||||
Suppose we have a filecoin style proof of spacetime .
|
||||
Which also wastes resources, but identifies those
|
||||
peers that are contributing to the network by storing
|
||||
information and are capable of passing it around,
|
||||
and have lots of connections to other peers.
|
||||
All peers that pass the proof of space test become
|
||||
authorized consensus makers for
|
||||
a certain number of blocks, say 8192 blocks.
|
||||
The test is not too hard. Most peers are authorized.
|
||||
And a dex, a dex that exists for the perfectly respectable purpose
|
||||
of exchanging level one bitcoin
|
||||
for level two (lightning, grail, and liquid) bitcoin, tether, and level
|
||||
three (liquid lightning) bitcoin needs a
|
||||
privacy social net.
|
||||
|
||||
We harvest randomness, possibly from the fact that parties
|
||||
do not know each other's secret keys, possibly from the
|
||||
proof of space time test, so that each round, or each group of rounds,
|
||||
a peer gets a random weight, such that the inverse of the weight is uniformly
|
||||
distributed between one and two to the fifty sixth
|
||||
For a liquid lightning network to exist, needs a dex, the dex needs
|
||||
to have a privacy social net. But that would make the dex just one little
|
||||
island.
|
||||
|
||||
Which means the weight is non uniformly distributed, with a very few peers
|
||||
having most of the weight.
|
||||
Rather the dex needs to be *in* a privacy social net, which can have
|
||||
many dexs
|
||||
|
||||
Each peer goes with the consensus block that has the highest chain of weights that it knows of.
|
||||
To handle swift volumes, we need a liquid lightning network to
|
||||
exist, for it to exist there has to be
|
||||
a liquid lightning dex that mediates the exchange of liquid lightning for
|
||||
other crypto currencies,, and such a dex needs a mechanism for communicating
|
||||
publicly and privately without revealing one's network address.
|
||||
|
||||
Actually that algorithm has pathologies that could lead to suprising chain re-organisations
|
||||
-- a slightly more complex algorithm is needed.
|
||||
Therefore, need a privacy protocol that is an update to bitmessage,
|
||||
with additional capability of zooko names and total order broadcast, reliable in the cryptographic sense.
|
||||
|
||||
Every time a proposed block consensus is shared, it now has addiitional support.\
|
||||
The weights of the two peers that have that consensus
|
||||
and have the highest weight of all peers having that consensus is propagated
|
||||
among all the peers that have that consensus, and the weight of the consensus is the weight of
|
||||
the lesser of the two peers, plus the weight of the lesser of the two peers of the block it
|
||||
was built upon that were known to the peer that built upon it at the time he built upon it,
|
||||
plus the weight of the block that block was built upon, and so on and so forth.
|
||||
This messaging functionality is the crypto currency equivalent of that provided by SWIFT to the banks.
|
||||
|
||||
Thus the most well known chain is propagated, becoming more well known. The more
|
||||
peers that know of a block, the greater the weight of the block.
|
||||
A total order broadcast in the cryptographic sense being that if one has
|
||||
a transaction protocol in which Bob is supposed
|
||||
to send a message to Carol, and Carol supposed to send a
|
||||
corresponding response to Bob, the blockchain
|
||||
can prove who dropped the ball -- so one can have contracts on the
|
||||
blockchain that have one outcome if Bob failed to
|
||||
send the message, and a different outcome if Carol failed to reply.
|
||||
|
||||
It is a better algorithm, but a whole lot more work to implement than RandomX POW.
|
||||
This makes possible a whole lot of useful dex capabilities, which do
|
||||
not yet exist on any dex, but could and should.and Particl lack.
|
||||
|
||||
## plan
|
||||
# The big problem
|
||||
|
||||
|
||||
> > But there is a perfectly respectable case for a social net that
|
||||
> > allows end to end encrypted conversations and allows
|
||||
> > pseudonymous identitities to conceal their network address, since if
|
||||
> > one is doing trades of blockchain currencies on
|
||||
> > a dex, one has make public offers without revealing the network
|
||||
> > address of a computer that could be stolen, or
|
||||
> > a person who could be subjected to rubber hose cryptography, and
|
||||
> > engage in securely private conversations
|
||||
> > about the resulting transactions, also without revealing one's
|
||||
> > network address.
|
||||
> >
|
||||
> > For liquid lightning to work, needs an exchange between level one
|
||||
> > lightning, liquid lightning,
|
||||
> > tether lightning, bitcoin, liquid bitcoin, and tether.
|
||||
> >
|
||||
> > And the early adopters are not going to get aboard if the wallet is
|
||||
> > locked to a cex, locked to Boltz, fearing
|
||||
> > that once Boltz gets Metcalfe's law on its side, it is going to
|
||||
> > enshitify the network.
|
||||
> >
|
||||
> > Early adopters will want a dex, on which Blockz happens to be the
|
||||
> > major, but entirely replaceable, supplier
|
||||
> > of liquidity, so that if it turns evil, as corporations that have a
|
||||
> > Metcalfe's law lockin tend to do, the
|
||||
> > dex will become dominated by less evil alternatives.
|
||||
> >
|
||||
> > And a dex, a dex that exists for the perfectly respectable purpose
|
||||
> > of exchanging level one bitcoin
|
||||
> > for level two (lightning and liquid) bitcoin, tether, and level
|
||||
> > three (liquid lightning) bitcoin needs a
|
||||
> > privacy social net.
|
||||
|
||||
> It makes sense.
|
||||
|
||||
> > If they decide they want a liquid lightning network to exist, they
|
||||
> > need a dex, and they need a privacy social net for it
|
||||
> > (Though I need a name less likely to give corporate officers the
|
||||
> > hebee jeebies than privacy social net.
|
||||
|
||||
> Special social net. :)
|
||||
|
||||
Maybe I will just long windedly call it a social net designed to support
|
||||
humanand and machine communications in a way suitable for cryptographic currency
|
||||
purposes and especially a dex, that is a superset of the capabilities of Particl and
|
||||
Bisq human to human communication protocol, particl's system being Bitmessage,
|
||||
and Bitmessage being out of support.
|
||||
|
||||
> > My plan is to tell them they need a liquid lightning network to
|
||||
> > exist, for it to exist there has to be
|
||||
> > a liquid lightning dex, and it needs a mechanism for communicating
|
||||
> > publicly and privately
|
||||
> > without revealing one's network address.
|
||||
> >
|
||||
> > Therefore, fund a privacy protocol that is an update to bitmessage,
|
||||
> > with additional capability of
|
||||
> > zooko names and total order broadcast, reliable in the cryptographic
|
||||
> > sense.
|
||||
> >
|
||||
> > total order broadcast in the cryptographic sense being that if one has
|
||||
> > a transaction protocol in which Bob is supposed
|
||||
> > to send a message to Carol, and Carol supposed to send a
|
||||
> > corresponding response to Bob, the blockchain
|
||||
> > can prove who dropped the ball -- so one can have contracts on the
|
||||
> > blockchain that have one outcome if Bob failed to
|
||||
> > send the message, and a different outcome if Carol failed to reply.
|
||||
> >
|
||||
> > This makes possible a whole lot of useful dex capabilities, which do
|
||||
> > not yet exist on any dex, but could.
|
||||
> > I need to write them up as part of a totally bland proposal for a
|
||||
> > totally bland privacy social net that
|
||||
> > enables arbitrary dexes and daos, among them a totally bland dex
|
||||
> > that enables exchange of things near and dear to
|
||||
> > Blockstream's heart.
|
||||
|
||||
> Ok, if you want me to pass your proposal, I'm ready to do it. I'm
|
||||
> sure I can contact Adam, and at least get a response. I'm not sure
|
||||
> how it should be proposed though. "Someone I messaged on BitMessage
|
||||
> sharing this proposal, I'm sure you'll like it." :) But I think we
|
||||
> can work it out.
|
||||
|
||||
I want to read what Adam has been writing, before I prepare the proposal.
|
||||
|
||||
I think he has been on some you tube channels, or something like that --
|
||||
some kind of conference.
|
||||
|
||||
The proposal is going to be long and technical -- a white paper explaining what
|
||||
Bitmessage is, that it is being used in the Particl dex, and explaining what
|
||||
additional capabilities a dex needs, that Bisq and Particl lack.
|
||||
|
||||
## Python rant
|
||||
|
||||
Wouldn't it be an start to use existing code to experiment some p2p
|
||||
> payments using bitmessage protocol?
|
||||
|
||||
Python is the best language in the world for code you intend will only be used by yourself,
|
||||
used only a few times, then thrown away. It also works great for small trivial programs,
|
||||
because these are apt to remain reasonably portable.
|
||||
|
||||
But the bigger it gets, the more it traps you into code that is only going to run
|
||||
correctly on your one particular development system and that no one else is
|
||||
going to be able to modify and add to, so investing in python
|
||||
in anything you intend to be widely used is a trap. Open source
|
||||
python is also a trap, because no one else is going to be able
|
||||
to modify and add to it.
|
||||
|
||||
If I try to start modifying Bitmessage, I will surely fail. It is a bigger python
|
||||
program than anyone except the original developer can maintain and modify.
|
||||
|
||||
In this sense, no large open source python program is truly open source. PHP
|
||||
has the same problem, though to lesser degree. Javascript likewise. Has
|
||||
improved considerably, but still sucks. But typescript which is compiled to javascript is OK.
|
||||
so all big projects with many developers use typescript rather than javascript.
|
||||
Or they die before they get big.
|
||||
|
||||
## mixer plan
|
||||
|
||||
(Which I am sure blockstream does not want)
|
||||
|
||||
> > Get early adopters to use it. One obvious use case is bitcoin
|
||||
> > mixing. We have mixers, but the social environments that made them
|
||||
> > usable have all been shut down.
|
||||
|
||||
> Or maybe integratate Samourai wallet into current BitMessage client?
|
||||
|
||||
Samourai wallet migrated to centralisation, which directly led to them getting
|
||||
busted. That codebase is poisoned with communications that the FBI
|
||||
has flagged as actionable. And integrating anything into current
|
||||
Bitmessage is impossible except for the original developer. No
|
||||
big Python program is truly open source.
|
||||
|
||||
The correct design for a mixer is as follows. One has a social net,
|
||||
on which anyone can offer to coordinate a single mixing transaction.
|
||||
for a mix that will produce mixed coins (utxos )of a particular
|
||||
round number, 10mBTC, 20mBTC, 50mBTC, or 100mBTC,
|
||||
plus unmixed changed coins.
|
||||
|
||||
All the mixed coins are of equal value, for example all 100mBTC.
|
||||
|
||||
Not some funny value highly identifiable value like 99.9872384mBTC
|
||||
|
||||
People offer to contribute utxos to this mix transaction - revealing
|
||||
to the coordinater the public keys, the address, of the utxos,and
|
||||
revealing to the coordinator that these utxos have a common owner.
|
||||
|
||||
They also give him the blinded addresses of coins they want to
|
||||
receive. He blindsigns those addresses. They then reveal the unblinded
|
||||
addresses, and his unblinded signature, which proves he signed those
|
||||
addresses, but does not reveal to him which of the addresses he blindsigned it
|
||||
is -- he does not learn the relation between the utxos that will be contributed
|
||||
to the mix transaction, and the mixed or the change utxos that it will replace
|
||||
them. (Though he and anyone doing blockchain analysis can trace the
|
||||
change coins by the sudoko attack. But the sudoko attack is irrelevant to
|
||||
coins that are all the same round number of bitcoin, such as 10mBTC)
|
||||
|
||||
He then creates the transaction, and everyone signs it. If not everyone
|
||||
signs, everyone can see what the missing utxos were, the ones that
|
||||
were promised, and not delivered, and blacklist them,
|
||||
then try again.
|
||||
|
||||
People contributing already mixed utxos do not have to pay transaction fees
|
||||
so get back exactly what they contributed.
|
||||
|
||||
People contributing as yet unmixed bitcoin have to pay a portion of the transaction
|
||||
fee proportional to the number of utxos contributed and received. This is good for
|
||||
them because the free of charge remixed utxos are enlarging their anonymity pool.
|
||||
making each mixing transaction part of one enormous anonymity pool instead of many
|
||||
tiny anonymity pools.
|
||||
|
||||
If mixing does not work like this, then someone has fucked it up in order to profit from
|
||||
it, their users will be traced, and *they* will be traced, then arrested.
|
||||
|
||||
> > The core of my plan has always been Web 3.0, a privacy social net,
|
||||
> > and everything else is just monetization, because software never
|
||||
> > gets done properly or properly maintained without someone making
|
||||
> > money off it.
|
||||
|
||||
> I got what you mean now. Once you reach a point that's indeed a good
|
||||
> strategy to reinforce value of the network. You offer those
|
||||
> integrate your service to beat metcalfe's law, your network becomes
|
||||
> much more stronger. Facebook and some other social networks all
|
||||
> followed this path via. 'applications' within them.
|
||||
|
||||
> > I have been trying to do that, but it is hard to get to the front of
|
||||
> > the line of all the people who want to tell blockstream why
|
||||
> > blockstream should fund them and their projects.
|
||||
|
||||
> Have you really tried? Adam must have had some fidelity to
|
||||
> cypherpunks.
|
||||
|
||||
I have not tried, but I have been looking for entry points, and
|
||||
have come up empty. One has to have an in, and one has
|
||||
to listen before one speaks.
|
||||
|
||||
## the big problem
|
||||
|
||||
The urgent important problem that crypto currency has to solve is privacy and scaliing.
|
||||
The urgent important problem that crypto currency has to solve is privacy and scaling.
|
||||
|
||||
But cannot solve it just by creating a currency that is private and scales,
|
||||
because scaling is not a competitive advantage over ten thousand scamcoins,
|
||||
five thousand shitcoins, and two dozen altcoins,
|
||||
until you reach a market capitalization of thirty billion dollars,
|
||||
which is when scaling started to bite bitcoin in 2016-2017
|
||||
which is when scaling started to bite bitcoin in 2016-2017, and privacy alone
|
||||
is not an advantage over Monaro, Litecoin, ZCash, and Grin.
|
||||
|
||||
Further, all the recursive snark libraries are rough around the edges.
|
||||
Polygon's Poly2 is OK, but though theoretically open source,
|
||||
it is not exactly open source, there are complications and gotchas.
|
||||
Further, all the recursive snark libraries are bleeding edge and rough around the edges.
|
||||
|
||||
So, the path is to create a privacy social net tool first.
|
||||
A tool where you can securely have public and private conversations
|
||||
without your IP being discoverable. Bitmessage done right.
|
||||
|
||||
A Dao that facilitates stuff done wth crypto currency,
|
||||
A Dao that facilitates stuff done with crypto currency,
|
||||
such as Bisq and Particl, needs such a social tool,
|
||||
and what they have is rather broken.
|
||||
|
||||
@ -473,21 +284,21 @@ efficient and transparent to investors, a sovereign corporation,
|
||||
while existing daos are dancing around the Howey test,
|
||||
and so are opaque and disorderly.
|
||||
|
||||
So, create, not a crypto currency, but an environment for such Daos.
|
||||
So, create, not a crypto currency, not a dao, but an environment for such daos.
|
||||
Among them daos for trading crypto currency.
|
||||
A Dao that facilitates crypto currency transactions needs a trade currency
|
||||
A dao that facilitates crypto currency transactions needs a trade currency
|
||||
and dao ownership currency (substitute for shares).
|
||||
These are apt to be one and the same, to obfuscate the Howey test,
|
||||
but they need not be and probably should not be.
|
||||
|
||||
There are a whole lot of capabilities that a crypto coin needs
|
||||
-- and we see that even in things that are well funded by many large corporations,
|
||||
these things are geneally missing.
|
||||
these things are generally missing.
|
||||
|
||||
Blockstream does not have a satisfactory lightning wallet,
|
||||
and their business plan depends on the existence of a satisfactory lightning wallet.
|
||||
Litecoin has demonstrated atomic exchange between
|
||||
Bitcoin, bitcoin lightning, Litecoin, and litecoin lightning,
|
||||
Bitcoin, bitcoin lightning, Litecoin, and Litecoin lightning,
|
||||
but does not have a dao in which to do it. Particl is not quite working,
|
||||
and Bisq lacks important things and still, after all these years,
|
||||
has known major bugs which can cause the loss of lots of money.
|
||||
@ -508,34 +319,31 @@ Large python projects accumulate such technical debt that only the original prog
|
||||
can fix them, and become ever more fragile to minor,
|
||||
obscure, and seemingly irrelevant changes in their environment.
|
||||
|
||||
Get early adopters to use it. One obvious use case is bitcoin mixing.
|
||||
We have mixers, but the social environments that made them usable have all been shut down.
|
||||
|
||||
An important use case for bitmessage was selling services for crypto currency
|
||||
An important use case for Bitmessage was selling services for crypto currency
|
||||
to people who did not want to reveal their IP address.
|
||||
This use case becomes a lot more conveniient if we can lift crypto transactions on existing privacy currencies
|
||||
(Litecoin and Monero) and semi secure currencies (lightning) into the communication channel,
|
||||
This use case becomes a lot more convenient if we can lift crypto transactions on existing privacy currencies
|
||||
(Litecoin and Monaro) and semi secure currencies (lightning) into the communication channel,
|
||||
as Nostr does a sort of mostly OK job of lifting lightning
|
||||
into the communication channel.
|
||||
First such use, following the footsteps of nostr tips.
|
||||
First such use, following the footsteps of Nostr tips.
|
||||
|
||||
Get existing Daos to use it
|
||||
|
||||
Get new Daos to use it. A Dao that wants to openly organise in an efficient manner transparent
|
||||
to investors is going to want a very private privacy blockchain on which to issue its shares.
|
||||
to investors (which is to say in violation of the Howey test) is going to want a very private privacy blockchain on which to issue its shares. Such a dao
|
||||
(a sovereign corporation) will
|
||||
want to organise over a privacy social net, and its shares to be a privacy coin.
|
||||
|
||||
And now, it is back to plan A. (almost) A privacy blockchain
|
||||
on which anyone can issue a Daocoin. Or a shitcoin or scamcoin.
|
||||
on which anyone can issue a daocoin. Or a shitcoin or scamcoin.
|
||||
|
||||
But the privacy blockchain does not need to be fully scalable.
|
||||
It does, however need to be future compatible with the technologies
|
||||
that make full scalability possible. But we delay in the hope that by currency time,
|
||||
recursive snarks libraries do not have quite so many rough edges
|
||||
|
||||
> > The size of this project is illustrated by how many other big
|
||||
> > projects need some key element of this project, and do not have it.
|
||||
|
||||
> I'm not sure if I understood that to be honest.
|
||||
The size of this project is illustrated by how many other big well funded
|
||||
projects need some key element of this project, and do not have it.
|
||||
|
||||
The core of my plan has always been Web 3.0, a privacy social net,
|
||||
and everything else is just monetization,
|
||||
@ -546,79 +354,8 @@ And I look at all these people doing Web 3.0 stuff,
|
||||
or doing projects like particl that really require Web 3.0,
|
||||
and they are not done.
|
||||
|
||||
> Can you double check Keet/Pear.. Holepunch thing? I belive a good
|
||||
> part of Blockstream funding is coming from Tether. And Tether (and
|
||||
> their CEO) loves Keet (like his brainchild). Problem is they don't
|
||||
> have any good use case. I believe a project somehow leveraging would
|
||||
> easily get funding from Blockstream hence Tether.
|
||||
|
||||
I have been trying to do that, but it is hard to get to the front of
|
||||
the line of all the people who want to tell blockstream why
|
||||
blockstream should fund them and their projects.
|
||||
|
||||
Also, I need to find the keywords needed to get the proposal
|
||||
past the layer of idiot no men whose job is to protect them
|
||||
from all those people with bright ideas as to why blockstream should fund them.
|
||||
|
||||
What words are they internally using for stuff that really needs to be done?
|
||||
|
||||
But some of the stuff I want done, they really need done.
|
||||
>
|
||||
> Also excuse me but how it would work if you stays anonymous and pay
|
||||
> devs to work on it. How can they fund, doesn't it require
|
||||
> psedenomous organization? Or do you think some can work in psedonmy
|
||||
> but some can be non-anonymous while working on it?
|
||||
|
||||
I think they should promise an L-BTC bounty or lightning Bitcoin bounty
|
||||
for someone who accomplishes certain goals.
|
||||
Other people have used this funding model, albeit lightning Bitcoin.
|
||||
|
||||
> Even if you have the funding, it is not easy to bring talent on the
|
||||
> table. What's your plan to find to hire the talent even if you can
|
||||
> pay them?
|
||||
|
||||
Litecoin bounties for contributions that get included in the repository.
|
||||
(Litecoin being arguably the best existing privacy currency -- at least when you use mweb addresses.
|
||||
|
||||
> > And so, all the larger moving parts that have to be part of the
|
||||
> > ultimate coin, have to be part of something that has more immediate
|
||||
> > utility, and is part of a business plan that will bring the project
|
||||
> > closer to completion, and product of that completion closer to
|
||||
> > getting past the cold start problem
|
||||
> 100%
|
||||
>
|
||||
|
||||
## collapse and cryptocurrency
|
||||
|
||||
>
|
||||
> Or, do you think it will replace the Gold, nobody would need or want
|
||||
> to use it.
|
||||
>
|
||||
> Today, if you ask me to accept Gold vs. Bitcoin, leaving aside the
|
||||
> speculative part, I'd go 100% for gold. I'm not sure that would
|
||||
> change in the future. But also maybe that's because I think I'm
|
||||
> emotional about it. I always thought Gold is a godly thing, a "gift"
|
||||
> of god to us punish or reward. No question fiat is a scam, or even
|
||||
> in a good intent it is an opiod of an ecomy, however I'm really not
|
||||
> convinced about Gold.
|
||||
|
||||
Obviously over the past few years, Bitcoin has risen enormously more than gold.
|
||||
|
||||
When it looked like full scale war might break out, bitcoin fell a little,
|
||||
and gold rose considerably.
|
||||
|
||||
If the crisis is nuclear war, Gold, 22 LR rifle ammo, whiskey, tobacco,
|
||||
and coffee are likely to be considerably more valuable investments than bitcoin.
|
||||
|
||||
If, on the other hand, the crisis is state internal collapse and red terror
|
||||
against whites, straight males, and Christians, bitcoin because you can carry it through an airport,
|
||||
while gold will be fairly useless
|
||||
|
||||
If the crisis is that you are likely to get conscripted to die in Eastern Europe or the middle east or Taiwan,
|
||||
or all of them simultaneously, bitcoin will be useful, and gold fairly useless.
|
||||
|
||||
If the crisis is hyperinflation and collapse of the US dollar,
|
||||
Gold and Bitcoin both work, but Bitcoin is better because
|
||||
the primary problem will be transactions over distance.
|
||||
|
||||
If the problem is all of the above, simultaneously or in rapid succession, Bitcoin.
|
||||
And so, all the larger moving parts that have to be part of the
|
||||
ultimate coin, have to be part of something that has more immediate
|
||||
utility, and is part of a business plan that will bring the project
|
||||
closer to completion, and product of that completion closer to
|
||||
getting past the cold start problem.
|
||||
|
@ -10,6 +10,8 @@ abstract: >-
|
||||
as wading through molasses, failed to scale
|
||||
---
|
||||
|
||||
This document is work in progress, incomplete and inchoerent.
|
||||
|
||||
# Failure of Bitcoin consensus to scale
|
||||
Mining pools, asics
|
||||
|
||||
@ -35,3 +37,56 @@ make decisions that are contrary to everyone else's interests. Even if the
|
||||
individual miner is better off than mining solo, this could well make everyone
|
||||
including the individual miner worse off, because he and everyone may be
|
||||
adversely affected by other people's decision to pool mine.
|
||||
|
||||
# POW
|
||||
|
||||
> why do you hate POW? Because of resource waste? I thought it was the
|
||||
> reason for success of BTC. With proof of share, or proof of stake,
|
||||
> there will be always discussions of pre-mine, centralization etc.
|
||||
> Would it be the case?
|
||||
|
||||
Hate the resource waste. It offends me. Plus a system that does
|
||||
not directly handle money, that is a a messaging system between
|
||||
systems that do handle money, cannot incentivise the
|
||||
necessary resource waste.
|
||||
|
||||
It could bill people for messaging, and the payments could go to the block winner, but then
|
||||
it would be a dao or yet another crypto currency, and not a neutral platform that other daos
|
||||
and crypto currencies could use.
|
||||
|
||||
Suppose we have a filecoin style proof of spacetime .
|
||||
Which also wastes resources, but identifies those
|
||||
peers that are contributing to the network by storing
|
||||
information and are capable of passing it around,
|
||||
and have lots of connections to other peers.
|
||||
All peers that pass the proof of space test become
|
||||
authorized consensus makers for
|
||||
a certain number of blocks, say 8192 blocks.
|
||||
The test is not too hard. Most peers are authorized.
|
||||
|
||||
We harvest randomness, possibly from the fact that parties
|
||||
do not know each other's secret keys, possibly from the
|
||||
proof of space time test, so that each round, or each group of rounds,
|
||||
a peer gets a random weight, such that the inverse of the weight is uniformly
|
||||
distributed between one and two to the fifty sixth
|
||||
|
||||
Which means the weight is non uniformly distributed, with a very few peers
|
||||
having most of the weight.
|
||||
|
||||
Each peer goes with the consensus block that has the highest chain of weights that it knows of.
|
||||
|
||||
Actually that algorithm has pathologies that could lead to suprising chain re-organisations
|
||||
-- a slightly more complex algorithm is needed.
|
||||
|
||||
Every time a proposed block consensus is shared, it now has addiitional support.\
|
||||
The weights of the two peers that have that consensus
|
||||
and have the highest weight of all peers having that consensus is propagated
|
||||
among all the peers that have that consensus, and the weight of the consensus is the weight of
|
||||
the lesser of the two peers, plus the weight of the lesser of the two peers of the block it
|
||||
was built upon that were known to the peer that built upon it at the time he built upon it,
|
||||
plus the weight of the block that block was built upon, and so on and so forth.
|
||||
|
||||
Thus the most well known chain is propagated, becoming more well known. The more
|
||||
peers that know of a block, the greater the weight of the block.
|
||||
|
||||
It is a better algorithm, but a whole lot more work to implement than RandomX POW.
|
@ -4,6 +4,8 @@ title: >-
|
||||
Social networking
|
||||
sidebar: true
|
||||
notmine: false
|
||||
misc_links: >-
|
||||
Let’s eat <a href="SWIFT.html" target="_blank">SWIFT's lunch</a>.<br>
|
||||
abstract: >-
|
||||
Speech is suppressed by censorship, and on "free speech" platforms by state sponsored shill spam.
|
||||
Crypto currency transaction metadata goes over insecure networks, so we need a secure, uncensorable, and spam resistent
|
||||
|
@ -35,8 +35,8 @@ fi
|
||||
katex=" --katex="$docroot
|
||||
fi
|
||||
done <$f
|
||||
pandoc --variable $banner_height --variable targetDocroot:$targetDocroot --template $docroot"pandoc_templates/pandoc.template" $katex $options $destdir$base.html $base.md
|
||||
echo "$destdir$base.html from $f"
|
||||
pandoc --variable $banner_height --variable targetDocroot:$targetDocroot --template $docroot"pandoc_templates/pandoc.template" $katex $options $destdir$base.html $base.md
|
||||
#else
|
||||
# echo " $base.html up to date"
|
||||
fi
|
||||
|
260
docs/setup/nixos.md
Normal file
260
docs/setup/nixos.md
Normal file
@ -0,0 +1,260 @@
|
||||
---
|
||||
title:
|
||||
Nixos
|
||||
sidebar: true
|
||||
...
|
||||
|
||||
Nixos is primarily a package manager with a declarative functional language as its package manager.
|
||||
|
||||
Which makes it possible to reproducibly create a setup. Unfortunately the packages are hard to customise, because access to the
|
||||
configuration files is restricted and non trivial -- you have to create your own package.
|
||||
|
||||
Nixos solves the problem of dll hell by having any number of configurations living on the same machine -- which leads to massive and rapid accumulation of garbage. Garbage collection is very slow, and requires either a lot of ram or a lot of swap (12GB swap recommended. This is a feature I do not want, but wind up suffering, for the advantage of reproducible setups.
|
||||
|
||||
To avoid bloat, can use a strategy of re-install from scratch, which Nixos makes less painful. I notice the mail server insists
|
||||
on pinning to a specific Nixos release.
|
||||
|
||||
# Install Nixos
|
||||
|
||||
# minimal server
|
||||
|
||||
ssh and avahi daemon, pubkeys setup for ssh, users created.
|
||||
|
||||
## configuration.nix
|
||||
|
||||
```nix
|
||||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page, on
|
||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# networking.hostName = "nixos"; # Define your hostname.
|
||||
# Pick only one of the below networking options.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
# networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
# Set your time zone.
|
||||
# time.timeZone = "Europe/Amsterdam";
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
# console = {
|
||||
# font = "Lat2-Terminus16";
|
||||
# keyMap = "us";
|
||||
# useXkbConfig = true; # use xkb.options in tty.
|
||||
# };
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
# services.xserver.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
# services.xserver.xkb.layout = "us";
|
||||
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
# services.printing.enable = true;
|
||||
|
||||
# Enable sound.
|
||||
# hardware.pulseaudio.enable = true;
|
||||
# OR
|
||||
# services.pipewire = {
|
||||
# enable = true;
|
||||
# pulse.enable = true;
|
||||
# };
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
services.libinput.enable = false;
|
||||
|
||||
#enable avahi-daemon
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
ipv6 = true;
|
||||
ipv4 = true;
|
||||
publish = {
|
||||
enable = true;
|
||||
addresses = true;
|
||||
};
|
||||
# nssmdns4 = true;
|
||||
};
|
||||
|
||||
# guest additions
|
||||
# not very useful unless desktop enabled, or maybe it just does not work at all
|
||||
#virtualisation.virtualbox.guest.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.cherry = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAVcyLSWwsa8aN+v2PaS1wuHXGVhTdC+43B3eZ9j/C/M" ];
|
||||
# packages = with pkgs; [
|
||||
# firefox
|
||||
# tree
|
||||
# ];
|
||||
};
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.root = {
|
||||
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAVcyLSWwsa8aN+v2PaS1wuHXGVhTdC+43B3eZ9j/C/M" ];
|
||||
};
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
# environment.systemPackages = with pkgs; [
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
# wget
|
||||
# ];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
hostKeys = [
|
||||
{
|
||||
path = "/etc/ssh/ssh_host_ed25519_key";
|
||||
rounds = 100;
|
||||
type = "ed25519";
|
||||
}
|
||||
];
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
PubkeyAuthentication = true;
|
||||
PermitRootLogin = "prohibit-password";
|
||||
UsePAM = false;
|
||||
ChallengeResponseAuthentication = false;
|
||||
Ciphers = [ "chacha20-poly1305@openssh.com" ];
|
||||
GatewayPorts = "Yes";
|
||||
KbdInteractiveAuthentication = false;
|
||||
KexAlgorithms = [ "curve25519-sha256" "curve25519-sha256@libssh.org" ];
|
||||
Macs = [ "hmac-sha2-256-etm@openssh.com" ];
|
||||
};
|
||||
};
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
networking.firewall.enable = false;
|
||||
|
||||
# Copy the NixOS configuration file and link it from the resulting system
|
||||
# (/run/current-system/configuration.nix). This is useful in case you
|
||||
# accidentally delete configuration.nix.
|
||||
# system.copySystemConfiguration = true;
|
||||
|
||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||
#
|
||||
# Most users should NEVER change this value after the initial install, for any reason,
|
||||
# even if you've upgraded your system to a new NixOS release.
|
||||
#
|
||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||
# to actually do that.
|
||||
#
|
||||
# This value being lower than the current NixOS release does NOT mean your system is
|
||||
# out of date, out of support, or vulnerable.
|
||||
#
|
||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||
# and migrated your data accordingly.
|
||||
#
|
||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||
system.stateVersion = "24.05"; # Did you read the comment?
|
||||
}
|
||||
```
|
||||
|
||||
## hardware-configuration.nix
|
||||
|
||||
This should be set up automatically by the install
|
||||
process. For a human to do it is very difficult.
|
||||
|
||||
```nix
|
||||
{
|
||||
imports = [ ];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "ata_piix" "ohci_pci" "ehci_pci" "ahci" "sd_mod" "sr_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/bf0ee7f8-0397-44d6-a3f7-462b848d0912";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/B4E2-93D5";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/2b67021b-3b31-4e2d-a521-05362ffb39f8"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp0s3.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
virtualisation.virtualbox.guest.enable = true;
|
||||
}
|
||||
```
|
||||
|
||||
# change config
|
||||
|
||||
```bash
|
||||
nano /etc/nixos/conf*.nix
|
||||
df -h .
|
||||
nixos-rebuild test
|
||||
nixos-rebuild boot
|
||||
df -h .
|
||||
```
|
||||
|
||||
## garbage collect old configs
|
||||
|
||||
```bash
|
||||
nix-env --delete-generations old
|
||||
nix-store --gc --print-dead
|
||||
nix-store --gc --print-live
|
||||
nix-store --gc
|
||||
```
|
||||
|
||||
# Install nginx, mariadb, and php
|
||||
|
||||
[Nginx setup](https://wiki.nixos.org/wiki/Nginx#LEMP_stack)
|
||||
|
||||
# Nixos mail server
|
||||
|
||||
[This](https://nixos-mailserver.readthedocs.io/en/latest/) has the huge advantage that it only needs a small computer.
|
||||
|
||||
Setup is also decribed as ridiculously easy -- compare and contrast with much grief while setting up on debian.
|
||||
|
||||
And the huge disadvantage that it only exists for Nix 23.05, while the latest "stable" (not very stable at all) release is 24.05
|
||||
|
||||
It also has only a minimal nginx setup. Not at all sure what will happen when I combine it with a real nginx setup.
|
Loading…
Reference in New Issue
Block a user