Compare commits

...

34 Commits

Author SHA1 Message Date
luigi1111
0d500f5349
Merge pull request #9752
8d6855c CoC: only allow Administrators to merge changes to the CoC (tobtoht)
2025-10-07 15:46:02 -04:00
luigi1111
3e2faec4da
Merge pull request #9750
e3db452 CoC: 'log an issue' -> 'open an issue' (tobtoht)
2025-10-07 15:45:29 -04:00
luigi1111
177e14ac56
Merge pull request #9749
5c32fbd CoC: do not encourage using real names or 'well-known aliases' (tobtoht)
2025-10-07 15:44:52 -04:00
luigi1111
d3b80ce528
Merge pull request #9478
b9bead5 CoC: prohibit anyone from committing patches to the project directly (tobtoht)
2025-10-07 15:44:07 -04:00
luigi1111
ebfb495512
Merge pull request #9744
dc5e15c CoC: remove constraint suggesting copyright can be 'owned collectively' (tobtoht)
2025-10-07 15:42:52 -04:00
luigi1111
9f1686ef78
Merge pull request #9743
53cb44c CoC: remove constraints on 'release history' (tobtoht)
2025-10-07 15:42:18 -04:00
luigi1111
574d50ffc2
Merge pull request #9742
a60c108 CoC: clarify 'project founders' (tobtoht)
2025-10-07 15:41:38 -04:00
luigi1111
46d794f98e
Merge pull request #9737
70d3907 docs: remove 'creating stable releases' section (tobtoht)
2025-10-07 15:40:24 -04:00
luigi1111
3f4f292847
Merge pull request #9735
69020aa docs: remove 'Monero Maintainer Team' (tobtoht)
2025-10-07 15:39:37 -04:00
luigi1111
0089f38682
Merge pull request #9733
8154b90 docs: do not automatically promote contributors to maintainers (tobtoht)
2025-10-07 15:34:19 -04:00
luigi1111
8f3ae08521
Merge pull request #9732
9bd265d docs: don't allow maintainers to edit docs without review (tobtoht)
2025-10-07 15:32:40 -04:00
luigi1111
42ed3c70ef
Merge pull request #9730
5345eba docs: allow maintainers to merge their own prs if queued (tobtoht)
2025-10-07 15:32:02 -04:00
luigi1111
a5aa602dce
Merge pull request #10147
292c053 Cleaner validation (faster and saner) (j-berman)
2025-10-07 15:22:35 -04:00
luigi1111
8e98fa954c
Merge pull request #10146
ca27d51 cryptonote_basic: remove redundant call to get_transaction_hash() in overload (jeffro256)
2025-10-07 15:21:02 -04:00
luigi1111
e0d83e0ebb
Merge pull request #10109
be79b83 Daemon RPC: fix on_getblockhash error return on too high height (j-berman)
2025-10-07 15:18:26 -04:00
luigi1111
df90240542
Merge pull request #10107
0fb4a8f src: update checkpoints to match v0.18.4.3 (selsta)
2025-10-07 15:17:44 -04:00
luigi1111
44b242d56f
Merge pull request #10086
1dbb4a7 wallet2: warn instead of throw when RingDB doesn't include spend (j-berman)
2025-10-07 15:15:23 -04:00
selsta
0fb4a8f9b1
src: update checkpoints to match v0.18.4.3 2025-10-07 16:37:18 +02:00
j-berman
292c053280 Cleaner validation (faster and saner) 2025-10-06 12:51:16 -07:00
jeffro256
ca27d519df
cryptonote_basic: remove redundant call to get_transaction_hash() in overload
Issue noticed by DataHoarder.
2025-10-05 16:47:57 -05:00
j-berman
be79b83b4e Daemon RPC: fix on_getblockhash error return on too high height 2025-09-25 16:18:22 -07:00
j-berman
1dbb4a7928 wallet2: warn instead of throw when RingDB doesn't include spend
A reorg can end up causing an output's position in the chain to
move. Since the wallet doesn't update the RingDB on reorg, it
may refer to the output's stale position in the chain.

