Skip to content

Commit c98d187

Browse files
authored
Add three Transaction Relay config options to Advanced Settings (#17)
1 parent b33d233 commit c98d187

File tree

3 files changed

+119
-0
lines changed

3 files changed

+119
-0
lines changed

logic/config.js

+19
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ const DEFAULT_ADVANCED_SETTINGS = {
3535
maxmempool: 300,
3636
mempoolexpiry: 336,
3737
persistmempool: true,
38+
datacarrier: true,
39+
datacarriersize: 83,
40+
permitbaremultisig: true,
3841
maxorphantx: 100,
3942
reindex: false,
4043
// RPC/REST
@@ -156,6 +159,22 @@ function settingsToMultilineConfString(settings) {
156159
umbrelBitcoinConfig.push('persistmempool=1');
157160
}
158161

162+
// datacarrier
163+
if (!settings.datacarrier) {
164+
umbrelBitcoinConfig.push("# Relay and mine data carrier transactions.");
165+
umbrelBitcoinConfig.push('datacarrier=0');
166+
}
167+
168+
// datacarriersize
169+
umbrelBitcoinConfig.push("# Maximum size of arbitrary data to relay and mine.");
170+
umbrelBitcoinConfig.push(`datacarriersize=${settings.datacarriersize}`);
171+
172+
// permitbaremultisig
173+
if (!settings.permitbaremultisig) {
174+
umbrelBitcoinConfig.push("# Relay non-P2SH multisig.");
175+
umbrelBitcoinConfig.push('permitbaremultisig=0');
176+
}
177+
159178
// maxorphantx
160179
umbrelBitcoinConfig.push("# Maximum number of orphan transactions to be kept in memory.");
161180
umbrelBitcoinConfig.push(`maxorphantx=${settings.maxorphantx}`);

ui/src/components/AdvancedSettingsModal.vue

+91
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,97 @@
655655
</div>
656656
</b-card-body>
657657

658+
<!-- DATACARRIER -->
659+
<b-card-body class="subsetting-body px-2 px-sm-3">
660+
<div>
661+
<div class="d-flex justify-content-between align-items-center">
662+
<div class="flex-sm-grow-1">
663+
<label class="mb-0" for="mempool">
664+
<p class="subsetting-title font-weight-bold mb-0 mr-1">
665+
Relay transaction with embedded data
666+
<span class="subsetting-config-name text-monospace font-weight-normal d-block">
667+
datacarrier
668+
</span>
669+
</p>
670+
</label>
671+
</div>
672+
<div>
673+
<toggle-switch
674+
id="datacarrier"
675+
class="align-self-center"
676+
:on="settings.datacarrier"
677+
@toggle="status => (settings.datacarrier = status)"
678+
></toggle-switch>
679+
</div>
680+
</div>
681+
<small class="w-lg-75 d-block text-muted mt-1">
682+
Relay and mine data carrier transactions.
683+
</small>
684+
</div>
685+
</b-card-body>
686+
687+
<!-- DATACARRIERSIZE -->
688+
<b-card-body class="subsetting-body px-2 px-sm-3">
689+
<div>
690+
<div class="d-flex justify-content-between align-items-center">
691+
<div class="flex-sm-grow-1">
692+
<label class="mb-0" for="mempoolexpiry">
693+
<p class="subsetting-title font-weight-bold mb-0 mr-1">
694+
Maximum size of relayed transactions with embedded data
695+
<span class="subsetting-config-name text-monospace font-weight-normal d-block">
696+
datacarriersize
697+
</span>
698+
</p>
699+
</label>
700+
</div>
701+
<div class="input-container ml-1">
702+
<b-input-group append="bytes">
703+
<b-form-input
704+
class="advanced-settings-input"
705+
id="datacarriersize"
706+
type="number"
707+
v-model="settings.datacarriersize"
708+
number
709+
></b-form-input>
710+
</b-input-group>
711+
</div>
712+
</div>
713+
<small class="w-lg-75 d-block text-muted mt-1">
714+
Adjust the maximum size of relayed transactions containing arbitrary data.
715+
Note: datacarrier takes precedence over datacarriersize.
716+
</small>
717+
</div>
718+
</b-card-body>
719+
720+
<!-- PERMITBAREMULTISIG -->
721+
<b-card-body class="subsetting-body px-2 px-sm-3">
722+
<div>
723+
<div class="d-flex justify-content-between align-items-center">
724+
<div class="flex-sm-grow-1">
725+
<label class="mb-0" for="mempool">
726+
<p class="subsetting-title font-weight-bold mb-0 mr-1">
727+
Relay old type of multisig transaction
728+
<span class="subsetting-config-name text-monospace font-weight-normal d-block">
729+
permitbaremultisig
730+
</span>
731+
</p>
732+
</label>
733+
</div>
734+
<div>
735+
<toggle-switch
736+
id="permitbaremultisig"
737+
class="align-self-center"
738+
:on="settings.permitbaremultisig"
739+
@toggle="status => (settings.permitbaremultisig = status)"
740+
></toggle-switch>
741+
</div>
742+
</div>
743+
<small class="w-lg-75 d-block text-muted mt-1">
744+
Relay non-P2SH multisig.
745+
</small>
746+
</div>
747+
</b-card-body>
748+
658749
<!-- PRUNE -->
659750
<b-card-body class="subsetting-body px-2 px-sm-3">
660751
<div>

utils/validateSettingsRequest.js

+9
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,15 @@ function validateSettingsRequest(settings) {
9393
// Persist Mempool
9494
checkBooleanSetting({ setting: settings.persistmempool, settingName: "Persist Mempool" });
9595

96+
// Datacarrier
97+
checkBooleanSetting({ setting: settings.datacarrier, settingName: "datacarrier" });
98+
99+
// Datacarriersize
100+
checkNumberSetting({ setting: settings.datacarriersize, settingName: "datacarriersize", min: 0 });
101+
102+
// Datacarriersize
103+
checkBooleanSetting({ setting: settings.permitbaremultisig, settingName: "permitbaremultisig" });
104+
96105
// Max Orphan Transactions
97106
// No min or max specified.
98107
checkNumberSetting({ setting: settings.maxorphantx, settingName: "Max Orphan Transactions", min: 0 });

0 commit comments

Comments
 (0)