This seems a reasonable solution rather than introducing complex
logic to update the stale ring member's value on rerog, since
RingDB can be deprecated with FCMP++.
2025-09-17 15:21:46 -07:00
tobtoht
8d6855c067
CoC: only allow Administrators to merge changes to the CoC 2025-01-29 08:20:09 +01:00
tobtoht
e3db452b52
CoC: 'log an issue' -> 'open an issue' 2025-01-29 02:23:39 +01:00
tobtoht
5c32fbd0b1
CoC: do not encourage using real names or 'well-known aliases' 2025-01-29 02:20:11 +01:00
tobtoht
b9bead529b
CoC: prohibit anyone from committing patches to the project directly 2025-01-29 02:16:06 +01:00
tobtoht
dc5e15cc3d
CoC: remove constraint suggesting copyright can be 'owned collectively' 2025-01-29 02:03:30 +01:00
tobtoht
53cb44c7b7
CoC: remove constraints on 'release history' 2025-01-29 01:56:06 +01:00
tobtoht
a60c108490
CoC: clarify 'project founders' 2025-01-29 01:52:24 +01:00
tobtoht
70d39076e0
docs: remove 'creating stable releases' section 2025-01-27 02:19:29 +01:00
tobtoht
69020aa0b3
docs: remove 'Monero Maintainer Team' 2025-01-26 17:27:46 +01:00
tobtoht
5345ebadef
docs: allow maintainers to merge their own prs if queued 2025-01-26 15:07:41 +01:00
tobtoht
8154b90136
docs: do not automatically promote contributors to maintainers 2025-01-26 14:49:17 +01:00
tobtoht
9bd265d132
docs: don't allow maintainers to edit docs without review 2025-01-26 14:37:36 +01:00
9 changed files with 20 additions and 45 deletions

View File

@ -137,8 +137,8 @@ Dates are provided in the format YYYY-MM-DD. The "Minimum" is the software versi
| 1978433 | 2019-11-30 | v12 | v0.15.0.0 | v0.16.0.0 | New PoW based on RandomX, only allow >= 2 outputs, change to the block median used to calculate penalty, v1 coinbases are forbidden, rct sigs in coinbase forbidden, 10 block lock time for incoming outputs
| 2210000 | 2020-10-17 | v13 | v0.17.0.0 | v0.17.3.2 | New CLSAG transaction format
| 2210720 | 2020-10-18 | v14 | v0.17.1.1 | v0.17.3.2 | forbid old MLSAG transaction format
| 2688888 | 2022-08-13 | v15 | v0.18.0.0 | v0.18.4.1 | ringsize = 16, bulletproofs+, view tags, adjusted dynamic block weight algorithm
| 2689608 | 2022-08-14 | v16 | v0.18.0.0 | v0.18.4.1 | forbid old v14 transaction format
| 2688888 | 2022-08-13 | v15 | v0.18.0.0 | v0.18.4.3 | ringsize = 16, bulletproofs+, view tags, adjusted dynamic block weight algorithm
| 2689608 | 2022-08-14 | v16 | v0.18.0.0 | v0.18.4.3 | forbid old v14 transaction format
| XXXXXXX | XXX-XX-XX | XXX | vX.XX.X.X | vX.XX.X.X | XXX |
X's indicate that these details have not been determined as of commit date.

View File

@ -77,11 +77,6 @@ You should have received a copy of the GNU General Public License along with thi
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
The "Monero Maintainer Team" is defined in this document as the following users:
- fluffypony
- moneromooo
- hyc
## Goals
C4 is meant to provide a reusable optimal collaboration model for open source software projects. It has these specific goals:
@ -115,13 +110,12 @@ C4 is meant to provide a reusable optimal collaboration model for open source so
- The project MUST use a share-alike license, such as BSD-3, the GPLv3 or a variant thereof (LGPL, AGPL), or the MPLv2.
- All contributions to the project source code ("patches") MUST use the same license as the project.
- All patches are owned by their authors. There MUST NOT be any copyright assignment process.
- The copyrights in the project MUST be owned collectively by all its Contributors.
- Each Contributor MUST be responsible for identifying themselves in the project Contributor list.
### Patch requirements
- Maintainers MUST have a Platform account and SHOULD use their real names or a well-known alias.
- Contributors SHOULD have a Platform account and MAY use their real names or a well-known alias.
- Maintainers MUST have a Platform account.
- Contributors SHOULD have a Platform account.
- A patch SHOULD be a minimal and accurate answer to exactly one identified and agreed problem.
- A patch MUST adhere to the code style guidelines of the project if these are defined.
- A patch MUST adhere to the "Evolution of Public Contracts" guidelines defined below.
@ -133,33 +127,23 @@ C4 is meant to provide a reusable optimal collaboration model for open source so
### Development process
- Change on the project MUST be governed by the pattern of accurately identifying problems and applying minimal, accurate solutions to these problems.
- To request changes, a user SHOULD log an issue on the project Platform issue tracker.
- To request changes, a user SHOULD open an issue on the project Platform issue tracker.
- The user or Contributor SHOULD write the issue by describing the problem they face or observe.
- The user or Contributor SHOULD seek consensus on the accuracy of their observation, and the value of solving the problem.
- Users MUST NOT log feature requests, ideas, or suggestions unrelated to Monero code or Monero's dependency code or Monero's potential/future dependency code or research which successfully implements Monero.
- Users MUST NOT log any solutions to problems (verifiable or hypothetical) of which are not explicitly documented and/or not provable and/or cannot be reasonably proven.
- Thus, the release history of the project MUST be a list of meaningful issues logged and solved.
- To work on an issue, a Contributor MUST fork the project repository and then work on their forked repository.
- To submit a patch, a Contributor MUST create a Platform pull request back to the project.
- A Contributor MUST NOT commit changes directly to the project.
- Patches MUST NOT be committed directly to the project.
- To discuss a patch, people MAY comment on the Platform pull request, on the commit, or elsewhere.
- To accept or reject a patch, a Maintainer MUST use the Platform interface.
- Maintainers SHOULD NOT merge their own patches except in exceptional cases, such as non-responsiveness from other Maintainers for an extended period (more than 30 days) or unless urgent as defined by the Monero Maintainers Team.
- Maintainers SHOULD NOT merge their own patches unless they were added to the merge queue on irc and have at least 3 approvals from contributors OR unless urgent as defined by the Monero Maintainers Team.
- Maintainers MUST NOT make value judgments on correct patches unless the Maintainer (as may happen in rare circumstances) is a core code developer.
- Maintainers MUST NOT merge pull requests in less than 168 hours (1 week) unless deemed urgent by at least 2 people from the Monero Maintainer Team.
- Maintainers MUST NOT merge pull requests in less than 168 hours (1 week) unless deemed urgent by at least 2 Maintainers.
- The Contributor MAY tag an issue as "Ready" after making a pull request for the issue.
- The user who created an issue SHOULD close the issue after checking the patch is successful.
- Maintainers SHOULD ask for improvements to incorrect patches and SHOULD reject incorrect patches if the Contributor does not respond constructively.
- Any Contributor who has value judgments on a correct patch SHOULD express these via their own patches.
- Maintainers MAY commit changes to non-source documentation directly to the project.
### Creating stable releases
- The project MUST have one branch ("master") that always holds the latest in-progress version and SHOULD always build.
- The project MUST NOT use topic branches for any reason. Personal forks MAY use topic branches.
- To make a stable release someone MUST fork the repository by copying it and thus become maintainer of this repository.
- Forking a project for stabilization MAY be done unilaterally and without agreement of project maintainers.
- A patch to a stabilization project declared "stable" MUST be accompanied by a reproducible test case.
### Evolution of public contracts
@ -174,8 +158,8 @@ C4 is meant to provide a reusable optimal collaboration model for open source so
### Project administration
- The project founders MUST act as Administrators to manage the set of project Maintainers.
- The Monero Core Team MUST act as Administrators to manage the set of project Maintainers.
- The Administrators MUST ensure their own succession over time by promoting the most effective Maintainers.
- A new Contributor who makes a correct patch MUST be invited to become a Maintainer.
- Administrators MAY remove Maintainers who are inactive for an extended period of time, or who repeatedly fail to apply this process accurately.
- Administrators SHOULD block or ban "bad actors" who cause stress and pain to others in the project. This should be done after public discussion, with a chance for all parties to speak. A bad actor is someone who repeatedly ignores the rules and culture of the project, who is needlessly argumentative or hostile, or who is offensive, and who is unable to self-correct their behavior when asked to do so by others.
- Maintainers MUST NOT merge changes to this specification unless they are also Administrators.

Binary file not shown.

View File

@ -267,6 +267,7 @@ namespace cryptonote
ADD_CHECKPOINT2(3375700, "96ef57b830ef7a7ccb61ada8595a4670765b6954d8cbf45c6cf583700a676302", "0x61209b7da8a0fa6");
ADD_CHECKPOINT2(3451000, "0cbc912e06e1adae11f6c9cb675d3159d225b4b04d4a6c61defe50ae1816dd60", "0x6aa5fc4226bab97");
ADD_CHECKPOINT2(3482000, "629071b10ddad67bdc6156102aba8e008a754c91da252eede852fff9175a9f0a", "0x6f1063da7e70c0e");
ADD_CHECKPOINT2(3516300, "fa08acbcda99fcc3cd94a749364a29fa6de9501a023cb6673d0c68fdf988b7c3", "0x738f0af4d65d459");
return true;
}

View File

@ -1256,7 +1256,6 @@ namespace cryptonote
crypto::hash get_transaction_hash(const transaction& t)
{
crypto::hash h = null_hash;
get_transaction_hash(t, h, NULL);
CHECK_AND_ASSERT_THROW_MES(get_transaction_hash(t, h, NULL), "Failed to calculate transaction hash");
return h;
}

View File

@ -3018,21 +3018,6 @@ bool Blockchain::check_tx_outputs(const transaction& tx, tx_verification_context
}
}
// from v4, forbid invalid pubkeys
if (hf_version >= 4) {
for (const auto &o: tx.vout) {
crypto::public_key output_public_key;
if (!get_output_public_key(o, output_public_key)) {
tvc.m_invalid_output = true;
return false;
}
if (!crypto::check_key(output_public_key)) {
tvc.m_invalid_output = true;
return false;
}
}
}
// from v8, allow bulletproofs
if (hf_version < 8) {
if (tx.version >= 2) {
@ -5528,7 +5513,7 @@ void Blockchain::cancel()
}
#if defined(PER_BLOCK_CHECKPOINT)
static const char expected_block_hashes_hash[] = "13593d6c877c021d35f3eeb468662aebccdbe2842b6998fb6e8eaa213bec1b8c";
static const char expected_block_hashes_hash[] = "4725ea463d1520b56ce7cd54dd478d44f976e65d73ad6fe01c427eff854ecf79";
void Blockchain::load_compiled_in_block_hashes(const GetCheckpointsCallback& get_checkpoints)
{
if (get_checkpoints == nullptr || !m_fast_sync)

View File

@ -1050,6 +1050,8 @@ namespace cryptonote
for(const auto& in: tx.vin)
{
CHECKED_GET_SPECIFIC_VARIANT(in, const txin_to_key, tokey_in, false);
if (rct::ki2rct(tokey_in.k_image) == rct::identity())
return false;
if (!(rct::scalarmultKey(rct::ki2rct(tokey_in.k_image), rct::curveOrder()) == rct::identity()))
return false;
}

View File

@ -1852,6 +1852,7 @@ namespace cryptonote
{
error_resp.code = CORE_RPC_ERROR_CODE_TOO_BIG_HEIGHT;
error_resp.message = std::string("Requested block height: ") + std::to_string(h) + " greater than current top block height: " + std::to_string(m_core.get_current_blockchain_height() - 1);
return false;
}
res = string_tools::pod_to_hex(m_core.get_block_id_by_height(h));
return true;

View File

@ -9300,8 +9300,11 @@ void wallet2::get_outs(std::vector<std::vector<tools::wallet2::get_outs_entry>>
MINFO("Ignoring output " << out << ", too recent");
}
}
THROW_WALLET_EXCEPTION_IF(!own_found, error::wallet_internal_error,
"Known ring does not include the spent output: " + std::to_string(td.m_global_output_index));
if (!own_found)
{
MWARNING("Known ring does not include the spent output: " + std::to_string(td.m_global_output_index)
+ ", there may have been a reorg that moved the spent output's position in the chain");
}
}
}